diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Camera/RenderLayers/GUIElement.h |
Diffstat (limited to 'Runtime/Camera/RenderLayers/GUIElement.h')
-rw-r--r-- | Runtime/Camera/RenderLayers/GUIElement.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Runtime/Camera/RenderLayers/GUIElement.h b/Runtime/Camera/RenderLayers/GUIElement.h new file mode 100644 index 0000000..0092da9 --- /dev/null +++ b/Runtime/Camera/RenderLayers/GUIElement.h @@ -0,0 +1,30 @@ +#ifndef GUIELEMENT_H +#define GUIELEMENT_H + +#include "Runtime/GameCode/Behaviour.h" +#include "Runtime/Math/Rect.h" +class Vector2f; + + +// Base class for all GUI elements. +// Registers itself with the GUILayer when enabled. +class GUIElement : public Behaviour +{ +public: + + REGISTER_DERIVED_ABSTRACT_CLASS (GUIElement, Behaviour) + + GUIElement (MemLabelId label, ObjectCreationMode mode); + + virtual void RenderGUIElement (const Rectf& cameraRect) = 0; + virtual Rectf GetScreenRect (const Rectf& cameraRect) = 0; + + bool HitTest (const Vector2f& screenSpaceCoordinates, const Rectf& cameraRect); + +private: + + virtual void AddToManager (); + virtual void RemoveFromManager (); +}; + +#endif |