From acac13d2addd634d12b08e5c9d0694c9a800c2db Mon Sep 17 00:00:00 2001 From: devZoGok Date: Fri, 27 Sep 2024 17:28:05 +0300 Subject: [PATCH] GUI utilities --- abstractGuiManager.cpp | 8 ++++++++ abstractGuiManager.h | 1 + button.cpp | 2 +- button.h | 9 +++++---- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/abstractGuiManager.cpp b/abstractGuiManager.cpp index 5c37d69..df06b81 100644 --- a/abstractGuiManager.cpp +++ b/abstractGuiManager.cpp @@ -154,6 +154,14 @@ namespace vb01Gui{ textboxes.push_back(t); } + Button* AbstractGuiManager::getButton(string name){ + for(Button *b : buttons) + if(b->getName() == name) + return b; + + return nullptr; + } + void AbstractGuiManager::removeButton(Button *b) { for (int i = 0; i < buttons.size(); i++) { if (b == buttons[i]) { diff --git a/abstractGuiManager.h b/abstractGuiManager.h index 90de87f..6eac215 100644 --- a/abstractGuiManager.h +++ b/abstractGuiManager.h @@ -22,6 +22,7 @@ namespace vb01Gui{ std::vector findClickedButtons(); void updateGui(); void addButton(Button *b){buttons.push_back(b);} + Button* getButton(std::string); void removeButton(Button*); void removeButton(std::string); void addListbox(Listbox*); diff --git a/button.cpp b/button.cpp index 5f67102..503c835 100644 --- a/button.cpp +++ b/button.cpp @@ -46,7 +46,7 @@ namespace vb01Gui{ rectNode->attachMesh(rect); guiNode->attachChild(rectNode); - if(separate){ + if(separate && fontPath != ""){ text = new Text(fontPath, stringToWstring(name)); float sc = .2; diff --git a/button.h b/button.h index dc340c9..d49fc9f 100644 --- a/button.h +++ b/button.h @@ -24,18 +24,19 @@ namespace vb01Gui{ virtual void onMouseOver(); virtual void onMouseOff(); virtual void onClick(){} - inline vb01::Vector3 getPos(){return pos;} void setPos(vb01::Vector3); - inline vb01::Vector2 getSize(){return size;} void setSize(vb01::Vector2); + void setColor(vb01::Vector4); + void setImage(std::string); + inline vb01::Node* getRectNode(){return rectNode;} + inline vb01::Vector3 getPos(){return pos;} + inline vb01::Vector2 getSize(){return size;} inline std::string getName(){return name;} inline void setActive(bool active){this->active = active;} inline bool isSeparate(){return separate;} inline bool isActive(){return active;} inline vb01::Vector4 getColor(){return color;} inline int getTrigger(){return trigger;} - void setColor(vb01::Vector4); - void setImage(std::string); protected: int trigger, initWindowSize[2]; bool separate, active = true, mouseOver = false;