aboutsummaryrefslogtreecommitdiff
path: root/archive/include/hgegui.h
diff options
context:
space:
mode:
Diffstat (limited to 'archive/include/hgegui.h')
-rw-r--r--archive/include/hgegui.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/archive/include/hgegui.h b/archive/include/hgegui.h
new file mode 100644
index 0000000..7e2144b
--- /dev/null
+++ b/archive/include/hgegui.h
@@ -0,0 +1,126 @@
+/*
+** Haaf's Game Engine 1.7
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** hgeGUI helper classes header
+*/
+
+
+#ifndef HGEGUI_H
+#define HGEGUI_H
+
+
+#include "hge.h"
+#include "hgesprite.h"
+#include "hgerect.h"
+
+
+#define HGEGUI_NONAVKEYS 0
+#define HGEGUI_LEFTRIGHT 1
+#define HGEGUI_UPDOWN 2
+#define HGEGUI_CYCLED 4
+
+class hgeGUI;
+
+/*
+** hgeGUIObject
+*/
+class hgeGUIObject
+{
+public:
+ hgeGUIObject() { hge=hgeCreate(HGE_VERSION); color=0xFFFFFFFF; }
+ virtual ~hgeGUIObject() { hge->Release(); }
+
+ virtual void Render() = 0;
+ virtual void Update(float dt) {}
+
+ virtual void Enter() {}
+ virtual void Leave() {}
+ virtual void Reset() {}
+ virtual bool IsDone() { return true; }
+ virtual void Focus(bool bFocused) {}
+ virtual void MouseOver(bool bOver) {}
+
+ virtual bool MouseMove(float x, float y) { return false; }
+ virtual bool MouseLButton(bool bDown) { return false; }
+ virtual bool MouseRButton(bool bDown) { return false; }
+ virtual bool MouseWheel(int nNotches) { return false; }
+ virtual bool KeyClick(int key, int chr) { return false; }
+
+ virtual void SetColor(DWORD _color) { color=_color; }
+
+ int id;
+ bool bStatic;
+ bool bVisible;
+ bool bEnabled;
+ hgeRect rect;
+ DWORD color;
+
+ hgeGUI *gui;
+ hgeGUIObject *next;
+ hgeGUIObject *prev;
+
+protected:
+ hgeGUIObject(const hgeGUIObject &go);
+ hgeGUIObject& operator= (const hgeGUIObject &go);
+
+ static HGE *hge;
+};
+
+
+/*
+** hgeGUI
+*/
+class hgeGUI
+{
+public:
+ hgeGUI();
+ ~hgeGUI();
+
+ void AddCtrl(hgeGUIObject *ctrl);
+ void DelCtrl(int id);
+ hgeGUIObject* GetCtrl(int id) const;
+
+ void MoveCtrl(int id, float x, float y);
+ void ShowCtrl(int id, bool bVisible);
+ void EnableCtrl(int id, bool bEnabled);
+
+ void SetNavMode(int mode);
+ void SetCursor(hgeSprite *spr);
+ void SetColor(DWORD color);
+ void SetFocus(int id);
+ int GetFocus() const;
+
+ void Enter();
+ void Leave();
+ void Reset();
+ void Move(float dx, float dy);
+
+ int Update(float dt);
+ void Render();
+
+private:
+ hgeGUI(const hgeGUI &);
+ hgeGUI& operator= (const hgeGUI&);
+ bool ProcessCtrl(hgeGUIObject *ctrl);
+
+ static HGE *hge;
+
+ hgeGUIObject *ctrls;
+ hgeGUIObject *ctrlLock;
+ hgeGUIObject *ctrlFocus;
+ hgeGUIObject *ctrlOver;
+
+ int navmode;
+ int nEnterLeave;
+ hgeSprite *sprCursor;
+
+ float mx,my;
+ int nWheel;
+ bool bLPressed, bLReleased;
+ bool bRPressed, bRReleased;
+};
+
+
+#endif