# class hiro::modules::GuiResource

## Overview

Enables creation of custom gui objects. Soon will be deprecated. More…

    #include <GuiResource.h>

    class GuiResource: public hiro::Resource {
    public:
        // construction

        GuiResource(const std::string& name);

        // methods

        virtual hiro::PGadget CreateGadget();
        void Setup(const std::string& layout_xml);
        CEGUI::Window* GetWindow(const std::string& name);
        CEGUI::Window* GetRootWindow();
        CEGUI::Window* GetMainRootWindow();

        template <typename T>
        T* GetWindow(const std::string& name);

    protected:
        // fields

        CEGUI::Window* window_root_ = nullptr;

        // construction

        GuiResource(const hiro::ResourceId& id);
    };

### Inherited Members

    public:
        // fields

        const hiro::ResourceId ID;

        // methods

        virtual hiro::PGadget CreateGadget() = 0;
        void ResetGadgets();
        virtual void Update(float delta_time);

    protected:
        // methods

        void DrawOnNextUpdate() const;

## Detailed Documentation

Enables creation of custom gui objects. Soon will be deprecated.

### Methods

    virtual hiro::PGadget CreateGadget()

Override this method to create custom Gadget type objects.