1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
|
#ifndef __WASABI_CFG_H
#define __WASABI_CFG_H
#define _WASABIRUNTIME
// Uncomment this to have an old-style global api pointer
#define WA3COMPATIBILITY
#define WASABINOMAINAPI
#ifndef _WASABIRUNTIME
#ifndef WA3COMPATIBILITY
#define WASABINOMAINAPI
#endif
/*
Comment or uncomment the following directives according to the needs of your application :
*/
/* note to the team:
the WANT_WASABI_API_* directives will go away once we're done splitting the api, their only purpose
is to split the api one bit at a time while the rest remains working. when it's done, all that will remain
will be the WASABI_COMPILE_* directives
*/
// This allows component (external plugins)
//#define WASABI_COMPILE_COMPONENTS
// This enables the layered UI
#define WASABI_COMPILE_WND
// This enables multiplexed timers
#define WASABI_COMPILE_TIMERS
// This enables xml group loading within the window api
#define WASABI_COMPILE_SKIN
// This enables internationalizaiton
// #define WASABI_COMPILE_UTF
// This enables action handling in UI objects (clicks and keypresses)
//#define WASABI_COMPILE_ACTIONS
// This enables UI scripting
#define WASABI_COMPILE_SCRIPT
// This enables keyboard locales in UI
//#define WASABI_COMPILE_LOCALES
// This enables bitmap and truetype font rendering
//#define WASABI_COMPILE_FONTS
// This sets the static font renderer. If you are compiling with api_config, the attribute to set is { 0x280876cf, 0x48c0, 0x40bc, { 0x8e, 0x86, 0x73, 0xce, 0x6b, 0xb4, 0x62, 0xe5 } }, "Font Renderer"
//#define WASABI_FONT_RENDERER "" // "" is Win32
// This lets you override all bitmapfonts using TTF fonts (for internationalization). define to a function call or a global value to change this value dynamically.
// If you are compiling with api_config, the attribute to set is { 0x280876cf, 0x48c0, 0x40bc, { 0x8e, 0x86, 0x73, 0xce, 0x6b, 0xb4, 0x62, 0xe5 } }, "Use bitmap fonts (no international support)"
//#define WASABI_FONT_TTFOVERRIDE 0 // 1 does all rendering with TTF
// This enables loading for pngs, jpgs (you need to add the necessary image loader services)
//#define WASABI_COMPILE_IMGLDR
//#define WASABI_COMPILE_IMGLDR_PNGREAD
// This enables metadb support
//#define WASABI_COMPILE_METADB
// This enables config file support
#define WASABI_COMPILE_CONFIG
// This enables the filereader pipeline
#define WASABI_COMPILE_FILEREADER
// This enables the xml parser for config and group loading
#define WASABI_COMPILE_XMLPARSER
// This enables system callback management
#define WASABI_COMPILE_SYSCB
// This enables centralized memory allocation/deallocation
//#define WASABI_COMPILE_MEMMGR
//#define WASABI_SKINS_SUBDIRECTORY "skins"
//#define WASABI_COMPILE_MEDIACORE
#define WASABI_COMPILE_MAKIDEBUG
#else // not _WASABIRUNTIME
// this section should define the entire set of wasabi parts since this is a full runtime build
//#define WASABI_COMPILE_COMPONENTS // not done !
#define WASABI_COMPILE_SKIN
#define WASABI_COMPILE_ACTIONS
#define WASABI_COMPILE_SCRIPT
#define WASABI_COMPILE_FONTS
#define WASABI_COMPILE_LOCALES
#define WASABI_COMPILE_IMGLDR
#define WASABI_COMPILE_IMGLDR_PNGREAD
//#define WASABI_COMPILE_METADB // not done !
#define WASABI_COMPILE_CONFIG
#define WASABI_COMPILE_FILEREADER
#define WASABI_COMPILE_XMLPARSER
#define WASABI_COMPILE_SYSCB
#define WASABI_COMPILE_MEMMGR
#define WASABI_COMPILE_SKIN_WA2
#define WASABI_COMPILE_PAINTSETS
#define WASABI_COMPILE_WNDMGR
#define WASABI_SKINS_SUBDIRECTORY "skins"
#define WASABI_RESOURCES_SUBDIRECTORY "wacs"
#define WASABI_FONT_RENDERER "" // "" is Win32
//#define WASABI_COMPILE_MEDIACORE
#define WASABI_COMPILE_TIMERS
#define WASABI_COMPILE_WND
#define WASABI_COMPILE_UTF
#define WASABI_WNDMGR_ALLCONTAINERSDYNAMIC 0
//#define WASABI_COMPILE_MAKIDEBUG
#endif // not _WASABIRUNTIME
#ifndef WASABINOMAINAPI
#define WASABI_API_SYSTEM api
#define WASABI_API_APP api
#define WASABI_API_COMPONENT api
#define WASABI_API_SVC api
#define WASABI_API_SYSCB api
#define WASABI_API_MAKI api
#define WASABI_API_UTF api
#define WASABI_API_WND api
#define WASABI_API_IMGLDR api
#define WASABI_API_FILE api
#define WASABI_API_TIMER api
#define WASABI_API_WNDMGR api
#define WASABI_API_SKIN api
#define WASABI_API_METADB api
#define WASABI_API_LOCALE api
#define WASABI_API_CONFIG api
#define WASABI_API_FONT api
#define WASABI_API_MEMMGR api
#define WASABI_API_MEDIACORE api
#define WASABI_API_MAKIDEBUG debugApi
#define EXPERIMENTAL_INDEPENDENT_AOT
#else // WASABINOMAINAPI
#define WASABI_API_SYSTEM systemApi
#define WASABI_API_APP applicationApi
#define WASABI_API_SVC serviceApi
#define WASABI_API_SYSCB sysCallbackApi
#ifdef WASABI_COMPILE_COMPONENTS
#define WASABI_API_COMPONENT componentApi
#endif
#ifdef WASABI_COMPILE_SCRIPT
#define WASABI_API_MAKI makiApi
#endif
#ifdef WASABI_COMPILE_UTF
#define WASABI_API_UTF utfApi
#endif
#ifdef WASABI_COMPILE_WND
#define WASABI_API_WND wndApi
#endif
#ifdef WASABI_COMPILE_IMGLDR
#define WASABI_API_IMGLDR imgLoaderApi
#endif
#ifdef WASABI_COMPILE_FILEREADER
#define WASABI_API_FILE fileApi
#endif
#ifdef WASABI_COMPILE_TIMERS
#define WASABI_API_TIMER timerApi
#endif
#ifdef WASABI_COMPILE_WNDMGR
#define WASABI_API_WNDMGR wndManagerApi
#endif
#ifdef WASABI_COMPILE_SKIN
#define WASABI_API_SKIN skinApi
#endif
#ifdef WASABI_COMPILE_METADB
#define WASABI_API_METADB metadbApi
#endif
#ifdef WASABI_COMPILE_LOCALES
#define WASABI_API_LOCALE localesApi
#endif
#ifdef WASABI_COMPILE_CONFIG
#define WASABI_API_CONFIG configApi
#endif
#ifdef WASABI_COMPILE_FONTS
#define WASABI_API_FONT fontApi
#endif
#ifdef WASABI_COMPILE_MEMMGR
#define WASABI_API_MEMMGR memmgrApi
#endif
#ifdef WASABI_COMPILE_MEDIACORE
#define WASABI_API_MEDIACORE coreApi
#endif
#ifdef WASABI_COMPILE_MAKIDEBUG
#define WASABI_API_MAKIDEBUG debugApi
#endif
#endif // WASABINOMAINAPI
#define WASABI_EXTERNAL_GUIOBJECTS
#define WASABI_WIDGETS_GUIOBJECT
#define WASABI_WIDGETS_LAYER
#define WASABI_WIDGETS_TEXT
#define WASABI_WIDGETS_BUTTON
#define WASABI_WIDGETS_TGBUTTON
#define WASABI_WIDGETS_ANIMLAYER
#define WASABI_WIDGETS_GROUPLIST
#define WASABI_WIDGETS_MOUSEREDIR
#define WASABI_WIDGETS_SLIDER
#define WASABI_WIDGETS_MEDIASLIDERS
#define WASABI_WIDGETS_MEDIAVIS
#define WASABI_WIDGETS_MEDIAEQCURVE
#define WASABI_WIDGETS_MEDIASTATUS
#define WASABI_WIDGETS_SVCWND
#define WASABI_WIDGETS_EDIT
#define WASABI_WIDGETS_TITLEBAR
#define WASABI_WIDGETS_COMPBUCK
//#define WASABI_WANT_FF_POPUP
#ifndef WASABI_EXTERNAL_GUIOBJECTS
#define WASABI_WIDGETS_BROWSER
#define WASABI_WIDGETS_FRAME
#define WASABI_WIDGETS_GRID
#define WASABI_WIDGETS_QUERYDRAG
#define WASABI_WIDGETS_QUERYLIST
#define WASABI_WIDGETS_FILTERLIST
#define WASABI_WIDGETS_QUERYLINE
#define WASABI_WIDGETS_WNDHOLDER
#define WASABI_WIDGETS_LAYOUTSTATUS
#define WASABI_WIDGETS_TABSHEET
#define WASABI_WIDGETS_CHECKBOX
#define WASABI_WIDGETS_TITLEBOX
#define WASABI_WIDGETS_CUSTOMOBJECT
#define WASABI_WIDGETS_RADIOGROUP
#define WASABI_WIDGETS_LIST
#define WASABI_WIDGETS_TREE
#define WASABI_WIDGETS_DROPDOWNLIST
#define WASABI_WIDGETS_COMBOBOX
#define WASABI_WIDGETS_HISTORYEDITBOX
#define WASABI_WIDGETS_OBJECTDIRECTORY
#define WASABI_WIDGETS_RECTANGLE
#define WASABI_WIDGETS_PATHPICKER
#define WASABI_WIDGETS_GRADIENT
#define WASABI_WIDGETS_MENUBUTTON
#define WASABI_TOOLOBJECT_HIDEOBJECT
#define WASABI_TOOLOBJECT_SENDPARAMS
#define WASABI_TOOLOBJECT_ADDPARAMS
#endif // WASABI_EXTERNAL_GUIOBJECTS
#define WASABI_SCRIPTOBJECTS_POPUP
#define WASABI_SCRIPTOBJECTS_LIST
#define WASABI_SCRIPTOBJECTS_BITLIST
#define WASABI_SCRIPTOBJECTS_REGION
#define WASABI_SCRIPTOBJECTS_TIMER
#define WASABI_SCRIPTOBJECTS_MAP
#ifndef WASABI_EXTERNAL_GUIOBJECTS
#define WASABI_SCRIPTOBJECTS_WAC
#endif // WASABI_EXTERNAL_GUIOBJECTS
#define WASABI_DEFAULT_STDCONTAINER "resizable_status"
#include <api/application/api_application.h>
#include <api/service/api_service.h>
#include <api/syscb/api_syscb.h>
#ifdef WASABI_COMPILE_MEMMGR
# include <api/memmgr/api_memmgr.h>
#endif
#ifdef WASABI_COMPILE_SCRIPT
# include <api/script/api_maki.h>
#endif
#ifdef WASABI_COMPILE_FONTS
# include <api/font/api_font.h>
#endif
#ifdef WASABI_COMPILE_WND
# include <api/wnd/api_wnd.h>
#endif
#ifdef WASABI_COMPILE_IMGLDR
# include <api/imgldr/api_imgldr.h>
#endif
#ifdef WASABI_COMPILE_FILEREADER
# include <api/filereader/api_filereader.h>
#endif
#ifdef WASABI_COMPILE_TIMERS
# include <api/timer/api_timer.h>
#endif
#ifdef WASABI_COMPILE_WNDMGR
# include <api/wndmgr/api_wndmgr.h>
#endif
#ifdef WASABI_COMPILE_LOCALES
# include <api/locales/api_locales.h>
#endif
#ifdef WASABI_COMPILE_CONFIG
# include <api/config/api_config.h>
#endif
#ifdef WASABI_COMPILE_SKIN
# include <api/skin/api_skin.h>
#endif
#ifdef WASABI_COMPILE_MAKIDEBUG
# include <api/script/debugger/api_makidebug.h>
#endif
#endif
|