diff options
Diffstat (limited to 'Runtime/Camera/RenderLayers/GUILayer.h')
-rw-r--r-- | Runtime/Camera/RenderLayers/GUILayer.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Runtime/Camera/RenderLayers/GUILayer.h b/Runtime/Camera/RenderLayers/GUILayer.h new file mode 100644 index 0000000..925b070 --- /dev/null +++ b/Runtime/Camera/RenderLayers/GUILayer.h @@ -0,0 +1,33 @@ +#ifndef GUILAYER_H +#define GUILAYER_H + +#include "GUIElement.h" +#include "Runtime/GameCode/Behaviour.h" +#include "Runtime/Utilities/delayed_set.h" + +/// A GUI Layer is attached to the camera. +/// It tracks all enabled GUIElements (eg. Text, GUITexture) and renders them +class GUILayer : public Behaviour +{ +public: + REGISTER_DERIVED_CLASS (GUILayer, Behaviour) + + GUILayer (MemLabelId label, ObjectCreationMode mode); + + void RenderGUILayer(); + GUIElement* HitTest (const Vector2f& screenPosition); + + static void InitializeClass (); + static void CleanupClass (); + + // Behaviour + virtual void AddToManager() { }; + virtual void RemoveFromManager() { }; + +private: + typedef delayed_set <PPtr<GUIElement> > GUIElements; + static GUIElements* ms_GUIElements; + friend class GUIElement; +}; + +#endif |