summaryrefslogtreecommitdiff
path: root/engine-ocean/Game/Systems/UI/ButtonAction
diff options
context:
space:
mode:
authorjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
committerjjesswan <jessica_wan@brown.edu>2024-04-22 21:56:26 -0400
commita556b45abf18f1bd509daaf63b66b7d55e9fd291 (patch)
treebc9b8a2d184c12aee236e7f9f276a34b84ca552d /engine-ocean/Game/Systems/UI/ButtonAction
parentcd7c76017a12bb548036571c1ff13e551369d06d (diff)
add engine version
Diffstat (limited to 'engine-ocean/Game/Systems/UI/ButtonAction')
-rw-r--r--engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.cpp6
-rw-r--r--engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.h13
-rw-r--r--engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.cpp33
-rw-r--r--engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.h21
4 files changed, 73 insertions, 0 deletions
diff --git a/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.cpp b/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.cpp
new file mode 100644
index 0000000..c7314f6
--- /dev/null
+++ b/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.cpp
@@ -0,0 +1,6 @@
+#include "buttonaction.h"
+
+ButtonAction::ButtonAction()
+{
+
+}
diff --git a/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.h b/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.h
new file mode 100644
index 0000000..d6c1674
--- /dev/null
+++ b/engine-ocean/Game/Systems/UI/ButtonAction/buttonaction.h
@@ -0,0 +1,13 @@
+#ifndef BUTTONACTION_H
+#define BUTTONACTION_H
+
+
+class ButtonAction
+{
+public:
+ ButtonAction();
+ virtual void activate() = 0;
+ virtual void deactivate() = 0;
+};
+
+#endif // BUTTONACTION_H
diff --git a/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.cpp b/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.cpp
new file mode 100644
index 0000000..e6b9797
--- /dev/null
+++ b/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.cpp
@@ -0,0 +1,33 @@
+#include "showwindowaction.h"
+#include "Game/Systems/UI/uisystem.h"
+#include <map>
+
+ShowWindowAction::ShowWindowAction(std::map<std::string, std::shared_ptr<UIScreen>>& all_screens,
+ std::set<std::string>& shownScreens,
+ const std::string screenName):
+ m_screens(all_screens),
+ m_shownScreens(shownScreens)
+{
+ m_screenName = screenName;
+}
+
+
+
+void ShowWindowAction::activate(){
+ std::cout << "activated window show!!!" << std::endl;
+
+ // add screen to be rendered, and also set it be the only one active
+ //m_screens[m_screenName] = m_screen;
+// for (auto &screen : m_screens){
+// screen.second->isActive = false;
+// }
+
+// m_screens[m_screenName]->isActive = true;
+ m_shownScreens.insert(m_screenName);
+ m_screens[m_screenName]->isActive = true;
+
+}
+
+void ShowWindowAction::deactivate(){
+ m_shownScreens.erase(m_screenName);
+}
diff --git a/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.h b/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.h
new file mode 100644
index 0000000..781f093
--- /dev/null
+++ b/engine-ocean/Game/Systems/UI/ButtonAction/showwindowaction.h
@@ -0,0 +1,21 @@
+#ifndef SHOWWINDOWACTION_H
+#define SHOWWINDOWACTION_H
+#include "Game/Systems/UI/uisystem.h"
+#include <map>
+#include "buttonaction.h"
+
+class ShowWindowAction : public ButtonAction
+{
+public:
+ ShowWindowAction(std::map<std::string, std::shared_ptr<UIScreen>>& screens,
+ std::set<std::string>& shownScreens,
+ const std::string screenName);
+ void activate() override;
+ void deactivate() override;
+private:
+ std::set<std::string>& m_shownScreens;
+ std::string m_screenName;
+ std::map<std::string, std::shared_ptr<UIScreen>>& m_screens;
+};
+
+#endif // SHOWWINDOWACTION_H