#ifndef WIDGET_HPP_INCLUDED
#define WIDGET_HPP_INCLUDED

#include "Node.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include <string>
#include <cstdint>

namespace Internal
{
    class Widget : public Node
    {
        public:
            Widget();
            Widget(const void* Obj);
            Widget(const Widget& W);
            static Class GetClass();

            std::vector<std::string> GetActions() const;
            std::int32_t GetBorderThickness() const;
            std::int32_t GetBoxIndex() const;
            std::vector<Widget> GetChildren() const;
            Widget GetChildren(std::int32_t I) const;
            std::int32_t GetHeight() const;
            bool GetHidden() const;
            std::int32_t GetID() const;
            std::int32_t GetItemAmount() const;
            std::vector<std::int32_t> GetItemAmounts() const;
            std::int32_t GetItemID() const;
            std::vector<std::int32_t> GetItemIDs() const;
            std::string GetName() const;
            bool GetNoClickThrough() const;
            Widget GetParent() const;
            std::int32_t GetParentID() const;
            std::int32_t GetRelativeX() const;
            std::int32_t GetRelativeY() const;
            std::int32_t GetScrollX() const;
            std::int32_t GetScrollY() const;
            std::int32_t GetShadowColor() const;
            std::int32_t GetSpriteID() const;
            std::int32_t GetStackType() const;
            std::string GetText() const;
            std::int32_t GetTextColor() const;
            std::int32_t GetType() const;
            std::int32_t GetWidth() const;

    };
}

#endif // WIDGET_HPP_INCLUDED
