hgeguictrls.h
上传用户:maxiaolivb
上传日期:2022-06-07
资源大小:915k
文件大小:4k
- /*
- ** Haaf's Game Engine 1.5
- ** Copyright (C) 2003-2004, Relish Games
- ** hge.relishgames.com
- **
- ** hgeGUI default controls header
- */
- #ifndef HGEGUICTRLS_H
- #define HGEGUICTRLS_H
- #include "hge.h"
- #include "hgesprite.h"
- #include "hgefont.h"
- #include "hgerect.h"
- #include "hgegui.h"
- #define hgeButtonGetState(gui,id) ((hgeGUIButton*)gui->GetCtrl(id))->GetState()
- #define hgeButtonSetState(gui,id,b) ((hgeGUIButton*)gui->GetCtrl(id))->SetState(b)
- #define hgeSliderGetValue(gui,id) ((hgeGUISlider*)gui->GetCtrl(id))->GetValue()
- #define hgeSliderSetValue(gui,id,f) ((hgeGUISlider*)gui->GetCtrl(id))->SetValue(f)
- #define hgeGetTextCtrl(gui,id) ((hgeGUIText*)gui->GetCtrl(id))
- #define hgeGetListboxCtrl(gui,id) ((hgeGUIListbox*)gui->GetCtrl(id))
- /*
- ** hgeGUIText
- */
- class hgeGUIText : public hgeGUIObject
- {
- public:
- hgeGUIText(int id, float x, float y, float w, float h, hgeFont *fnt);
- void SetMode(int _align);
- void SetText(const char *_text);
- void printf(const char *format, ...);
- void SetColor(DWORD _col) { col=_col; }
- virtual void Render();
- private:
- hgeFont* font;
- float tx, ty;
- int align;
- char text[256];
- DWORD col;
- };
- /*
- ** hgeGUIButton
- */
- class hgeGUIButton : public hgeGUIObject
- {
- public:
- hgeGUIButton(int id, float x, float y, float w, float h, HTEXTURE tex, float tx, float ty);
- virtual ~hgeGUIButton();
- void SetMode(bool _bTrigger) { bTrigger=_bTrigger; }
- void SetState(bool _bPressed) { bPressed=_bPressed; }
- bool GetState() const { return bPressed; }
- virtual void Render();
- virtual bool MouseLButton(bool bDown);
- private:
- bool bTrigger;
- bool bPressed;
- bool bOldState;
- hgeSprite *sprUp, *sprDown;
- };
- /*
- ** hgeGUISlider
- */
- #define HGESLIDER_BAR 0
- #define HGESLIDER_BARRELATIVE 1
- #define HGESLIDER_SLIDER 2
- class hgeGUISlider : public hgeGUIObject
- {
- public:
- hgeGUISlider(int id, float x, float y, float w, float h, HTEXTURE tex, float tx, float ty, float sw, float sh, bool vertical=false);
- virtual ~hgeGUISlider();
- void SetMode(float _fMin, float _fMax, int _mode) { fMin=_fMin; fMax=_fMax; mode=_mode; }
- void SetValue(float _fVal);
- float GetValue() const { return fVal; }
- virtual void Render();
- virtual bool MouseMove(float x, float y);
- virtual bool MouseLButton(bool bDown);
- private:
- bool bPressed;
- bool bVertical;
- int mode;
- float fMin, fMax, fVal;
- float sl_w, sl_h;
- hgeSprite *sprSlider;
- };
- /*
- ** hgeGUIListbox
- */
- struct hgeGUIListboxItem
- {
- char text[64];
- hgeGUIListboxItem *next;
- };
- class hgeGUIListbox : public hgeGUIObject
- {
- public:
- hgeGUIListbox(int id, float x, float y, float w, float h, hgeFont *fnt, DWORD tColor, DWORD thColor, DWORD hColor);
- virtual ~hgeGUIListbox();
- int AddItem(char *item);
- void DeleteItem(int n);
- int GetSelectedItem() { return nSelectedItem; }
- void SetSelectedItem(int n) { if(n>=0 && n<GetNumItems()) nSelectedItem=n; }
- int GetTopItem() { return nTopItem; }
- void SetTopItem(int n) { if(n>=0 && n<=GetNumItems()-GetNumRows()) nTopItem=n; }
- char *GetItemText(int n);
- int GetNumItems() { return nItems; }
- int GetNumRows() { return int((rect.y2-rect.y1)/font->GetHeight()); }
- void Clear();
- virtual void Render();
- virtual bool MouseMove(float x, float y) { mx=x; my=y; return false; }
- virtual bool MouseLButton(bool bDown);
- virtual bool MouseWheel(int nNotches);
- virtual bool KeyClick(int key, int chr);
- private:
- hgeSprite *sprHighlight;
- hgeFont *font;
- DWORD textColor, texthilColor;
- int nItems, nSelectedItem, nTopItem;
- float mx, my;
- hgeGUIListboxItem *pItems;
- };
- #endif