libui 0.2.0.pre-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/libui/ffi.rb ADDED
@@ -0,0 +1,658 @@
1
+ require 'fiddle/import'
2
+ require_relative 'fiddle_patch'
3
+ require_relative 'error'
4
+
5
+ module LibUI
6
+ class Error < StandardError; end
7
+
8
+ module FFI
9
+ extend Fiddle::Importer
10
+ extend FiddlePatch
11
+
12
+ if LibUI.ffi_lib.nil?
13
+ raise LibraryNotFoundError, 'Could not find libui shared library. LibUI.ffi_lib is nil.'
14
+ elsif !File.exist?(LibUI.ffi_lib)
15
+ raise LibraryNotFoundError, "Could not find libui shared library: #{LibUI.ffi_lib}"
16
+ else
17
+ begin
18
+ dlload LibUI.ffi_lib
19
+ rescue LoadError
20
+ raise LibraryLoadError, "Could not load libui shared library: #{LibUI.ffi_lib}"
21
+ end
22
+ end
23
+
24
+ class << self
25
+ attr_reader :func_map
26
+
27
+ def try_extern(signature, *opts)
28
+ extern(signature, *opts)
29
+ rescue StandardError => e
30
+ # Do not raise error when the function is not found
31
+ # because some functions may not be available on older versions of libui.
32
+ warn "#{e.class.name}: #{e.message}"
33
+ end
34
+
35
+ def ffi_methods
36
+ @ffi_methods ||= func_map.each_key.to_a
37
+ end
38
+ end
39
+
40
+ typealias('uint32_t', 'unsigned int')
41
+
42
+ InitOptions = struct [
43
+ 'size_t Size'
44
+ ]
45
+
46
+ # https://github.com/andlabs/libui/blob/master/ui.h
47
+ # keep same order
48
+
49
+ try_extern 'const char *uiInit(uiInitOptions *options)'
50
+ try_extern 'void uiUninit(void)'
51
+ try_extern 'void uiFreeInitError(const char *err)'
52
+
53
+ try_extern 'void uiMain(void)'
54
+ try_extern 'void uiMainSteps(void)'
55
+ try_extern 'int uiMainStep(int wait)'
56
+ try_extern 'void uiQuit(void)'
57
+ try_extern 'void uiQueueMain(void (*f)(void *data), void *data)'
58
+ try_extern 'void uiTimer(int milliseconds, int (*f)(void *data), void *data)'
59
+ try_extern 'void uiOnShouldQuit(int (*f)(void *data), void *data)'
60
+ try_extern 'void uiFreeText(char *text)'
61
+
62
+ Control = struct [
63
+ 'uint32_t Signature',
64
+ 'uint32_t OSSignature',
65
+ 'uint32_t TypeSignature',
66
+ 'void (*Destroy)(uiControl *)',
67
+ 'uintptr_t (*Handle)(uiControl *)',
68
+ 'uiControl *(*Parent)(uiControl *)',
69
+ 'void (*SetParent)(uiControl *, uiControl *)',
70
+ 'int (*Toplevel)(uiControl *)',
71
+ 'int (*Visible)(uiControl *)',
72
+ 'void (*Show)(uiControl *)',
73
+ 'void (*Hide)(uiControl *)',
74
+ 'int (*Enabled)(uiControl *)',
75
+ 'void (*Enable)(uiControl *)',
76
+ 'void (*Disable)(uiControl *)'
77
+ ]
78
+
79
+ try_extern 'void uiControlDestroy(uiControl *c)'
80
+ try_extern 'uintptr_t uiControlHandle(uiControl *c)'
81
+ try_extern 'uiControl *uiControlParent(uiControl *c)'
82
+ try_extern 'void uiControlSetParent(uiControl *c, uiControl *parent)'
83
+ try_extern 'int uiControlToplevel(uiControl *c)'
84
+ try_extern 'int uiControlVisible(uiControl *c)'
85
+ try_extern 'void uiControlShow(uiControl *c)'
86
+ try_extern 'void uiControlHide(uiControl *c)'
87
+ try_extern 'int uiControlEnabled(uiControl *c)'
88
+ try_extern 'void uiControlEnable(uiControl *c)'
89
+ try_extern 'void uiControlDisable(uiControl *c)'
90
+
91
+ try_extern 'uiControl *uiAllocControl(size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr)'
92
+ try_extern 'void uiFreeControl(uiControl *c)'
93
+
94
+ try_extern 'void uiControlVerifySetParent(uiControl *c, uiControl *parent)'
95
+ try_extern 'int uiControlEnabledToUser(uiControl *c)'
96
+
97
+ try_extern 'void uiUserBugCannotSetParentOnToplevel(const char *type)'
98
+
99
+ # uiWindow
100
+
101
+ try_extern 'char *uiWindowTitle(uiWindow *w)'
102
+ try_extern 'void uiWindowSetTitle(uiWindow *w, const char *title)'
103
+ try_extern 'void uiWindowPosition(uiWindow *w, int *x, int *y)'
104
+ try_extern 'void uiWindowSetPosition(uiWindow *w, int x, int y)'
105
+ try_extern 'void uiWindowOnPositionChanged(uiWindow *w, void (*f)(uiWindow *sender, void *senderData), void *data)'
106
+ try_extern 'void uiWindowContentSize(uiWindow *w, int *width, int *height)'
107
+ try_extern 'void uiWindowSetContentSize(uiWindow *w, int width, int height)'
108
+ try_extern 'int uiWindowFullscreen(uiWindow *w)'
109
+ try_extern 'void uiWindowSetFullscreen(uiWindow *w, int fullscreen)'
110
+ try_extern 'void uiWindowOnContentSizeChanged(uiWindow *w, void (*f)(uiWindow *sender, void *senderData), void *data)'
111
+ try_extern 'void uiWindowOnClosing(uiWindow *w, int (*f)(uiWindow *sender, void *senderData), void *data)'
112
+ try_extern 'void uiWindowOnFocusChanged(uiWindow *w, void (*f)(uiWindow *sender, void *senderData), void *data)'
113
+ try_extern 'int uiWindowFocused(uiWindow *w)'
114
+ try_extern 'int uiWindowBorderless(uiWindow *w)'
115
+ try_extern 'void uiWindowSetBorderless(uiWindow *w, int borderless)'
116
+ try_extern 'void uiWindowSetChild(uiWindow *w, uiControl *child)'
117
+ try_extern 'int uiWindowMargined(uiWindow *w)'
118
+ try_extern 'void uiWindowSetMargined(uiWindow *w, int margined)'
119
+ try_extern 'int uiWindowResizeable(uiWindow *w)'
120
+ try_extern 'void uiWindowSetResizeable(uiWindow *w, int resizeable)'
121
+ try_extern 'uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar)'
122
+
123
+ # uiButton
124
+
125
+ try_extern 'char *uiButtonText(uiButton *b)'
126
+ try_extern 'void uiButtonSetText(uiButton *b, const char *text)'
127
+ try_extern 'void uiButtonOnClicked(uiButton *b, void (*f)(uiButton *sender, void *senderData), void *data)'
128
+ try_extern 'uiButton *uiNewButton(const char *text)'
129
+
130
+ # uiBox
131
+
132
+ try_extern 'void uiBoxAppend(uiBox *b, uiControl *child, int stretchy)'
133
+ try_extern 'int uiBoxNumChildren(uiBox *b)'
134
+ try_extern 'void uiBoxDelete(uiBox *b, int index)'
135
+ try_extern 'int uiBoxPadded(uiBox *b)'
136
+ try_extern 'void uiBoxSetPadded(uiBox *b, int padded)'
137
+ try_extern 'uiBox *uiNewHorizontalBox(void)'
138
+ try_extern 'uiBox *uiNewVerticalBox(void)'
139
+
140
+ # uiCheckbox
141
+
142
+ try_extern 'char *uiCheckboxText(uiCheckbox *c)'
143
+ try_extern 'void uiCheckboxSetText(uiCheckbox *c, const char *text)'
144
+ try_extern 'void uiCheckboxOnToggled(uiCheckbox *c, void (*f)(uiCheckbox *sender, void *senderData), void *data)'
145
+ try_extern 'int uiCheckboxChecked(uiCheckbox *c)'
146
+ try_extern 'void uiCheckboxSetChecked(uiCheckbox *c, int checked)'
147
+ try_extern 'uiCheckbox *uiNewCheckbox(const char *text)'
148
+
149
+ # uiEntry
150
+
151
+ try_extern 'char *uiEntryText(uiEntry *e)'
152
+ try_extern 'void uiEntrySetText(uiEntry *e, const char *text)'
153
+ try_extern 'void uiEntryOnChanged(uiEntry *e, void (*f)(uiEntry *sender, void *senderData), void *data)'
154
+ try_extern 'int uiEntryReadOnly(uiEntry *e)'
155
+ try_extern 'void uiEntrySetReadOnly(uiEntry *e, int readonly)'
156
+ try_extern 'uiEntry *uiNewEntry(void)'
157
+ try_extern 'uiEntry *uiNewPasswordEntry(void)'
158
+ try_extern 'uiEntry *uiNewSearchEntry(void)'
159
+
160
+ # uiLabel
161
+
162
+ try_extern 'char *uiLabelText(uiLabel *l)'
163
+ try_extern 'void uiLabelSetText(uiLabel *l, const char *text)'
164
+ try_extern 'uiLabel *uiNewLabel(const char *text)'
165
+
166
+ # uiTab
167
+
168
+ try_extern 'void uiTabAppend(uiTab *t, const char *name, uiControl *c)'
169
+ try_extern 'void uiTabInsertAt(uiTab *t, const char *name, int index, uiControl *c)'
170
+ try_extern 'void uiTabDelete(uiTab *t, int index)'
171
+ try_extern 'int uiTabNumPages(uiTab *t)'
172
+ try_extern 'int uiTabMargined(uiTab *t, int index)'
173
+ try_extern 'void uiTabSetMargined(uiTab *t, int index, int margined)'
174
+ try_extern 'uiTab *uiNewTab(void)'
175
+
176
+ # uiGroup
177
+
178
+ try_extern 'char *uiGroupTitle(uiGroup *g)'
179
+ try_extern 'void uiGroupSetTitle(uiGroup *g, const char *title)'
180
+ try_extern 'void uiGroupSetChild(uiGroup *g, uiControl *c)'
181
+ try_extern 'int uiGroupMargined(uiGroup *g)'
182
+ try_extern 'void uiGroupSetMargined(uiGroup *g, int margined)'
183
+ try_extern 'uiGroup *uiNewGroup(const char *title)'
184
+
185
+ # uiSpinbox
186
+
187
+ try_extern 'int uiSpinboxValue(uiSpinbox *s)'
188
+ try_extern 'void uiSpinboxSetValue(uiSpinbox *s, int value)'
189
+ try_extern 'void uiSpinboxOnChanged(uiSpinbox *s, void (*f)(uiSpinbox *sender, void *senderData), void *data)'
190
+ try_extern 'uiSpinbox *uiNewSpinbox(int min, int max)'
191
+
192
+ # uiSlider
193
+
194
+ try_extern 'int uiSliderValue(uiSlider *s)'
195
+ try_extern 'void uiSliderSetValue(uiSlider *s, int value)'
196
+ try_extern 'int uiSliderHasToolTip(uiSlider *s)'
197
+ try_extern 'void uiSliderSetHasToolTip(uiSlider *s, int hasToolTip)'
198
+ try_extern 'void uiSliderOnChanged(uiSlider *s, void (*f)(uiSlider *sender, void *senderData), void *data)'
199
+ try_extern 'void uiSliderOnReleased(uiSlider *s, void (*f)(uiSlider *sender, void *senderData), void *data)'
200
+ try_extern 'void uiSliderSetRange(uiSlider *s, int min, int max)'
201
+ try_extern 'uiSlider *uiNewSlider(int min, int max)'
202
+
203
+ # uiProgressBar
204
+
205
+ try_extern 'int uiProgressBarValue(uiProgressBar *p)'
206
+ try_extern 'void uiProgressBarSetValue(uiProgressBar *p, int n)'
207
+ try_extern 'uiProgressBar *uiNewProgressBar(void)'
208
+
209
+ # uiSeparator
210
+
211
+ try_extern 'uiSeparator *uiNewHorizontalSeparator(void)'
212
+ try_extern 'uiSeparator *uiNewVerticalSeparator(void)'
213
+
214
+ # uiCombobox
215
+
216
+ try_extern 'void uiComboboxAppend(uiCombobox *c, const char *text)'
217
+ try_extern 'void uiComboboxInsertAt(uiCombobox *c, int index, const char *text)'
218
+ try_extern 'void uiComboboxDelete(uiCombobox *c, int index)'
219
+ try_extern 'void uiComboboxClear(uiCombobox *c)'
220
+ try_extern 'int uiComboboxNumItems(uiCombobox *c)'
221
+ try_extern 'int uiComboboxSelected(uiCombobox *c)'
222
+ try_extern 'void uiComboboxSetSelected(uiCombobox *c, int index)'
223
+ try_extern 'void uiComboboxOnSelected(uiCombobox *c, void (*f)(uiCombobox *sender, void *senderData), void *data)'
224
+ try_extern 'uiCombobox *uiNewCombobox(void)'
225
+
226
+ # uiEditableCombobox
227
+
228
+ try_extern 'void uiEditableComboboxAppend(uiEditableCombobox *c, const char *text)'
229
+ try_extern 'char *uiEditableComboboxText(uiEditableCombobox *c)'
230
+ try_extern 'void uiEditableComboboxSetText(uiEditableCombobox *c, const char *text)'
231
+ try_extern 'void uiEditableComboboxOnChanged(uiEditableCombobox *c, void (*f)(uiEditableCombobox *sender, void *senderData), void *data)'
232
+ try_extern 'uiEditableCombobox *uiNewEditableCombobox(void)'
233
+
234
+ # uiRadioButtons
235
+
236
+ try_extern 'void uiRadioButtonsAppend(uiRadioButtons *r, const char *text)'
237
+ try_extern 'int uiRadioButtonsSelected(uiRadioButtons *r)'
238
+ try_extern 'void uiRadioButtonsSetSelected(uiRadioButtons *r, int index)'
239
+ try_extern 'void uiRadioButtonsOnSelected(uiRadioButtons *r, void (*f)(uiRadioButtons *sender, void *senderData), void *data)'
240
+ try_extern 'uiRadioButtons *uiNewRadioButtons(void)'
241
+
242
+ # uiDateTimePicker
243
+
244
+ # time.h
245
+ TM = if Fiddle::WINDOWS
246
+ struct [
247
+ 'int tm_sec',
248
+ 'int tm_min',
249
+ 'int tm_hour',
250
+ 'int tm_mday',
251
+ 'int tm_mon',
252
+ 'int tm_year',
253
+ 'int tm_wday',
254
+ 'int tm_yday',
255
+ 'int tm_isdst'
256
+ ]
257
+ else # The GNU C Library (glibc)
258
+ struct [
259
+ 'int tm_sec',
260
+ 'int tm_min',
261
+ 'int tm_hour',
262
+ 'int tm_mday',
263
+ 'int tm_mon',
264
+ 'int tm_year',
265
+ 'int tm_wday',
266
+ 'int tm_yday',
267
+ 'int tm_isdst',
268
+ 'long tm_gmtoff',
269
+ 'const char *tm_zone'
270
+ ]
271
+ end
272
+
273
+ try_extern 'void uiDateTimePickerTime(uiDateTimePicker *d, struct tm *time)'
274
+ try_extern 'void uiDateTimePickerSetTime(uiDateTimePicker *d, const struct tm *time)'
275
+ try_extern 'void uiDateTimePickerOnChanged(uiDateTimePicker *d, void (*f)(uiDateTimePicker *sender, void *senderData), void *data)'
276
+ try_extern 'uiDateTimePicker *uiNewDateTimePicker(void)'
277
+ try_extern 'uiDateTimePicker *uiNewDatePicker(void)'
278
+ try_extern 'uiDateTimePicker *uiNewTimePicker(void)'
279
+
280
+ # uiMultilineEntry
281
+
282
+ try_extern 'char *uiMultilineEntryText(uiMultilineEntry *e)'
283
+ try_extern 'void uiMultilineEntrySetText(uiMultilineEntry *e, const char *text)'
284
+ try_extern 'void uiMultilineEntryAppend(uiMultilineEntry *e, const char *text)'
285
+ try_extern 'void uiMultilineEntryOnChanged(uiMultilineEntry *e, void (*f)(uiMultilineEntry *sender, void *senderData), void *data)'
286
+ try_extern 'int uiMultilineEntryReadOnly(uiMultilineEntry *e)'
287
+ try_extern 'void uiMultilineEntrySetReadOnly(uiMultilineEntry *e, int readonly)'
288
+ try_extern 'uiMultilineEntry *uiNewMultilineEntry(void)'
289
+ try_extern 'uiMultilineEntry *uiNewNonWrappingMultilineEntry(void)'
290
+
291
+ # uiMenuItem
292
+
293
+ try_extern 'void uiMenuItemEnable(uiMenuItem *m)'
294
+ try_extern 'void uiMenuItemDisable(uiMenuItem *m)'
295
+ try_extern 'void uiMenuItemOnClicked(uiMenuItem *m, void (*f)(uiMenuItem *sender, uiWindow *window, void *senderData), void *data)'
296
+ try_extern 'int uiMenuItemChecked(uiMenuItem *m)'
297
+ try_extern 'void uiMenuItemSetChecked(uiMenuItem *m, int checked)'
298
+
299
+ # uiMenu
300
+
301
+ try_extern 'uiMenuItem *uiMenuAppendItem(uiMenu *m, const char *name)'
302
+ try_extern 'uiMenuItem *uiMenuAppendCheckItem(uiMenu *m, const char *name)'
303
+ try_extern 'uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)'
304
+ try_extern 'uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)'
305
+ try_extern 'uiMenuItem *uiMenuAppendAboutItem(uiMenu *m)'
306
+ try_extern 'void uiMenuAppendSeparator(uiMenu *m)'
307
+ try_extern 'uiMenu *uiNewMenu(const char *name)'
308
+
309
+ try_extern 'char *uiOpenFile(uiWindow *parent)'
310
+ try_extern 'char *uiOpenFolder(uiWindow *parent)'
311
+ try_extern 'char *uiSaveFile(uiWindow *parent)'
312
+ try_extern 'void uiMsgBox(uiWindow *parent, const char *title, const char *description)'
313
+ try_extern 'void uiMsgBoxError(uiWindow *parent, const char *title, const char *description)'
314
+
315
+ # uiArea
316
+
317
+ AreaHandler = struct [
318
+ 'void (*Draw)(uiAreaHandler *, uiArea *, uiAreaDrawParams *)',
319
+ 'void (*MouseEvent)(uiAreaHandler *, uiArea *, uiAreaMouseEvent *)',
320
+ 'void (*MouseCrossed)(uiAreaHandler *, uiArea *, int left)',
321
+ 'void (*DragBroken)(uiAreaHandler *, uiArea *)',
322
+ 'int (*KeyEvent)(uiAreaHandler *, uiArea *, uiAreaKeyEvent *)'
323
+ ]
324
+
325
+ typealias 'uiWindowResizeEdge', 'int'
326
+
327
+ try_extern 'void uiAreaSetSize(uiArea *a, int width, int height)'
328
+ try_extern 'void uiAreaQueueRedrawAll(uiArea *a)'
329
+ try_extern 'void uiAreaScrollTo(uiArea *a, double x, double y, double width, double height)'
330
+ try_extern 'void uiAreaBeginUserWindowMove(uiArea *a)'
331
+ try_extern 'void uiAreaBeginUserWindowResize(uiArea *a, uiWindowResizeEdge edge)'
332
+ try_extern 'uiArea *uiNewArea(uiAreaHandler *ah)'
333
+ try_extern 'uiArea *uiNewScrollingArea(uiAreaHandler *ah, int width, int height)'
334
+
335
+ AreaDrawParams = struct [
336
+ 'uiDrawContext *Context',
337
+ 'double AreaWidth',
338
+ 'double AreaHeight',
339
+ 'double ClipX',
340
+ 'double ClipY',
341
+ 'double ClipWidth',
342
+ 'double ClipHeight'
343
+ ]
344
+ typealias 'uiDrawBrushType', 'int'
345
+ typealias 'uiDrawLineCap', 'int'
346
+ typealias 'uiDrawLineJoin', 'int'
347
+ typealias 'uiDrawFillMode', 'int'
348
+
349
+ DrawMatrix = struct [
350
+ 'double M11',
351
+ 'double M12',
352
+ 'double M21',
353
+ 'double M22',
354
+ 'double M31',
355
+ 'double M32'
356
+ ]
357
+
358
+ DrawBrush = struct [
359
+ 'uiDrawBrushType Type',
360
+ 'double R',
361
+ 'double G',
362
+ 'double B',
363
+ 'double A',
364
+ 'double X0',
365
+ 'double Y0',
366
+ 'double X1',
367
+ 'double Y1',
368
+ 'double OuterRadius',
369
+ 'uiDrawBrushGradientStop *Stops',
370
+ 'size_t NumStops'
371
+ ]
372
+
373
+ DrawBrushGradientStop = struct [
374
+ 'double Pos',
375
+ 'double R',
376
+ 'double G',
377
+ 'double B',
378
+ 'double A'
379
+ ]
380
+
381
+ DrawStrokeParams = struct [
382
+ 'uiDrawLineCap Cap',
383
+ 'uiDrawLineJoin Join',
384
+ 'double Thickness',
385
+ 'double MiterLimit',
386
+ 'double *Dashes',
387
+ 'size_t NumDashes',
388
+ 'double DashPhase'
389
+ ]
390
+
391
+ # uiDrawPath
392
+ try_extern 'uiDrawPath *uiDrawNewPath(uiDrawFillMode fillMode)'
393
+ try_extern 'void uiDrawFreePath(uiDrawPath *p)'
394
+ try_extern 'void uiDrawPathNewFigure(uiDrawPath *p, double x, double y)'
395
+ try_extern 'void uiDrawPathNewFigureWithArc(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative)'
396
+ try_extern 'void uiDrawPathLineTo(uiDrawPath *p, double x, double y)'
397
+ try_extern 'void uiDrawPathArcTo(uiDrawPath *p, double xCenter, double yCenter, double radius, double startAngle, double sweep, int negative)'
398
+ try_extern 'void uiDrawPathBezierTo(uiDrawPath *p, double c1x, double c1y, double c2x, double c2y, double endX, double endY)'
399
+ try_extern 'void uiDrawPathCloseFigure(uiDrawPath *p)'
400
+ try_extern 'void uiDrawPathAddRectangle(uiDrawPath *p, double x, double y, double width, double height)'
401
+ try_extern 'int uiDrawPathEnded(uiDrawPath *p)'
402
+ try_extern 'void uiDrawPathEnd(uiDrawPath *p)'
403
+ try_extern 'void uiDrawStroke(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b, uiDrawStrokeParams *p)'
404
+ try_extern 'void uiDrawFill(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b)'
405
+
406
+ # uiDrawMatrix
407
+ try_extern 'void uiDrawMatrixSetIdentity(uiDrawMatrix *m)'
408
+ try_extern 'void uiDrawMatrixTranslate(uiDrawMatrix *m, double x, double y)'
409
+ try_extern 'void uiDrawMatrixScale(uiDrawMatrix *m, double xCenter, double yCenter, double x, double y)'
410
+ try_extern 'void uiDrawMatrixRotate(uiDrawMatrix *m, double x, double y, double amount)'
411
+ try_extern 'void uiDrawMatrixSkew(uiDrawMatrix *m, double x, double y, double xamount, double yamount)'
412
+ try_extern 'void uiDrawMatrixMultiply(uiDrawMatrix *dest, uiDrawMatrix *src)'
413
+ try_extern 'int uiDrawMatrixInvertible(uiDrawMatrix *m)'
414
+ try_extern 'int uiDrawMatrixInvert(uiDrawMatrix *m)'
415
+ try_extern 'void uiDrawMatrixTransformPoint(uiDrawMatrix *m, double *x, double *y)'
416
+ try_extern 'void uiDrawMatrixTransformSize(uiDrawMatrix *m, double *x, double *y)'
417
+
418
+ try_extern 'void uiDrawTransform(uiDrawContext *c, uiDrawMatrix *m)'
419
+ try_extern 'void uiDrawClip(uiDrawContext *c, uiDrawPath *path)'
420
+ try_extern 'void uiDrawSave(uiDrawContext *c)'
421
+ try_extern 'void uiDrawRestore(uiDrawContext *c)'
422
+
423
+ # uiAttribute
424
+ try_extern 'void uiFreeAttribute(uiAttribute *a)'
425
+
426
+ typealias 'uiAttributeType', 'int'
427
+
428
+ try_extern 'uiAttributeType uiAttributeGetType(const uiAttribute *a)'
429
+ try_extern 'uiAttribute *uiNewFamilyAttribute(const char *family)'
430
+ try_extern 'const char *uiAttributeFamily(const uiAttribute *a)'
431
+ try_extern 'uiAttribute *uiNewSizeAttribute(double size)'
432
+ try_extern 'double uiAttributeSize(const uiAttribute *a)'
433
+
434
+ typealias 'uiTextWeight', 'int'
435
+
436
+ try_extern 'uiAttribute *uiNewWeightAttribute(uiTextWeight weight)'
437
+ try_extern 'uiTextWeight uiAttributeWeight(const uiAttribute *a)'
438
+
439
+ typealias 'uiTextItalic', 'int'
440
+
441
+ try_extern 'uiAttribute *uiNewItalicAttribute(uiTextItalic italic)'
442
+ try_extern 'uiTextItalic uiAttributeItalic(const uiAttribute *a)'
443
+
444
+ typealias 'uiTextStretch', 'int'
445
+
446
+ try_extern 'uiAttribute *uiNewStretchAttribute(uiTextStretch stretch)'
447
+ try_extern 'uiTextStretch uiAttributeStretch(const uiAttribute *a)'
448
+ try_extern 'uiAttribute *uiNewColorAttribute(double r, double g, double b, double a)'
449
+ try_extern 'void uiAttributeColor(const uiAttribute *a, double *r, double *g, double *b, double *alpha)'
450
+ try_extern 'uiAttribute *uiNewBackgroundAttribute(double r, double g, double b, double a)'
451
+
452
+ typealias 'uiUnderline', 'int'
453
+
454
+ try_extern 'uiAttribute *uiNewUnderlineAttribute(uiUnderline u)'
455
+ try_extern 'uiUnderline uiAttributeUnderline(const uiAttribute *a)'
456
+
457
+ typealias 'uiUnderlineColor', 'int'
458
+
459
+ try_extern 'uiAttribute *uiNewUnderlineColorAttribute(uiUnderlineColor u, double r, double g, double b, double a)'
460
+ try_extern 'void uiAttributeUnderlineColor(const uiAttribute *a, uiUnderlineColor *u, double *r, double *g, double *b, double *alpha)'
461
+
462
+ # uiOpenTypeFeatures
463
+
464
+ typealias 'uiOpenTypeFeaturesForEachFunc', 'void*'
465
+
466
+ try_extern 'uiOpenTypeFeatures *uiNewOpenTypeFeatures(void)'
467
+ try_extern 'void uiFreeOpenTypeFeatures(uiOpenTypeFeatures *otf)'
468
+ try_extern 'uiOpenTypeFeatures *uiOpenTypeFeaturesClone(const uiOpenTypeFeatures *otf)'
469
+ try_extern 'void uiOpenTypeFeaturesAdd(uiOpenTypeFeatures *otf, char a, char b, char c, char d, uint32_t value)'
470
+ try_extern 'void uiOpenTypeFeaturesRemove(uiOpenTypeFeatures *otf, char a, char b, char c, char d)'
471
+ try_extern 'int uiOpenTypeFeaturesGet(const uiOpenTypeFeatures *otf, char a, char b, char c, char d, uint32_t *value)'
472
+ try_extern 'void uiOpenTypeFeaturesForEach(const uiOpenTypeFeatures *otf, uiOpenTypeFeaturesForEachFunc f, void *data)'
473
+ try_extern 'uiAttribute *uiNewFeaturesAttribute(const uiOpenTypeFeatures *otf)'
474
+ try_extern 'const uiOpenTypeFeatures *uiAttributeFeatures(const uiAttribute *a)'
475
+
476
+ # uiAttributedString
477
+
478
+ typealias 'uiAttributedStringForEachAttributeFunc', 'void*'
479
+
480
+ try_extern 'uiAttributedString *uiNewAttributedString(const char *initialString)'
481
+ try_extern 'void uiFreeAttributedString(uiAttributedString *s)'
482
+ try_extern 'const char *uiAttributedStringString(const uiAttributedString *s)'
483
+ try_extern 'size_t uiAttributedStringLen(const uiAttributedString *s)'
484
+ try_extern 'void uiAttributedStringAppendUnattributed(uiAttributedString *s, const char *str)'
485
+ try_extern 'void uiAttributedStringInsertAtUnattributed(uiAttributedString *s, const char *str, size_t at)'
486
+ try_extern 'void uiAttributedStringDelete(uiAttributedString *s, size_t start, size_t end)'
487
+ try_extern 'void uiAttributedStringSetAttribute(uiAttributedString *s, uiAttribute *a, size_t start, size_t end)'
488
+ try_extern 'void uiAttributedStringForEachAttribute(const uiAttributedString *s, uiAttributedStringForEachAttributeFunc f, void *data)'
489
+ try_extern 'size_t uiAttributedStringNumGraphemes(uiAttributedString *s)'
490
+ try_extern 'size_t uiAttributedStringByteIndexToGrapheme(uiAttributedString *s, size_t pos)'
491
+ try_extern 'size_t uiAttributedStringGraphemeToByteIndex(uiAttributedString *s, size_t pos)'
492
+
493
+ # uiFont
494
+
495
+ FontDescriptor = struct [
496
+ 'char *Family',
497
+ 'double Size',
498
+ 'uiTextWeight Weight',
499
+ 'uiTextItalic Italic',
500
+ 'uiTextStretch Stretch'
501
+ ]
502
+
503
+ try_extern 'void uiLoadControlFont(uiFontDescriptor *f)'
504
+ try_extern 'void uiFreeFontDescriptor(uiFontDescriptor *desc)'
505
+
506
+ typealias 'uiDrawTextAlign', 'int'
507
+
508
+ DrawTextLayoutParams = struct [
509
+ 'uiAttributedString *String',
510
+ 'uiFontDescriptor *DefaultFont',
511
+ 'double Width',
512
+ 'uiDrawTextAlign Align'
513
+ ]
514
+
515
+ try_extern 'uiDrawTextLayout *uiDrawNewTextLayout(uiDrawTextLayoutParams *params)'
516
+ try_extern 'void uiDrawFreeTextLayout(uiDrawTextLayout *tl)'
517
+ try_extern 'void uiDrawText(uiDrawContext *c, uiDrawTextLayout *tl, double x, double y)'
518
+ try_extern 'void uiDrawTextLayoutExtents(uiDrawTextLayout *tl, double *width, double *height)'
519
+
520
+ # uiFontButton
521
+
522
+ try_extern 'void uiFontButtonFont(uiFontButton *b, uiFontDescriptor *desc)'
523
+ try_extern 'void uiFontButtonOnChanged(uiFontButton *b, void (*f)(uiFontButton *sender, void *senderData), void *data)'
524
+ try_extern 'uiFontButton *uiNewFontButton(void)'
525
+ try_extern 'void uiFreeFontButtonFont(uiFontDescriptor *desc)'
526
+
527
+ typealias 'uiModifiers', 'int'
528
+
529
+ AreaMouseEvent = struct [
530
+ 'double X',
531
+ 'double Y',
532
+ 'double AreaWidth',
533
+ 'double AreaHeight',
534
+ 'int Down',
535
+ 'int Up',
536
+ 'int Count',
537
+ 'uiModifiers Modifiers',
538
+ 'uint64_t Held1To64'
539
+ ]
540
+
541
+ typealias 'uiExtKey', 'int'
542
+
543
+ AreaKeyEvent = struct [
544
+ 'char Key',
545
+ 'uiExtKey ExtKey',
546
+ 'uiModifiers Modifier',
547
+ 'uiModifiers Modifiers',
548
+ 'int Up'
549
+ ]
550
+
551
+ # uiColorButton
552
+
553
+ try_extern 'void uiColorButtonColor(uiColorButton *b, double *r, double *g, double *bl, double *a)'
554
+ try_extern 'void uiColorButtonSetColor(uiColorButton *b, double r, double g, double bl, double a)'
555
+ try_extern 'void uiColorButtonOnChanged(uiColorButton *b, void (*f)(uiColorButton *sender, void *senderData), void *data)'
556
+ try_extern 'uiColorButton *uiNewColorButton(void)'
557
+
558
+ # uiForm
559
+
560
+ try_extern 'void uiFormAppend(uiForm *f, const char *label, uiControl *c, int stretchy)'
561
+ try_extern 'int uiFormNumChildren(uiForm *f)'
562
+ try_extern 'void uiFormDelete(uiForm *f, int index)'
563
+ try_extern 'int uiFormPadded(uiForm *f)'
564
+ try_extern 'void uiFormSetPadded(uiForm *f, int padded)'
565
+ try_extern 'uiForm *uiNewForm(void)'
566
+
567
+ typealias 'uiAlign', 'int'
568
+
569
+ typealias 'uiAt', 'int'
570
+
571
+ # uiGrid
572
+
573
+ try_extern 'void uiGridAppend(uiGrid *g, uiControl *c, int left, int top, int xspan, int yspan, int hexpand, uiAlign halign, int vexpand, uiAlign valign)'
574
+ try_extern 'void uiGridInsertAt(uiGrid *g, uiControl *c, uiControl *existing, uiAt at, int xspan, int yspan, int hexpand, uiAlign halign, int vexpand, uiAlign valign)'
575
+ try_extern 'int uiGridPadded(uiGrid *g)'
576
+ try_extern 'void uiGridSetPadded(uiGrid *g, int padded)'
577
+ try_extern 'uiGrid *uiNewGrid(void)'
578
+
579
+ # uiImage
580
+
581
+ try_extern 'uiImage *uiNewImage(double width, double height)'
582
+ try_extern 'void uiFreeImage(uiImage *i)'
583
+ try_extern 'void uiImageAppend(uiImage *i, void *pixels, int pixelWidth, int pixelHeight, int byteStride)'
584
+
585
+ # uiTable
586
+ try_extern 'void uiFreeTableValue(uiTableValue *v)'
587
+
588
+ typealias 'uiTableValueType', 'int'
589
+
590
+ try_extern 'uiTableValueType uiTableValueGetType(const uiTableValue *v)'
591
+ try_extern 'uiTableValue *uiNewTableValueString(const char *str)'
592
+ try_extern 'const char *uiTableValueString(const uiTableValue *v)'
593
+ try_extern 'uiTableValue *uiNewTableValueImage(uiImage *img)'
594
+ try_extern 'uiImage *uiTableValueImage(const uiTableValue *v)'
595
+ try_extern 'uiTableValue *uiNewTableValueInt(int i)'
596
+ try_extern 'int uiTableValueInt(const uiTableValue *v)'
597
+ try_extern 'uiTableValue *uiNewTableValueColor(double r, double g, double b, double a)'
598
+ try_extern 'void uiTableValueColor(const uiTableValue *v, double *r, double *g, double *b, double *a)'
599
+
600
+ TableModelHandler = struct [
601
+ 'int (*NumColumns)(uiTableModelHandler *, uiTableModel *)',
602
+ 'uiTableValueType (*ColumnType)(uiTableModelHandler *, uiTableModel *, int)',
603
+ 'int (*NumRows)(uiTableModelHandler *, uiTableModel *)',
604
+ 'uiTableValue *(*CellValue)(uiTableModelHandler *mh, uiTableModel *m, int row, int column)',
605
+ 'void (*SetCellValue)(uiTableModelHandler *, uiTableModel *, int, int, const uiTableValue *)'
606
+ ]
607
+
608
+ try_extern 'uiTableModel *uiNewTableModel(uiTableModelHandler *mh)'
609
+ try_extern 'void uiFreeTableModel(uiTableModel *m)'
610
+ try_extern 'void uiTableModelRowInserted(uiTableModel *m, int newIndex)'
611
+ try_extern 'void uiTableModelRowChanged(uiTableModel *m, int index)'
612
+ try_extern 'void uiTableModelRowDeleted(uiTableModel *m, int oldIndex)'
613
+
614
+ TableTextColumnOptionalParams = struct [
615
+ 'int ColorModelColumn'
616
+ ]
617
+
618
+ TableParams = struct [
619
+ 'uiTableModel *Model',
620
+ 'int RowBackgroundColorModelColumn'
621
+ ]
622
+
623
+ try_extern 'void uiTableAppendTextColumn(uiTable *t, const char *name, int textModelColumn, int textEditableModelColumn, uiTableTextColumnOptionalParams *textParams)'
624
+ try_extern 'void uiTableAppendImageColumn(uiTable *t, const char *name, int imageModelColumn)'
625
+ try_extern 'void uiTableAppendImageTextColumn(uiTable *t, const char *name, int imageModelColumn, int textModelColumn, int textEditableModelColumn, uiTableTextColumnOptionalParams *textParams)'
626
+ try_extern 'void uiTableAppendCheckboxColumn(uiTable *t, const char *name, int checkboxModelColumn, int checkboxEditableModelColumn)'
627
+ try_extern 'void uiTableAppendCheckboxTextColumn(uiTable *t, const char *name, int checkboxModelColumn, int checkboxEditableModelColumn, int textModelColumn, int textEditableModelColumn, uiTableTextColumnOptionalParams *textParams)'
628
+ try_extern 'void uiTableAppendProgressBarColumn(uiTable *t, const char *name, int progressModelColumn)'
629
+ try_extern 'void uiTableAppendButtonColumn(uiTable *t, const char *name, int buttonModelColumn, int buttonClickableModelColumn)'
630
+ try_extern 'int uiTableHeaderVisible(uiTable *t)'
631
+ try_extern 'void uiTableHeaderSetVisible(uiTable *t, int visible)'
632
+ try_extern 'uiTable *uiNewTable(uiTableParams *params)'
633
+ try_extern 'void uiTableOnRowClicked(uiTable *t, void (*f)(uiTable *t, int row, void *data), void *data)'
634
+ try_extern 'void uiTableOnRowDoubleClicked(uiTable *t, void (*f)(uiTable *t, int row, void *data), void *data)'
635
+
636
+ typealias 'uiSortIndicator', 'int'
637
+
638
+ try_extern 'void uiTableHeaderSetSortIndicator(uiTable *t, int column, uiSortIndicator indicator)'
639
+ try_extern 'uiSortIndicator uiTableHeaderSortIndicator(uiTable *t, int column)'
640
+ try_extern 'void uiTableHeaderOnClicked(uiTable *t, void (*f)(uiTable *sender, int column, void *senderData), void *data)'
641
+ try_extern 'int uiTableColumnWidth(uiTable *t, int column)'
642
+ try_extern 'void uiTableColumnSetWidth(uiTable *t, int column, int width)'
643
+
644
+ typealias 'uiTableSelectionMode', 'int'
645
+
646
+ try_extern 'uiTableSelectionMode uiTableGetSelectionMode(uiTable *t)'
647
+ try_extern 'void uiTableSetSelectionMode(uiTable *t, uiTableSelectionMode mode)'
648
+ try_extern 'void uiTableOnSelectionChanged(uiTable *t, void (*f)(uiTable *t, void *data), void *data)'
649
+ try_extern 'uiTableSelection* uiTableGetSelection(uiTable *t)'
650
+ try_extern 'void uiTableSetSelection(uiTable *t, uiTableSelection *sel)'
651
+ try_extern 'void uiFreeTableSelection(uiTableSelection* s)'
652
+
653
+ TableSelection = struct [
654
+ 'int NumRows',
655
+ 'int *Rows'
656
+ ]
657
+ end
658
+ end