⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdl_gui.h

📁 基于SDL实现的GUI
💻 H
📖 第 1 页 / 共 2 页
字号:
{	protected:		GUI_Surface *background;		GUI_Surface *knob;		GUI_Callback *moved_callback;		int position;		int tracking_on;		int tracking_start;		int tracking_pos;		int page_step;	public:		GUI_ScrollBar(const char *aname, int x, int y, int w, int h);		virtual ~GUI_ScrollBar(void);		void SetKnobImage(GUI_Surface *image);		void SetBackgroundImage(GUI_Surface *image);		int GetPosition(void);		void SetPosition(int value);		void SetPageStep(int value);		void SetMovedCallback(GUI_Callback *callback);		virtual void Update(int force);		virtual void Erase(const SDL_Rect *rp);		virtual int Event(const SDL_Event *event, int xoffset, int yoffset);};class DLLIMPORT GUI_Container : public GUI_Widget{	protected:		int n_widgets;		int s_widgets;		GUI_Widget **widgets;		int x_offset;		int y_offset;		GUI_Surface *background;		SDL_Color bgcolor;		virtual void UpdateLayout(void);	public:		GUI_Container(const char *name, int x, int y, int w, int h);		virtual ~GUI_Container(void);		int ContainsWidget(GUI_Widget *widget);		void AddWidget(GUI_Widget *widget);		virtual void RemoveWidget(GUI_Widget *widget);		int GetWidgetCount(void);		GUI_Widget *GetWidget(int index);		void SetBackground(GUI_Surface *image);		void SetBackgroundColor(SDL_Color c);		void SetXOffset(int value);		void SetYOffset(int value);				virtual void Draw(GUI_Surface *image, const SDL_Rect *sr, const SDL_Rect *dr);		virtual void Fill(const SDL_Rect *dr, SDL_Color c);		virtual void Erase(const SDL_Rect *rp);};class DLLIMPORT GUI_Panel : public GUI_Container{	protected:		GUI_Layout *layout;		virtual void Update(int force);		virtual void UpdateLayout(void);	public:		GUI_Panel(const char *name, int x, int y, int w, int h);		virtual ~GUI_Panel(void);		void SetLayout(GUI_Layout *a_layout);		virtual int Event(const SDL_Event *event, int xoffset, int yoffset);};class DLLIMPORT GUI_CardStack : public GUI_Container{	protected:		int visible_index;		virtual void Update(int force);	public:		GUI_CardStack(const char *name, int x, int y, int w, int h);		virtual ~GUI_CardStack(void);		void Next(void);		void Prev(void);		int GetIndex(void);		void ShowIndex(int index);		void Show(const char *aname);		virtual int Event(const SDL_Event *event, int xoffset, int yoffset);};class DLLIMPORT GUI_Screen : public GUI_Drawable{	protected:		GUI_Surface *screen_surface;		GUI_Surface *background;		GUI_Widget *contents;		GUI_Widget *focus_widget;		Uint32 background_color;		virtual void FlushUpdates(void);		virtual void UpdateRect(const SDL_Rect *r);		virtual void Update(int force);	public:		GUI_Screen(const char *aname, SDL_Surface *surface);		virtual ~GUI_Screen(void);		virtual void Draw(GUI_Surface *image, const SDL_Rect *sr, const SDL_Rect *dr);		virtual void Erase(const SDL_Rect *dr);		virtual void Fill(const SDL_Rect *dr, SDL_Color c);		virtual int Event(const SDL_Event *event, int xoffset, int yoffset);		virtual void RemoveWidget(GUI_Widget *widget);				void SetContents(GUI_Widget *widget);		void SetBackground(GUI_Surface *image);		void SetFocusWidget(GUI_Widget *item);		void ClearFocusWidget(void);		void SetBackgroundColor(SDL_Color c);		GUI_Widget *GetFocusWidget(void);		GUI_Surface *GetSurface(void);};class DLLIMPORT GUI_RealScreen : public GUI_Screen{	protected:		int n_updates;		SDL_Rect *updates;		virtual void FlushUpdates(void);		virtual void UpdateRect(const SDL_Rect *r);		virtual void Update(int force);	public:		GUI_RealScreen(const char *aname, SDL_Surface *surface);		virtual ~GUI_RealScreen(void);};#elsetypedef void GUI_Object;typedef struct guiSurface GUI_Surface;typedef struct guiScreen GUI_Screen;typedef struct guiFont GUI_Font;typedef struct guiWidget GUI_Widget;typedef struct guiCallback GUI_Callback;typedef struct guiLayout GUI_Layout;#endif/* flags */#define WIDGET_PRESSED         0x00000001#define WIDGET_INSIDE          0x00000002#define WIDGET_HIDDEN          0x00000004#define WIDGET_CHANGED         0x00000008#define WIDGET_TRANSPARENT     0x00000010#define WIDGET_HAS_FOCUS       0x00000020#define WIDGET_WANTS_FOCUS     0x00000040#define WIDGET_TURNED_ON       0x00000080#define WIDGET_ALIGN_MASK      0x00000F00#define WIDGET_HORIZ_MASK      0x00000300#define WIDGET_HORIZ_CENTER    0x00000000#define WIDGET_HORIZ_RIGHT     0x00000100#define WIDGET_HORIZ_LEFT      0x00000200#define WIDGET_HORIZ_STRETCH   0x00000300#define WIDGET_VERT_MASK       0x00000C00#define WIDGET_VERT_CENTER     0x00000000#define WIDGET_VERT_TOP        0x00000400#define WIDGET_VERT_BOTTOM     0x00000800#define WIDGET_VERT_STRETCH    0x00000C00#define WIDGET_DISABLED        0x00001000#define SCREEN_DEBUG_BLIT      0x10000000#define SCREEN_DEBUG_UPDATE    0x20000000#ifdef __cplusplusextern "C" {#endiftypedef void GUI_CallbackFunction(void *);/* GUI API */DLLIMPORT int GUI_Init(void);DLLIMPORT void GUI_SetScreen(GUI_Screen *);DLLIMPORT GUI_Screen *GUI_GetScreen(void);DLLIMPORT void GUI_Run(void);DLLIMPORT void GUI_Quit(void);DLLIMPORT int GUI_MustLock(void);DLLIMPORT int GUI_Lock(void);DLLIMPORT int GUI_Unlock(void);DLLIMPORT void GUI_SetThread(Uint32 id);DLLIMPORT int GUI_GetRunning(void);DLLIMPORT void GUI_SetRunning(int value);DLLIMPORT int GUI_ClipRect(SDL_Rect *sr, SDL_Rect *dr, SDL_Rect *clip);DLLIMPORT void GUI_TriggerUpdate(void);/* Object API */DLLIMPORT GUI_Object *GUI_ObjectCreate(const char *s);DLLIMPORT const char *GUI_ObjectGetName(GUI_Object *object);DLLIMPORT void GUI_ObjectSetName(GUI_Object *object, const char *s);DLLIMPORT void GUI_ObjectIncRef(GUI_Object *object);DLLIMPORT int GUI_ObjectDecRef(GUI_Object *object);DLLIMPORT int GUI_ObjectKeep(GUI_Object **target, GUI_Object *source);/* Surface API */DLLIMPORT GUI_Surface *GUI_SurfaceLoad(const char *fn);DLLIMPORT GUI_Surface *GUI_SurfaceCreate(const char *aname, int f, int w, int h, int d, int rm, int gm, int bm, int am);DLLIMPORT void GUI_SurfaceBlit(GUI_Surface *src, SDL_Rect *src_r, GUI_Surface *dst, SDL_Rect *dst_r);DLLIMPORT void GUI_SurfaceUpdateRects(GUI_Surface *surface, int n, SDL_Rect *rects);DLLIMPORT void GUI_SurfaceUpdateRect(GUI_Surface *surface, int x, int y, int w, int h);DLLIMPORT void GUI_SurfaceFill(GUI_Surface *surface, SDL_Rect *r, Uint32 c);DLLIMPORT int GUI_SurfaceGetWidth(GUI_Surface *surface);DLLIMPORT int GUI_SurfaceGetHeight(GUI_Surface *surface);DLLIMPORT Uint32 GUI_SurfaceMapRGB(GUI_Surface *surface, int r, int g, int b);/* Font API */DLLIMPORT GUI_Surface *GUI_FontRenderFast(GUI_Font *font, const char *s, SDL_Color fg);DLLIMPORT GUI_Surface *GUI_FontRenderQuality(GUI_Font *font, const char *s, SDL_Color fg);DLLIMPORT void GUI_FontDrawText(GUI_Font *font, GUI_Surface *surface, const char *s, int x, int y);DLLIMPORT SDL_Rect GUI_FontGetTextSize(GUI_Font *font, const char *s);/* Widget API */DLLIMPORT void GUI_WidgetUpdate(GUI_Widget *widget, int force);DLLIMPORT void GUI_WidgetDraw(GUI_Widget *widget, GUI_Surface *image, const SDL_Rect *sr, const SDL_Rect *dr);DLLIMPORT void GUI_WidgetErase(GUI_Widget *widget, const SDL_Rect *dr);DLLIMPORT void GUI_WidgetFill(GUI_Widget *widget, const SDL_Rect *dr, SDL_Color c);DLLIMPORT int GUI_WidgetEvent(GUI_Widget *widget, const SDL_Event *event, int xoffset, int yoffset);DLLIMPORT void GUI_WidgetClicked(GUI_Widget *widget, int x, int y);DLLIMPORT void GUI_WidgetSetAlign(GUI_Widget *widget, int align);DLLIMPORT void GUI_WidgetMarkChanged(GUI_Widget *widget);DLLIMPORT void GUI_WidgetSetTransparent(GUI_Widget *widget, int trans);DLLIMPORT void GUI_WidgetSetEnabled(GUI_Widget *widget, int flag);DLLIMPORT void GUI_WidgetTileImage(GUI_Widget *widget, GUI_Surface *surface, const SDL_Rect *area, int x_offset, int y_offset);DLLIMPORT void GUI_WidgetSetFlags(GUI_Widget *widget, int mask);DLLIMPORT void GUI_WidgetClearFlags(GUI_Widget *widget, int mask);DLLIMPORT void GUI_WidgetSetState(GUI_Widget *widget, int state);DLLIMPORT int GUI_WidgetGetState(GUI_Widget *widget);DLLIMPORT SDL_Rect GUI_WidgetGetArea(GUI_Widget *widget);DLLIMPORT void GUI_WidgetSetPosition(GUI_Widget *widget, int x, int y);/* Container API */DLLIMPORT int GUI_ContainerContains(GUI_Widget *container, GUI_Widget *widget);DLLIMPORT void GUI_ContainerAdd(GUI_Widget *container, GUI_Widget *widget);DLLIMPORT void GUI_ContainerRemove(GUI_Widget *container, GUI_Widget *widget);DLLIMPORT int GUI_ContainerGetCount(GUI_Widget *container);DLLIMPORT GUI_Widget *GUI_ContainerGetChild(GUI_Widget *container, int index);/* Screen API */DLLIMPORT GUI_Screen *GUI_ScreenCreate(int w, int h, int d, int f);DLLIMPORT void GUI_ScreenSetContents(GUI_Screen *screen, GUI_Widget *contents);DLLIMPORT void GUI_ScreenSetBackground(GUI_Screen *screen, GUI_Surface *surface);DLLIMPORT void GUI_ScreenSetFocusWidget(GUI_Screen *screen, GUI_Widget *item);DLLIMPORT void GUI_ScreenClearFocusWidget(GUI_Screen *screen);DLLIMPORT void GUI_ScreenSetBackgroundColor(GUI_Screen *screen, SDL_Color c);DLLIMPORT GUI_Widget *GUI_ScreenGetFocusWidget(GUI_Screen *screen);/* Button Widget */DLLIMPORT GUI_Widget *GUI_ButtonCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_ButtonCheck(GUI_Widget *widget);DLLIMPORT void GUI_ButtonSetNormalImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ButtonSetHighlightImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ButtonSetPressedImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ButtonSetDisabledImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ButtonSetCaption(GUI_Widget *widget, GUI_Widget *caption);DLLIMPORT void GUI_ButtonSetClick(GUI_Widget *widget, GUI_Callback *callback);/* Callback API */DLLIMPORT GUI_Callback *GUI_CallbackCreate(GUI_CallbackFunction *function, GUI_CallbackFunction *freefunc, void *data);DLLIMPORT void GUI_CallbackCall(GUI_Callback *callback);/* FastFont object */DLLIMPORT GUI_Font *GUI_FontLoadBitmap(char *fn);/* TTF Font object */DLLIMPORT GUI_Font *GUI_FontLoadTrueType(char *fn, int size);/* Panel Widget API */DLLIMPORT GUI_Widget *GUI_PanelCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_PanelCheck(GUI_Widget *widget);DLLIMPORT void GUI_PanelSetBackground(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_PanelSetBackgroundColor(GUI_Widget *widget, SDL_Color c);DLLIMPORT void GUI_PanelSetXOffset(GUI_Widget *widget, int value);DLLIMPORT void GUI_PanelSetYOffset(GUI_Widget *widget, int value);DLLIMPORT void GUI_PanelSetLayout(GUI_Widget *widget, GUI_Layout *layout);/* VBox Layout object */DLLIMPORT GUI_Layout *GUI_VBoxLayoutCreate(void);/* ToggleButton Widget API */DLLIMPORT GUI_Widget *GUI_ToggleButtonCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_ToggleButtonCheck(GUI_Widget *widget);DLLIMPORT void GUI_ToggleButtonSetOnNormalImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ToggleButtonSetOnHighlightImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ToggleButtonSetOffNormalImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ToggleButtonSetOffHighlightImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_ToggleButtonSetCaption(GUI_Widget *widget, GUI_Widget *caption);DLLIMPORT void GUI_ToggleButtonSetClick(GUI_Widget *widget, GUI_Callback *callback);/* Label Widget API */DLLIMPORT GUI_Widget *GUI_LabelCreate(const char *name, int x, int y, int w, int h, GUI_Font *font, const char *text);DLLIMPORT int GUI_LabelCheck(GUI_Widget *widget);DLLIMPORT void GUI_LabelSetFont(GUI_Widget *widget, GUI_Font *font);DLLIMPORT void GUI_LabelSetTextColor(GUI_Widget *widget, int r, int g, int b);DLLIMPORT void GUI_LabelSetText(GUI_Widget *widget, const char *text);/* Picture Widget API */DLLIMPORT GUI_Widget *GUI_PictureCreate(const char *name, int x, int y, int w, int h, GUI_Surface *image);DLLIMPORT int GUI_PictureCheck(GUI_Widget *widget);DLLIMPORT void GUI_PictureSetImage(GUI_Widget *widget, GUI_Surface *image);DLLIMPORT void GUI_PictureSetCaption(GUI_Widget *widget, GUI_Widget *caption);/* ProgressBar widget API */DLLIMPORT GUI_Widget *GUI_ProgressBarCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_ProgressBarCheck(GUI_Widget *widget);DLLIMPORT void GUI_ProgressBarSetImage1(GUI_Widget *widget, GUI_Surface *image);DLLIMPORT void GUI_ProgressBarSetImage2(GUI_Widget *widget, GUI_Surface *image);DLLIMPORT void GUI_ProgressBarSetPosition(GUI_Widget *widget, double value);/* ScrollBar widget API */DLLIMPORT GUI_Widget *GUI_ScrollBarCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_ScrollBarCheck(GUI_Widget *widget);DLLIMPORT void GUI_ScrollBarSetKnobImage(GUI_Widget *widget, GUI_Surface *image);DLLIMPORT void GUI_ScrollBarSetBackgroundImage(GUI_Widget *widget, GUI_Surface *image);DLLIMPORT void GUI_ScrollBarSetPosition(GUI_Widget *widget, int value);DLLIMPORT void GUI_ScrollBarSetPageStep(GUI_Widget *widget, int value);DLLIMPORT void GUI_ScrollBarSetMovedCallback(GUI_Widget *widget, GUI_Callback *callback);DLLIMPORT int GUI_ScrollBarGetPosition(GUI_Widget *widget);/* CardStack widget API */DLLIMPORT GUI_Widget *GUI_CardStackCreate(const char *name, int x, int y, int w, int h);DLLIMPORT int GUI_CardStackCheck(GUI_Widget *widget);DLLIMPORT void GUI_CardStackSetBackground(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_CardStackSetBackgroundColor(GUI_Widget *widget, SDL_Color c);DLLIMPORT void GUI_CardStackNext(GUI_Widget *widget);DLLIMPORT void GUI_CardStackPrev(GUI_Widget *widget);DLLIMPORT void GUI_CardStackShowIndex(GUI_Widget *widget, int index);DLLIMPORT void GUI_CardStackShow(GUI_Widget *widget, const char *name);DLLIMPORT int GUI_CardStackGetIndex(GUI_Widget *widget);/* TextEntry widget API */DLLIMPORT GUI_Widget *GUI_TextEntryCreate(const char *name, int x, int y, int w, int h, GUI_Font *font, int size);DLLIMPORT int GUI_TextEntryCheck(GUI_Widget *widget);DLLIMPORT void GUI_TextEntrySetFont(GUI_Widget *widget, GUI_Font *font);DLLIMPORT void GUI_TextEntrySetTextColor(GUI_Widget *widget, int r, int g, int b);DLLIMPORT void GUI_TextEntrySetText(GUI_Widget *widget, const char *text);DLLIMPORT const char *GUI_TextEntryGetText(GUI_Widget *widget);DLLIMPORT void GUI_TextEntrySetNormalImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_TextEntrySetHighlightImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_TextEntrySetFocusImage(GUI_Widget *widget, GUI_Surface *surface);DLLIMPORT void GUI_TextEntrySetFocusCallback(GUI_Widget *widget, GUI_Callback *callback);DLLIMPORT void GUI_TextEntrySetUnfocusCallback(GUI_Widget *widget, GUI_Callback *callback);#ifdef __cplusplus};#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -