Plugin.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROCKETDEBUGGERPLUGIN_H
00029 #define ROCKETDEBUGGERPLUGIN_H
00030
00031 #include <Rocket/Core/EventListener.h>
00032 #include <Rocket/Core/Plugin.h>
00033 #include <set>
00034
00035 namespace Rocket {
00036 namespace Core {
00037
00038 class ElementDocument;
00039
00040 }
00041
00042 namespace Debugger {
00043
00044 class ElementLog;
00045 class ElementInfo;
00046 class ElementContextHook;
00047 class SystemInterface;
00048
00055 class Plugin : public Core::Plugin, public Core::EventListener
00056 {
00057 public:
00058 Plugin();
00059 virtual ~Plugin();
00060
00064 bool Initialise(Core::Context* context);
00065
00069 bool SetContext(Core::Context* context);
00070
00073 void SetVisible(bool visibility);
00076 bool IsVisible();
00077
00079 void Render();
00080
00082 virtual void OnShutdown();
00083
00086 virtual void OnContextDestroy(Core::Context* context);
00087
00090 virtual void OnElementCreate(Core::Element* element);
00093 virtual void OnElementDestroy(Core::Element* element);
00094
00097 virtual void ProcessEvent(Core::Event& event);
00098
00099 private:
00100 bool LoadFont();
00101 bool LoadMenuElement();
00102 bool LoadInfoElement();
00103 bool LoadLogElement();
00104 bool LoadHookElement();
00105
00106
00107 void ReleaseElements();
00108
00109
00110 Core::Context* host_context;
00111
00112 Core::Context* debug_context;
00113
00114
00115 Core::ElementDocument* menu_element;
00116 ElementInfo* info_element;
00117 ElementLog* log_element;
00118 ElementContextHook* hook_element;
00119 SystemInterface* log_hook;
00120
00121 bool render_outlines;
00122
00123
00124 typedef std::set< Core::Element* > ElementInstanceMap;
00125 ElementInstanceMap elements;
00126 };
00127
00128 }
00129 }
00130
00131 #endif