LibUIGL  3.17.5
LibUIGL.h
Ir a la documentación de este archivo.
1 
6 #ifndef _LIBUIGL_H
7 #define _LIBUIGL_H
8 
9 /* version */
10 #define LIB_VER_MAJ 3
11 #define LIB_VER_MIN 17
12 #define LIB_VER_REV 5
13 
14 #if defined _MSC_VER
15  #ifdef _WINDLL
16  #define LIBAPI __declspec(dllexport)
17  #else
18  #define LIBAPI __declspec(dllimport)
19  #endif
20 
21  #if _MSC_VER >= 1600 /* Visual C++ 2010? */
22  #include <stdint.h>
23  #include <stdbool.h>
24  #else
25  typedef char int8_t;
26  typedef short int16_t;
27  typedef int int32_t;
28  typedef unsigned char uint8_t;
29  typedef unsigned short uint16_t;
30  typedef unsigned int uint32_t;
31  #endif
32 #else
33  #ifdef LIB_EXPORTS
34  #define LIBAPI __attribute__((visibility("default")))
35  #else
36  #define LIBAPI
37  #endif
38  #include <stdint.h>
39  #include <stdbool.h>
40  #include <stddef.h>
41  #include <strings.h>
42  #define _strcmpi strcasecmp
43 #endif
44 
46 typedef union
47 {
48  uint32_t value;
49  struct { uint8_t b, g, r, x; };
50 }
51 Color;
52 
53 typedef struct gui_t* GUI;
54 typedef struct item_t* Item;
55 typedef struct image_t* Image;
56 typedef struct font_t* FontFace;
57 typedef struct control_t* Control;
58 typedef struct style_t* Style;
59 typedef struct timeline_t* Timeline;
60 typedef struct scene_t* Scene;
61 typedef struct scene_t* Overlay;
62 typedef struct language_t* Language;
63 typedef struct transition_t* Transition;
65 /* compatibilidad pre-linux */
66 #ifdef _MSC_VER
67 #define Font FontFace
68 #endif
69 
71 typedef struct
72 {
73  int left;
74  int top;
75  int right;
76  int bottom;
77 }
78 Rect;
79 
80 #ifdef __cplusplus
81 extern "C" {
82 #endif
83 
90 typedef enum
91 {
92  // eventos básicos
93  EVENT_NONE,
94  EVENT_TOUCH,
95  EVENT_DRAG,
96  EVENT_RELEASE,
97 
98  // eventos extendidos
99  EVENT_DRAGOVER,
100  EVENT_DRAGOUT,
101  EVENT_SELECT,
102  EVENT_UNSELECT,
103 
104  // eventos extra
105  EVENT_ENABLE,
106  EVENT_DISABLE,
107 
108  EVENT_ENDANIMATION,
109  EVENT_TRANSITION,
110 
111  // teclado
112  EVENT_KEYPRESS,
113  EVENT_KEYRELEASE,
114  EVENT_CHARACTER,
115 
116  // ratón
117  EVENT_MOUSEOVER,
118  EVENT_MOUSEOUT,
119 
120  MAX_EVENT
121 }
122 EVTYPE;
123 
125 typedef struct
126 {
127  Scene scene;
128  Control control;
129  Timeline timeline;
130  EVTYPE type;
131  int x;
132  int y;
133  int key;
134  int keymods;
135  unsigned character;
136 }
137 GUIEVT;
138 
139 typedef void(*cbEventFunc)(GUIEVT*);
142 #define CWF_BORDER 0x01
143 #define CWF_RESIZE 0x02
144 #define CWF_HIDDEN 0x04
145 #define CWF_NOESCAPE 0x08
147 LIBAPI bool GUI_Init(void);
148 LIBAPI void GUI_Deinit(void);
149 LIBAPI void GUI_DeleteItems(void);
150 LIBAPI uint8_t* GUI_GetVersion(void);
151 LIBAPI bool GUI_GetDisplayResolution(int index, Rect* rect);
152 LIBAPI GUI GUI_CreateWindow(int width, int height, const char* title, int monitor, GUI share, uint8_t flags);
153 LIBAPI bool GUI_DeleteWindow(GUI gui);
154 LIBAPI void GUI_SetCenterMode(bool mode);
155 LIBAPI bool GUI_GetCenterMode(void);
156 LIBAPI void GUI_SetPhysicalSize(int width_mm, int height_mm);
157 LIBAPI bool GUI_Load(const char* filename);
158 LIBAPI Image GUI_GetImage(const char* name);
159 LIBAPI Item GUI_GetItem(const char* name);
160 LIBAPI const char* GUI_GetItemName(Item item);
161 LIBAPI bool ItemIs(Item item, const char* name);
162 LIBAPI void GUI_CheckReferences(void);
163 
164 LIBAPI void GUI_SetWindowTitle(const char* title);
165 LIBAPI void GUI_SelectWindow(GUI gui);
166 LIBAPI GUI GUI_GetActiveWindow(void);
167 LIBAPI void GUI_ShowWindow(bool mode);
168 LIBAPI void GUI_SetWindowPosition(int x, int y);
169 LIBAPI Timeline GUI_SetAnimation(Timeline timeline, Control control);
170 LIBAPI void GUI_EndAnimation(Timeline, bool set_final);
171 LIBAPI Scene GUI_SetScene(const char* name);
172 LIBAPI void GUI_SetTransition(Transition transition);
173 LIBAPI bool GUI_Tasks(void);
174 LIBAPI void GUI_Redraw(void);
175 LIBAPI bool GUI_GetEvent(GUIEVT *user);
176 LIBAPI bool GUI_GetTouchState(void);
177 LIBAPI void GUI_GetSize(int* width, int* height);
178 LIBAPI void* GUI_GetHWND(void);
179 LIBAPI Scene GUI_GetScene(void);
180 LIBAPI void GUI_Scale(int oldw, int oldh, int neww, int newh);
181 LIBAPI void GUI_TransformPoint(int* x, int* y);
182 LIBAPI void GUI_DrawFrameToImage(Image image, bool pre);
183 LIBAPI void GUI_SaveScreenShot(void);
184 LIBAPI void GUI_AddEventListener(cbEventFunc func);
185 LIBAPI void GUI_RemoveEventListener(cbEventFunc func);
186 
187 LIBAPI void GUI_SetRect(Rect* rect, int xLeft, int yTop, int xRight, int yBottom);
188 LIBAPI void GUI_OffsetRect(Rect* rect, int dx, int dy);
189 LIBAPI void GUI_SetMallocHandler(void*(*ptrmalloc)(size_t), void(*ptrfree)(void*));
190 
198 LIBAPI Overlay GUI_CreateOverlay(const char* name, cbEventFunc callback);
199 LIBAPI void GUI_DeleteOverlay(Overlay overlay);
200 LIBAPI void GUI_ShowOverlay(Overlay overlay, bool show);
201 LIBAPI Control GUI_GetOverlayContainer(Overlay overlay);
202 
210 #define CAPTION_LEN 1024
211 
213 typedef enum
214 {
215  CS_HIDDEN,
216  CS_DISABLED,
217  CS_ENABLED,
218  CS_SELECTED,
219 }
221 
223 typedef struct
224 {
225  ControlState status;
226  int x, y;
227  int w, h;
228  char caption[CAPTION_LEN];
229  FontFace font;
230  int value;
231 }
232 CTRLDATA;
233 
234 LIBAPI Control SceneGetControl(Scene sc, const char* name);
235 LIBAPI void ControlSetStatus(Control ob, ControlState status);
236 LIBAPI void ControlSetText(Control ob, const char* text, ...);
237 LIBAPI void ControlSetPicture(Control control, Image image);
238 LIBAPI void ControlSetPosition(Control control, int x, int y);
239 LIBAPI void ControlSetSize(Control control, int width, int height);
240 LIBAPI void ControlGetData(Control ob, CTRLDATA* data);
241 LIBAPI void ControlApplyStyle(Control control, Style style);
242 LIBAPI void ControlEnableFontStyles(Control control, bool enable);
243 
244 /* asociación de datos */
245 LIBAPI void ControlBindDataBool(Control control, bool* data);
246 LIBAPI void ControlBindDataInt(Control control, int* data);
247 LIBAPI void ControlBindDataFloat(Control control, float* data);
248 LIBAPI void ControlBindDataString(Control control, char* data);
249 LIBAPI void ControlUnbindData(Control control);
250 LIBAPI void ControlSetDataFormat(Control control, const char* format);
251 
259 LIBAPI Image ImageLoad(const char* name, const char* filename);
260 LIBAPI void ImageDraw(Image image, int x, int y);
261 LIBAPI void ImageDrawScaling(Image image, Rect* dstrect);
262 LIBAPI void ImageDrawSection(Image image, Rect* srcrect, int x, int y);
263 LIBAPI void ImageDelete(Image image);
264 
272 LIBAPI char* GetStringRESX(const char* name);
273 LIBAPI char* GetStringTXT(int Id);
274 LIBAPI int GetStringWidth(FontFace font, const char* string, int len);
275 LIBAPI Language LangGet(void);
276 LIBAPI void LangSet(Language lang);
277 
278 #ifdef RESX_LANGUAGE
279 #define GetString GetStringRESX
280 #else
281 #define GetString GetStringTXT
282 #endif
283 
291 LIBAPI void SetPath(const char* path);
292 LIBAPI char* GetLocalPath(void);
293 LIBAPI char* GetFullPath(const char* file);
294 
297 #ifdef __cplusplus
298 }
299 #endif
300 
301 #endif
GUI_GetTouchState
bool GUI_GetTouchState(void)
Definition: GUI.c:830
Transition
struct transition_t * Transition
Definition: LibUIGL.h:63
GUI_AddEventListener
void GUI_AddEventListener(cbEventFunc func)
Definition: GUI.c:843
ImageDrawScaling
void ImageDrawScaling(Image image, Rect *dstrect)
Definition: Image.c:93
GUI_Deinit
void GUI_Deinit(void)
Definition: GUI.c:159
GetStringTXT
char * GetStringTXT(int Id)
Definition: Language.c:317
GUI_SetPhysicalSize
void GUI_SetPhysicalSize(int width_mm, int height_mm)
Definition: GUI.c:864
GUI_GetItemName
const char * GUI_GetItemName(Item item)
Definition: GUI.c:822
Language
struct language_t * Language
Definition: LibUIGL.h:62
GetLocalPath
char * GetLocalPath(void)
Definition: Path.c:46
GUI_DeleteWindow
bool GUI_DeleteWindow(GUI gui)
Definition: GUI.c:333
LangGet
Language LangGet(void)
Definition: Language.c:272
ControlBindDataBool
void ControlBindDataBool(Control control, bool *data)
Definition: Control.c:971
ControlSetText
void ControlSetText(Control ob, const char *text,...)
Definition: Control.c:224
ControlSetSize
void ControlSetSize(Control control, int width, int height)
Definition: Control.c:307
GUI_RemoveEventListener
void GUI_RemoveEventListener(cbEventFunc func)
Definition: GUI.c:853
GUI_SetRect
void GUI_SetRect(Rect *rect, int xLeft, int yTop, int xRight, int yBottom)
Definition: GUI.c:947
ControlApplyStyle
void ControlApplyStyle(Control control, Style style)
Definition: Control.c:338
GUI_GetDisplayResolution
bool GUI_GetDisplayResolution(int index, Rect *rect)
Definition: GUI.c:192
GUI_DrawFrameToImage
void GUI_DrawFrameToImage(Image image)
Definition: GUI.c:928
GUI_Load
bool GUI_Load(const char *filename)
Definition: GUI.c:374
ControlUnbindData
void ControlUnbindData(Control control)
Definition: Control.c:1038
ControlEnableFontStyles
void ControlEnableFontStyles(Control control, bool enable)
Definition: Control.c:752
ControlBindDataFloat
void ControlBindDataFloat(Control control, float *data)
Definition: Control.c:1005
ImageDelete
void ImageDelete(Image image)
Definition: Image.c:131
GUI_ShowWindow
void GUI_ShowWindow(bool mode)
Definition: GUI.c:403
ImageLoad
Image ImageLoad(const char *name, const char *filename)
Definition: Image.c:29
LangSet
void LangSet(Language lang)
Definition: Language.c:283
SetPath
void SetPath(const char *path)
Definition: Path.c:32
Item
struct item_t * Item
Definition: LibUIGL.h:54
GUIEVT
Definition: LibUIGL.h:126
ControlState
ControlState
Definition: LibUIGL.h:214
GUI_TransformPoint
void GUI_TransformPoint(int *x, int *y)
Definition: GUI.c:917
GUI_GetImage
Image GUI_GetImage(const char *name)
Definition: GUI.c:792
FontFace
struct font_t * FontFace
Definition: LibUIGL.h:56
ImageDraw
void ImageDraw(Image image, int x, int y)
Definition: Image.c:66
ControlSetDataFormat
void ControlSetDataFormat(Control control, const char *format)
Definition: Control.c:1054
GUI_SetWindowPosition
void GUI_SetWindowPosition(int x, int y)
Definition: GUI.c:420
GUI_SetAnimation
Timeline GUI_SetAnimation(Timeline timeline, Control control)
Definition: GUI.c:433
GUI_OffsetRect
void GUI_OffsetRect(Rect *rect, int dx, int dy)
Definition: GUI.c:965
GUI_DeleteOverlay
void GUI_DeleteOverlay(Overlay overlay)
Definition: GUI.c:1010
ControlSetStatus
void ControlSetStatus(Control ob, ControlState status)
Definition: Control.c:158
EVTYPE
EVTYPE
Definition: LibUIGL.h:91
GUI_GetActiveWindow
GUI GUI_GetActiveWindow(void)
Definition: GUI.c:393
CTRLDATA
Definition: LibUIGL.h:224
GUI_GetHWND
void * GUI_GetHWND(void)
Definition: GUI.c:764
Rect
Definition: LibUIGL.h:72
GUI_CreateOverlay
Overlay GUI_CreateOverlay(const char *name, cbEventFunc callback)
Definition: GUI.c:983
ControlGetData
void ControlGetData(Control ob, CTRLDATA *data)
Definition: Control.c:726
ControlBindDataInt
void ControlBindDataInt(Control control, int *data)
Definition: Control.c:988
GUI_SetWindowTitle
void GUI_SetWindowTitle(const char *title)
Definition: GUI.c:322
ControlBindDataString
void ControlBindDataString(Control control, char *data)
Definition: Control.c:1022
Image
struct image_t * Image
Definition: LibUIGL.h:55
Style
struct style_t * Style
Definition: LibUIGL.h:58
GUI_Redraw
void GUI_Redraw(void)
Fuerza repintado de la ventana activa.
Definition: GUI.c:725
GUI_SetScene
Scene GUI_SetScene(const char *name)
Definition: GUI.c:486
ImageDrawSection
void ImageDrawSection(Image image, Rect *srcrect, int x, int y)
Definition: Image.c:108
Overlay
struct scene_t * Overlay
Definition: LibUIGL.h:61
GUI
struct gui_t * GUI
Definition: LibUIGL.h:53
GUI_Tasks
bool GUI_Tasks(void)
Tareas de mantenimiento interno de la ventana.
Definition: GUI.c:659
Timeline
struct timeline_t * Timeline
Definition: LibUIGL.h:59
GUI_GetScene
Scene GUI_GetScene(void)
Definition: GUI.c:779
GetStringRESX
char * GetStringRESX(const char *name)
Definition: Language.c:294
GUI_GetEvent
bool GUI_GetEvent(GUIEVT *user)
Definition: GUI.c:738
GUI_SetTransition
void GUI_SetTransition(Transition transition)
Definition: GUI.c:555
GUI_GetItem
Item GUI_GetItem(const char *name)
Definition: GUI.c:810
GetFullPath
char * GetFullPath(const char *file)
Definition: Path.c:57
cbEventFunc
void(* cbEventFunc)(GUIEVT *)
Definition: LibUIGL.h:139
GUI_ShowOverlay
void GUI_ShowOverlay(Overlay overlay, bool show)
Definition: GUI.c:1027
ControlSetPosition
void ControlSetPosition(Control control, int x, int y)
Definition: Control.c:280
Control
struct control_t * Control
Definition: LibUIGL.h:57
GUI_GetSize
void GUI_GetSize(int *width, int *height)
Definition: GUI.c:752
Scene
struct scene_t * Scene
Definition: LibUIGL.h:60
GUI_SelectWindow
void GUI_SelectWindow(GUI gui)
Definition: GUI.c:385
Color
Definition: LibUIGL.h:47
GUI_CreateWindow
GUI GUI_CreateWindow(int width, int height, const char *title, int monitor, GUI share, uint8_t flags)
Definition: GUI.c:223
SceneGetControl
Control SceneGetControl(Scene sc, const char *name)
Definition: Scene.c:148
GUI_Scale
void GUI_Scale(int oldw, int oldh, int neww, int newh)
Definition: GUI.c:898
GUI_EndAnimation
void GUI_EndAnimation(Timeline, bool set_final)
Definition: GUI.c:452
ControlSetPicture
void ControlSetPicture(Control control, Image image)
Definition: Control.c:257