#pragma once #include "Adept.hpp" namespace Adept { class GUIObject; class GUITextObject; //########################################################################## //########################### GUIGroup ################################ //########################################################################## class GUIGroup: public Plug { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction // public: GUIGroup(const char *name); ~GUIGroup(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Functions // public: void AddTextObject(GUITextObject *gui_text_object); void AddGUIObject(GUIObject *gui_object); GUIObject *FindGUIObject(const char *object_name); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Public Data // public: MString groupName; SortedChainOf guiObjects; ChainOf guiTextObjects; }; //#################################################################### //########################### GUIManager ######################## //#################################################################### class GUIManager: public Plug { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction, Destruction // public: GUIManager(); ~GUIManager(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // GUI Initialization // public: void ReadObjectsFromNotation(Stuff::NotationFile *gui_contents); void SaveObjectsToStream(Stuff::MemoryStream *stream); void ReadObjectsFromStream(Stuff::MemoryStream *stream); void WriteObjectsFromFileToStream( Stuff::NotationFile *gui_contents, Stuff::MemoryStream *stream ); virtual void ClearGUIChain(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Cool functions that make this stuff work Data // public: GUIGroup *FindGroup(const char *group_name); virtual void Execute(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Public Data Don't worry...be happy // public: SortedChainOf guiObjects; SortedChainOf guiGroups; static GUIManager* GetInstance() { return reinterpret_cast( GlobalPointers::GetGlobalPointer(GUIManagerGlobalPointerIndex)); }; }; }