1 /*
2  * Copyright (c) 2016 Derelict Developers
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  *   notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  *   notice, this list of conditions and the following disclaimer in the
14  *   documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the names 'Derelict', 'DerelictLibui', nor the names of its contributors
17  *   may be used to endorse or promote products derived from this software
18  *   without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 module derelict.libui.funcs;
33 
34 private
35 {
36     import derelict.util.system;
37     import derelict.libui.types;
38 }
39 
40 extern(C) nothrow
41 {
42     alias da_uiInit = cstring function(uiInitOptions *options);
43     alias da_uiUninit = void function();
44 
45     alias da_uiFreeInitError = void function(cstring err);
46 
47     alias da_uiMain = void function();
48     alias da_uiQuit = void function();
49 
50     alias da_uiQueueMain = void function(void function(void *data) f, void *data);
51     alias da_uiOnShouldQuit = void function(int function(void *data) f, void *data);
52     alias da_uiFreeText = void function(cstring text);
53 
54     alias da_uiControlDestroy = void function(uiControl *);
55     alias da_uiControlHandle = uintptr_t function(uiControl *);
56     alias da_uiControlParent = uiControl* function(uiControl *);
57     alias da_uiControlSetParent = void function(uiControl *, uiControl *);
58     alias da_uiControlToplevel = int function(uiControl *);
59     alias da_uiControlVisible = int function(uiControl *);
60     alias da_uiControlShow = void function(uiControl *);
61     alias da_uiControlHide = void function(uiControl *);
62     alias da_uiControlEnabled = int function(uiControl *);
63     alias da_uiControlEnable = void function(uiControl *);
64     alias da_uiControlDisable = void function(uiControl *);
65 
66     alias da_uiAllocControl = uiControl* function(size_t n, uint32_t OSsig, uint32_t typesig, cstring typenamestr);
67     alias da_uiFreeControl = void function(uiControl *);
68 
69     alias da_uiControlVerifyDestroy = void function(uiControl *);
70     alias da_uiControlVerifySetParent = void function(uiControl *, uiControl *);
71     alias da_uiControlEnabledToUser = int function(uiControl *);
72 
73     alias onWindowClosingFunction = int function(uiWindow* w, void* data);
74 
75     alias da_uiWindowTitle = cstring function(uiWindow *w);
76     alias da_uiWindowSetTitle = void function(uiWindow *w, cstring title);
77     alias da_uiWindowOnClosing = void function(uiWindow *w, onWindowClosingFunction f, void* data);
78     alias da_uiWindowSetChild = void function(uiWindow *w, uiControl *child);
79     alias da_uiWindowMargined = int function(uiWindow *w);
80     alias da_uiWindowSetMargined = void function(uiWindow *w, int margined);
81     alias da_uiNewWindow = uiWindow* function(cstring title, int width, int height, int hasMenubar);
82 
83     alias da_uiButtonText = cstring function(uiButton *b);
84     alias da_uiButtonSetText = void function(uiButton *b, cstring text);
85     alias da_uiButtonOnClicked = void function(uiButton *b, void function(uiButton *b, void *data) f, void *data);
86     alias da_uiNewButton = uiButton* function(cstring text);
87     
88     alias da_uiBoxAppend = void function(uiBox *b, uiControl *child, int stretchy);
89     alias da_uiBoxDelete = void function(uiBox *b, uintmax_t index);
90     alias da_uiBoxPadded = int function(uiBox *b);
91     alias da_uiBoxSetPadded = void function(uiBox *b, int padded);
92     alias da_uiNewHorizontalBox = uiBox* function();
93     alias da_uiNewVerticalBox = uiBox* function();
94     
95     alias da_uiEntryText = cstring function(uiEntry *e);
96     alias da_uiEntrySetText = void function(uiEntry *e, cstring text);
97     alias da_uiEntryOnChanged = void function(uiEntry *e, void function(uiEntry *e, void *data) f, void *data);
98     alias da_uiEntryReadOnly = int function(uiEntry *e);
99     alias da_uiEntrySetReadOnly = void function(uiEntry *e, int readonly);
100     alias da_uiNewEntry = uiEntry* function();
101     
102     alias da_uiCheckboxText = cstring function(uiCheckbox *c);
103     alias da_uiCheckboxSetText = void function(uiCheckbox *c, cstring text);
104     alias da_uiCheckboxOnToggled = void function(uiCheckbox *c, void function(uiCheckbox *c, void *data) f, void *data);
105     alias da_uiCheckboxChecked = int function(uiCheckbox *c);
106     alias da_uiCheckboxSetChecked = void function(uiCheckbox *c, int checked);
107     alias da_uiNewCheckbox = uiCheckbox* function(cstring text);
108     
109     alias da_uiLabelText = cstring function(uiLabel *l);
110     alias da_uiLabelSetText = void function(uiLabel *l, cstring text);
111     alias da_uiNewLabel = uiLabel* function(cstring text);
112     
113     alias da_uiTabAppend = void function(uiTab *t, cstring name, uiControl *c);
114     alias da_uiTabInsertAt = void function(uiTab *t, cstring name, uintmax_t before, uiControl *c);
115     alias da_uiTabDelete = void function(uiTab *t, uintmax_t index);
116     alias da_uiTabNumPages = uintmax_t function(uiTab *t);
117     alias da_uiTabMargined = int function(uiTab *t, uintmax_t page);
118     alias da_uiTabSetMargined = void function(uiTab *t, uintmax_t page, int margined);
119     alias da_uiNewTab = uiTab* function();
120     
121     alias da_uiGroupTitle = cstring function(uiGroup *g);
122     alias da_uiGroupSetTitle = void function(uiGroup *g, cstring title);
123     alias da_uiGroupSetChild = void function(uiGroup *g, uiControl *c);
124     alias da_uiGroupMargined = int function(uiGroup *g);
125     alias da_uiGroupSetMargined = void function(uiGroup *g, int margined);
126     alias da_uiNewGroup = uiGroup* function(cstring title);
127     
128     alias da_uiSpinboxValue = intmax_t function(uiSpinbox *s);
129     alias da_uiSpinboxSetValue = void function(uiSpinbox *s, intmax_t value);
130     alias da_uiSpinboxOnChanged = void function(uiSpinbox *s, void function(uiSpinbox *s, void *data) f, void *data);
131     alias da_uiNewSpinbox = uiSpinbox* function(intmax_t min, intmax_t max);
132     
133     alias da_uiProgressBarSetValue = void function(uiProgressBar *p, int n);
134     alias da_uiNewProgressBar = uiProgressBar* function();
135     
136     alias da_uiSliderValue = intmax_t function(uiSlider *s);
137     alias da_uiSliderSetValue = void function(uiSlider *s, intmax_t value);
138     alias da_uiSliderOnChanged = void function(uiSlider *s, void function(uiSlider *s, void *data) f, void *data);
139     alias da_uiNewSlider = uiSlider* function(intmax_t min, intmax_t max);
140     
141     alias da_uiNewHorizontalSeparator = uiSeparator* function();
142     
143     alias da_uiComboboxAppend = void function(uiCombobox *c, cstring text);
144     alias da_uiComboboxSelected = intmax_t function(uiCombobox *c);
145     alias da_uiComboboxSetSelected = void function(uiCombobox *c, intmax_t n);
146     alias da_uiComboboxOnSelected = void function(uiCombobox *c, void function(uiCombobox *c, void *data) f, void *data);
147     alias da_uiNewCombobox = uiCombobox* function();
148     alias da_uiNewEditableCombobox = uiCombobox* function();
149     
150     alias da_uiRadioButtonsAppend = void function(uiRadioButtons *r, cstring text);
151     alias da_uiNewRadioButtons = uiRadioButtons* function();
152     
153     alias da_uiNewDateTimePicker = uiDateTimePicker* function();
154     alias da_uiNewDatePicker = uiDateTimePicker* function();
155     alias da_uiNewTimePicker = uiDateTimePicker* function();
156     
157     alias da_uiMultilineEntryText = cstring function(uiMultilineEntry *e);
158     alias da_uiMultilineEntrySetText = void function(uiMultilineEntry *e, cstring text);
159     alias da_uiMultilineEntryAppend = void function(uiMultilineEntry *e, cstring text);
160     alias da_uiMultilineEntryOnChanged = void function(uiMultilineEntry *e, void function(uiMultilineEntry *e, void *data) f, void *data);
161     alias da_uiMultilineEntryReadOnly = int function(uiMultilineEntry *e);
162     alias da_uiMultilineEntrySetReadOnly = void function(uiMultilineEntry *e, int readonly);
163     alias da_uiNewMultilineEntry = uiMultilineEntry* function();
164 
165     alias da_uiMenuItemEnable = void function(uiMenuItem *m);
166     alias da_uiMenuItemDisable = void function(uiMenuItem *m);
167     alias da_uiMenuItemOnClicked = void function(uiMenuItem *m, void function(uiMenuItem *sender, uiWindow *window, void *data) f, void *data);
168     alias da_uiMenuItemChecked = int function(uiMenuItem *m);
169     alias da_uiMenuItemSetChecked = void function(uiMenuItem *m, int checked);
170     
171     alias da_uiMenuAppendItem = uiMenuItem* function(uiMenu *m, cstring name);
172     alias da_uiMenuAppendCheckItem = uiMenuItem* function(uiMenu *m, cstring name);
173     alias da_uiMenuAppendQuitItem = uiMenuItem* function(uiMenu *m);
174     alias da_uiMenuAppendPreferencesItem = uiMenuItem* function(uiMenu *m);
175     alias da_uiMenuAppendAboutItem = uiMenuItem* function(uiMenu *m);
176     alias da_uiMenuAppendSeparator = void function(uiMenu *m);
177     alias da_uiNewMenu = uiMenu* function(cstring name);
178 
179     alias da_uiOpenFile = cstring function(uiWindow *parent);
180     alias da_uiSaveFile = cstring function(uiWindow *parent);
181     alias da_uiMsgBox = void function(uiWindow *parent, cstring title, cstring description);
182     alias da_uiMsgBoxError = void function(uiWindow *parent, cstring title, cstring description);
183     
184     alias da_uiAreaSetSize = void function(uiArea *a, intmax_t width, intmax_t height);
185     alias da_uiAreaQueueRedrawAll = void function(uiArea *a);
186     alias da_uiAreaScrollTo = void function(uiArea *a, double x, double y, double width, double height);
187     alias da_uiNewArea = uiArea* function(uiAreaHandler *ah);
188     alias da_uiNewScrollingArea = uiArea* function(uiAreaHandler *ah, intmax_t width, intmax_t height);
189     
190     alias da_uiDrawNewPath = uiDrawPath* function(uiDrawFillMode fillMode);
191     alias da_uiDrawFreePath = void function(uiDrawPath *p);
192     
193     alias da_uiDrawPathNewFigure = void function(uiDrawPath *p, double x, double y);
194     alias da_uiDrawPathNewFigureWithArc = void function(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative);
195     alias da_uiDrawPathLineTo = void function(uiDrawPath *p, double x, double y);
196     alias da_uiDrawPathArcTo = void function(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative);
197     alias da_uiDrawPathBezierTo = void function(uiDrawPath *p, double c1x, double c1y, double c2x, double c2y, double endX, double endY);
198     alias da_uiDrawPathCloseFigure = void function(uiDrawPath *p);
199     alias da_uiDrawPathAddRectangle = void function(uiDrawPath *p, double x, double y, double width, double height);
200     alias da_uiDrawPathEnd = void function(uiDrawPath *p);
201     
202     alias da_uiDrawStroke = void function(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b, uiDrawStrokeParams *p);
203     alias da_uiDrawFill = void function(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b);
204     
205     alias da_uiDrawMatrixSetIdentity = void function(uiDrawMatrix *m);
206     alias da_uiDrawMatrixTranslate = void function(uiDrawMatrix *m, double x, double y);
207     alias da_uiDrawMatrixScale = void function(uiDrawMatrix *m, double xCenter, double yCenter, double x, double y);
208     alias da_uiDrawMatrixRotate = void function(uiDrawMatrix *m, double x, double y, double amount);
209     alias da_uiDrawMatrixSkew = void function(uiDrawMatrix *m, double x, double y, double xamount, double yamount);
210     alias da_uiDrawMatrixMultiply = void function(uiDrawMatrix *dest, uiDrawMatrix *src);
211     alias da_uiDrawMatrixInvertible = int function(uiDrawMatrix *m);
212     alias da_uiDrawMatrixInvert = int function(uiDrawMatrix *m);
213     alias da_uiDrawMatrixTransformPoint = void function(uiDrawMatrix *m, double *x, double *y);
214     alias da_uiDrawMatrixTransformSize = void function(uiDrawMatrix *m, double *x, double *y);
215     
216     alias da_uiDrawTransform = void function(uiDrawContext *c, uiDrawMatrix *m);
217     
218     alias da_uiDrawClip = void function(uiDrawContext *c, uiDrawPath *path);
219     
220     alias da_uiDrawSave = void function(uiDrawContext *c);
221     alias da_uiDrawRestore = void function(uiDrawContext *c);
222     
223     alias da_uiDrawListFontFamilies = uiDrawFontFamilies* function();
224     alias da_uiDrawFontFamiliesNumFamilies = uintmax_t function(uiDrawFontFamilies *ff);
225     alias da_uiDrawFontFamiliesFamily = cstring function(uiDrawFontFamilies *ff, uintmax_t n);
226     alias da_uiDrawFreeFontFamilies = void function(uiDrawFontFamilies *ff);
227     
228     alias da_uiDrawLoadClosestFont = uiDrawTextFont* function(const uiDrawTextFontDescriptor *desc);
229     alias da_uiDrawFreeTextFont = void function(uiDrawTextFont *font);
230     alias da_uiDrawTextFontHandle = uintptr_t function(uiDrawTextFont *font);
231     alias da_uiDrawTextFontDescribe = void function(uiDrawTextFont *font, uiDrawTextFontDescriptor *desc);
232     alias da_uiDrawTextFontGetMetrics = void function(uiDrawTextFont *font, uiDrawTextFontMetrics *metrics);
233     
234     alias da_uiDrawNewTextLayout = uiDrawTextLayout* function(cstring text, uiDrawTextFont *defaultFont, double width);
235     alias da_uiDrawFreeTextLayout = void function(uiDrawTextLayout *layout);
236     
237     alias da_uiDrawTextLayoutSetWidth = void function(uiDrawTextLayout *layout, double width);
238     alias da_uiDrawTextLayoutExtents = void function(uiDrawTextLayout *layout, double *width, double *height);
239     alias da_uiDrawTextLayoutSetColor = void function(uiDrawTextLayout *layout, intmax_t startChar, intmax_t endChar, double r, double g, double b, double a);
240     alias da_uiDrawText = void function(uiDrawContext *c, double x, double y, uiDrawTextLayout *layout);
241     
242     alias da_uiFontButtonFont = uiDrawTextFont* function(uiFontButton *b);
243     alias da_uiFontButtonOnChanged = void function(uiFontButton *b, void function(uiFontButton *, void *) f, void *data);
244     alias da_uiNewFontButton = uiFontButton* function();
245 
246     alias da_uiColorButtonColor = void function(uiColorButton *b, double *r, double *g, double *bl, double *a);
247     alias da_uiColorButtonSetColor = void function(uiColorButton *b, double r, double g, double bl, double a);
248     alias da_uiColorButtonOnChanged = void function(uiColorButton *b, void function(uiColorButton *, void *) f, void *data);
249     alias da_uiNewColorButton = uiColorButton* function();
250 }
251 
252 __gshared
253 {
254     da_uiInit uiInit;
255     da_uiUninit uiUninit;
256 
257     da_uiFreeInitError uiFreeInitError;
258     da_uiMain uiMain;
259     da_uiQuit uiQuit;
260 
261     da_uiQueueMain uiQueueMain;
262     da_uiOnShouldQuit uiOnShouldQuit;
263     da_uiFreeText uiFreeText;
264 
265     da_uiControlDestroy uiControlDestroy;
266     da_uiControlHandle uiControlHandle;
267     da_uiControlParent uiControlParent;
268     da_uiControlSetParent uiControlSetParent;
269     da_uiControlToplevel uiControlToplevel;
270     da_uiControlVisible uiControlVisible;
271     da_uiControlShow uiControlShow;
272     da_uiControlHide uiControlHide;
273     da_uiControlEnabled uiControlEnabled;
274     da_uiControlEnable uiControlEnable;
275     da_uiControlDisable uiControlDisable;
276 
277     da_uiAllocControl uiAllocControl;
278     da_uiFreeControl uiFreeControl;
279 
280     da_uiControlVerifyDestroy uiControlVerifyDestroy;
281     da_uiControlVerifySetParent uiControlVerifySetParent;
282     da_uiControlEnabledToUser uiControlEnabledToUser;
283 
284     da_uiWindowTitle uiWindowTitle;
285     da_uiWindowSetTitle uiWindowSetTitle;
286     da_uiWindowOnClosing uiWindowOnClosing;
287     da_uiWindowSetChild uiWindowSetChild;
288     da_uiWindowMargined uiWindowMargined;
289     da_uiWindowSetMargined uiWindowSetMargined;
290     da_uiNewWindow uiNewWindow;
291 
292     da_uiButtonText uiButtonText;
293     da_uiButtonSetText uiButtonSetText;
294     da_uiButtonOnClicked uiButtonOnClicked;
295     da_uiNewButton uiNewButton;
296     
297     da_uiBoxAppend uiBoxAppend;
298     da_uiBoxDelete uiBoxDelete;
299     da_uiBoxPadded uiBoxPadded;
300     da_uiBoxSetPadded uiBoxSetPadded;
301     da_uiNewHorizontalBox uiNewHorizontalBox;
302     da_uiNewVerticalBox uiNewVerticalBox;
303     
304     da_uiEntryText uiEntryText;
305     da_uiEntrySetText uiEntrySetText;
306     da_uiEntryOnChanged uiEntryOnChanged;
307     da_uiEntryReadOnly uiEntryReadOnly;
308     da_uiEntrySetReadOnly uiEntrySetReadOnly;
309     da_uiNewEntry uiNewEntry;
310     
311     da_uiCheckboxText uiCheckboxText;
312     da_uiCheckboxSetText uiCheckboxSetText;
313     da_uiCheckboxOnToggled uiCheckboxOnToggled;
314     da_uiCheckboxChecked uiCheckboxChecked;
315     da_uiCheckboxSetChecked uiCheckboxSetChecked;
316     da_uiNewCheckbox uiNewCheckbox;
317     
318     da_uiLabelText uiLabelText;
319     da_uiLabelSetText uiLabelSetText;
320     da_uiNewLabel uiNewLabel;
321     
322     da_uiTabAppend uiTabAppend;
323     da_uiTabInsertAt uiTabInsertAt;
324     da_uiTabDelete uiTabDelete;
325     da_uiTabNumPages uiTabNumPages;
326     da_uiTabMargined uiTabMargined;
327     da_uiTabSetMargined uiTabSetMargined;
328     da_uiNewTab uiNewTab;
329     
330     da_uiGroupTitle uiGroupTitle;
331     da_uiGroupSetTitle uiGroupSetTitle;
332     da_uiGroupSetChild uiGroupSetChild;
333     da_uiGroupMargined uiGroupMargined;
334     da_uiGroupSetMargined uiGroupSetMargined;
335     da_uiNewGroup uiNewGroup;
336     
337     da_uiSpinboxValue uiSpinboxValue;
338     da_uiSpinboxSetValue uiSpinboxSetValue;
339     da_uiSpinboxOnChanged uiSpinboxOnChanged;
340     da_uiNewSpinbox uiNewSpinbox;
341     
342     da_uiProgressBarSetValue uiProgressBarSetValue;
343     da_uiNewProgressBar uiNewProgressBar;
344     
345     da_uiSliderValue uiSliderValue;
346     da_uiSliderSetValue uiSliderSetValue;
347     da_uiSliderOnChanged uiSliderOnChanged;
348     da_uiNewSlider uiNewSlider;
349     
350     da_uiNewHorizontalSeparator uiNewHorizontalSeparator;
351     
352     da_uiComboboxAppend uiComboboxAppend;
353     da_uiComboboxSelected uiComboboxSelected;
354     da_uiComboboxSetSelected uiComboboxSetSelected;
355     da_uiComboboxOnSelected uiComboboxOnSelected;
356     da_uiNewCombobox uiNewCombobox;
357     da_uiNewEditableCombobox uiNewEditableCombobox;
358     
359     da_uiRadioButtonsAppend uiRadioButtonsAppend;
360     da_uiNewRadioButtons uiNewRadioButtons;
361     
362     da_uiNewDateTimePicker uiNewDateTimePicker;
363     da_uiNewDatePicker uiNewDatePicker;
364     da_uiNewTimePicker uiNewTimePicker;
365     
366     da_uiMultilineEntryText uiMultilineEntryText;
367     da_uiMultilineEntrySetText uiMultilineEntrySetText;
368     da_uiMultilineEntryAppend uiMultilineEntryAppend;
369     da_uiMultilineEntryOnChanged uiMultilineEntryOnChanged;
370     da_uiMultilineEntryReadOnly uiMultilineEntryReadOnly;
371     da_uiMultilineEntrySetReadOnly uiMultilineEntrySetReadOnly;
372     da_uiNewMultilineEntry uiNewMultilineEntry;
373 
374     da_uiMenuItemEnable uiMenuItemEnable;
375     da_uiMenuItemDisable uiMenuItemDisable;
376     da_uiMenuItemOnClicked uiMenuItemOnClicked;
377     da_uiMenuItemChecked uiMenuItemChecked;
378     da_uiMenuItemSetChecked uiMenuItemSetChecked;
379     
380     da_uiMenuAppendItem uiMenuAppendItem;
381     da_uiMenuAppendCheckItem uiMenuAppendCheckItem;
382     da_uiMenuAppendQuitItem uiMenuAppendQuitItem;
383     da_uiMenuAppendPreferencesItem uiMenuAppendPreferencesItem;
384     da_uiMenuAppendAboutItem uiMenuAppendAboutItem;
385     da_uiMenuAppendSeparator uiMenuAppendSeparator;
386     da_uiNewMenu uiNewMenu;
387 
388     da_uiOpenFile uiOpenFile;
389     da_uiSaveFile uiSaveFile;
390     da_uiMsgBox uiMsgBox;
391     da_uiMsgBoxError uiMsgBoxError;
392     
393     da_uiAreaSetSize uiAreaSetSize;
394     da_uiAreaQueueRedrawAll uiAreaQueueRedrawAll;
395     da_uiAreaScrollTo uiAreaScrollTo;
396     da_uiNewArea uiNewArea;
397     da_uiNewScrollingArea uiNewScrollingArea;
398     
399     da_uiDrawNewPath uiDrawNewPath;
400     da_uiDrawFreePath uiDrawFreePath;
401     
402     da_uiDrawPathNewFigure uiDrawPathNewFigure;
403     da_uiDrawPathNewFigureWithArc uiDrawPathNewFigureWithArc;
404     da_uiDrawPathLineTo uiDrawPathLineTo;
405     da_uiDrawPathArcTo uiDrawPathArcTo;
406     da_uiDrawPathBezierTo uiDrawPathBezierTo;
407     da_uiDrawPathCloseFigure uiDrawPathCloseFigure;
408     da_uiDrawPathAddRectangle uiDrawPathAddRectangle;
409     da_uiDrawPathEnd uiDrawPathEnd;
410     
411     da_uiDrawStroke uiDrawStroke;
412     da_uiDrawFill uiDrawFill;
413     
414     da_uiDrawMatrixSetIdentity uiDrawMatrixSetIdentity;
415     da_uiDrawMatrixTranslate uiDrawMatrixTranslate;
416     da_uiDrawMatrixScale uiDrawMatrixScale;
417     da_uiDrawMatrixRotate uiDrawMatrixRotate;
418     da_uiDrawMatrixSkew uiDrawMatrixSkew;
419     da_uiDrawMatrixMultiply uiDrawMatrixMultiply;
420     da_uiDrawMatrixInvertible uiDrawMatrixInvertible;
421     da_uiDrawMatrixInvert uiDrawMatrixInvert;
422     da_uiDrawMatrixTransformPoint uiDrawMatrixTransformPoint;
423     da_uiDrawMatrixTransformSize uiDrawMatrixTransformSize;
424     
425     da_uiDrawTransform uiDrawTransform;
426     
427     da_uiDrawClip uiDrawClip;
428     
429     da_uiDrawSave uiDrawSave;
430     da_uiDrawRestore uiDrawRestore;
431     
432     da_uiDrawListFontFamilies uiDrawListFontFamilies;
433     da_uiDrawFontFamiliesNumFamilies uiDrawFontFamiliesNumFamilies;
434     da_uiDrawFontFamiliesFamily uiDrawFontFamiliesFamily;
435     da_uiDrawFreeFontFamilies uiDrawFreeFontFamilies;
436     
437     da_uiDrawLoadClosestFont uiDrawLoadClosestFont;
438     da_uiDrawFreeTextFont uiDrawFreeTextFont;
439     da_uiDrawTextFontHandle uiDrawTextFontHandle;
440     da_uiDrawTextFontDescribe uiDrawTextFontDescribe;
441     da_uiDrawTextFontGetMetrics uiDrawTextFontGetMetrics;
442     
443     da_uiDrawNewTextLayout uiDrawNewTextLayout;
444     da_uiDrawFreeTextLayout uiDrawFreeTextLayout;
445     
446     da_uiDrawTextLayoutSetWidth uiDrawTextLayoutSetWidth;
447     da_uiDrawTextLayoutExtents uiDrawTextLayoutExtents;
448     da_uiDrawTextLayoutSetColor uiDrawTextLayoutSetColor;
449     da_uiDrawText uiDrawText;
450     
451     da_uiFontButtonFont uiFontButtonFont;
452     da_uiFontButtonOnChanged uiFontButtonOnChanged;
453     da_uiNewFontButton uiNewFontButton;
454 
455     da_uiColorButtonColor uiColorButtonColor;
456     da_uiColorButtonSetColor uiColorButtonSetColor;
457     da_uiColorButtonOnChanged uiColorButtonOnChanged;
458     da_uiNewColorButton uiNewColorButton;
459 }