hgegui.h
上传用户:jalin138
上传日期:2022-02-12
资源大小:5720k
文件大小:2k
- /*
- ** 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, bLLastPressed;
- bool bRPressed, bRLastPressed;
- };
- #endif