X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiFormSpecMenu.h;h=005b9136955b14d33c09993b720d9e297c7fe638;hb=65c09a96f41705bb8e75fc5ff4276342be91ed11;hp=f04968aec465ac4b170cf54c347130fb665a80b3;hpb=b6387b4e0f43503ae139cb31a04f42c401378fdc;p=minetest.git diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h index f04968aec..005b91369 100644 --- a/src/guiFormSpecMenu.h +++ b/src/guiFormSpecMenu.h @@ -121,27 +121,71 @@ class GUIFormSpecMenu : public GUIModalMenu s32 start_item_i; }; + struct ListRingSpec + { + ListRingSpec() + { + } + ListRingSpec(const InventoryLocation &a_inventoryloc, + const std::string &a_listname): + inventoryloc(a_inventoryloc), + listname(a_listname) + { + } + + InventoryLocation inventoryloc; + std::string listname; + }; + struct ImageDrawSpec { - ImageDrawSpec() + ImageDrawSpec(): + parent_button(NULL) + { + } + ImageDrawSpec(const std::string &a_name, + const std::string &a_item_name, + gui::IGUIButton *a_parent_button, + const v2s32 &a_pos, const v2s32 &a_geom): + name(a_name), + item_name(a_item_name), + parent_button(a_parent_button), + pos(a_pos), + geom(a_geom), + scale(true) { } ImageDrawSpec(const std::string &a_name, - v2s32 a_pos, v2s32 a_geom): + const std::string &a_item_name, + const v2s32 &a_pos, const v2s32 &a_geom): name(a_name), + item_name(a_item_name), + parent_button(NULL), pos(a_pos), - geom(a_geom) + geom(a_geom), + scale(true) { - scale = true; } ImageDrawSpec(const std::string &a_name, - v2s32 a_pos): + const v2s32 &a_pos, const v2s32 &a_geom): name(a_name), - pos(a_pos) + parent_button(NULL), + pos(a_pos), + geom(a_geom), + scale(true) + { + } + ImageDrawSpec(const std::string &a_name, + const v2s32 &a_pos): + name(a_name), + parent_button(NULL), + pos(a_pos), + scale(false) { - scale = false; } std::string name; + std::string item_name; + gui::IGUIButton *parent_button; v2s32 pos; v2s32 geom; bool scale; @@ -201,6 +245,31 @@ class GUIFormSpecMenu : public GUIModalMenu irr::video::SColor color; }; + struct StaticTextSpec { + StaticTextSpec(): + parent_button(NULL) + { + } + StaticTextSpec(const std::wstring &a_text, + const core::rect &a_rect): + text(a_text), + rect(a_rect), + parent_button(NULL) + { + } + StaticTextSpec(const std::wstring &a_text, + const core::rect &a_rect, + gui::IGUIButton *a_parent_button): + text(a_text), + rect(a_rect), + parent_button(a_parent_button) + { + } + std::wstring text; + core::rect rect; + gui::IGUIButton *parent_button; + }; + public: GUIFormSpecMenu(irr::IrrlichtDevice* dev, gui::IGUIElement* parent, s32 id, @@ -266,7 +335,7 @@ class GUIFormSpecMenu : public GUIModalMenu void regenerateGui(v2u32 screensize); ItemSpec getItemAtPos(v2s32 p) const; - void drawList(const ListDrawSpec &s, int phase); + void drawList(const ListDrawSpec &s, int phase, bool &item_hovered); void drawSelectedItem(); void drawMenu(); void updateSelectedItem(); @@ -306,17 +375,21 @@ class GUIFormSpecMenu : public GUIModalMenu std::vector m_inventorylists; + std::vector m_inventory_rings; std::vector m_backgrounds; std::vector m_images; std::vector m_itemimages; std::vector m_boxes; std::vector m_fields; + std::vector m_static_texts; std::vector > m_tables; std::vector > m_checkboxes; std::map m_tooltips; std::vector > m_scrollbars; ItemSpec *m_selected_item; + f32 m_timer1; + f32 m_timer2; u32 m_selected_amount; bool m_selected_dragging; @@ -384,6 +457,7 @@ class GUIFormSpecMenu : public GUIModalMenu void parseSize(parserData* data,std::string element); void parseList(parserData* data,std::string element); + void parseListRing(parserData* data,std::string element); void parseCheckbox(parserData* data,std::string element); void parseImage(parserData* data,std::string element); void parseItemImage(parserData* data,std::string element);