odin-libui

Odin bindings to libui
Log | Files | Refs | Submodules | README | LICENSE

libui.odin (25930B)


      1 // GENERATED CODE
      2 package libui
      3 
      4 import libc "core:c"
      5 
      6 when ODIN_OS == .Linux {
      7 	@(extra_linker_flags="-lgtk-3 -lgdk-3 -lz -lharfbuzz -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo -lcairo-gobject -lgdk_pixbuf-2.0 -lgio-2.0 -lglib-2.0 -lgobject-2.0")
      8 	foreign import lib "system:ui"
      9 } else {
     10 	foreign import lib "system:ui"
     11 }
     12 
     13 // Unresolved symbols; typically opaque widget pointers
     14 OpenTypeFeatures :: rawptr
     15 Menu :: rawptr
     16 Separator :: rawptr
     17 RadioButtons :: rawptr
     18 AttributedString :: rawptr
     19 DrawContext :: rawptr
     20 Grid :: rawptr
     21 Button :: rawptr
     22 Window :: rawptr
     23 TableValue :: rawptr
     24 ColorButton :: rawptr
     25 Combobox :: rawptr
     26 DrawTextLayout :: rawptr
     27 Area :: rawptr
     28 FontButton :: rawptr
     29 DateTimePicker :: rawptr
     30 Attribute :: rawptr
     31 DrawPath :: rawptr
     32 Table :: rawptr
     33 Slider :: rawptr
     34 Box :: rawptr
     35 ProgressBar :: rawptr
     36 EditableCombobox :: rawptr
     37 Checkbox :: rawptr
     38 Entry :: rawptr
     39 MenuItem :: rawptr
     40 Spinbox :: rawptr
     41 Group :: rawptr
     42 Form :: rawptr
     43 MultilineEntry :: rawptr
     44 TableModel :: rawptr
     45 Image :: rawptr
     46 Label :: rawptr
     47 Tab :: rawptr
     48 
     49 // Hardcoded #defines 
     50 DrawDefaultMiterLimit :: 10.0
     51 
     52 // Enum definitions
     53 ForEach :: enum {
     54 	ForEachContinue,
     55 	ForEachStop,
     56 }
     57 
     58 WindowResizeEdge :: enum {
     59 	WindowResizeEdgeLeft,
     60 	WindowResizeEdgeTop,
     61 	WindowResizeEdgeRight,
     62 	WindowResizeEdgeBottom,
     63 	WindowResizeEdgeTopLeft,
     64 	WindowResizeEdgeTopRight,
     65 	WindowResizeEdgeBottomLeft,
     66 	WindowResizeEdgeBottomRight,
     67 }
     68 
     69 DrawBrushType :: enum {
     70 	DrawBrushTypeSolid,
     71 	DrawBrushTypeLinearGradient,
     72 	DrawBrushTypeRadialGradient,
     73 	DrawBrushTypeImage,
     74 }
     75 
     76 DrawLineCap :: enum {
     77 	DrawLineCapFlat,
     78 	DrawLineCapRound,
     79 	DrawLineCapSquare,
     80 }
     81 
     82 DrawLineJoin :: enum {
     83 	DrawLineJoinMiter,
     84 	DrawLineJoinRound,
     85 	DrawLineJoinBevel,
     86 }
     87 
     88 DrawFillMode :: enum {
     89 	DrawFillModeWinding,
     90 	DrawFillModeAlternate,
     91 }
     92 
     93 AttributeType :: enum {
     94 	AttributeTypeFamily,
     95 	AttributeTypeSize,
     96 	AttributeTypeWeight,
     97 	AttributeTypeItalic,
     98 	AttributeTypeStretch,
     99 	AttributeTypeColor,
    100 	AttributeTypeBackground,
    101 	AttributeTypeUnderline,
    102 	AttributeTypeUnderlineColor,
    103 	AttributeTypeFeatures,
    104 }
    105 
    106 TextWeight :: enum {
    107 	TextWeightMinimum = 0,
    108 	TextWeightThin = 100,
    109 	TextWeightUltraLight = 200,
    110 	TextWeightLight = 300,
    111 	TextWeightBook = 350,
    112 	TextWeightNormal = 400,
    113 	TextWeightMedium = 500,
    114 	TextWeightSemiBold = 600,
    115 	TextWeightBold = 700,
    116 	TextWeightUltraBold = 800,
    117 	TextWeightHeavy = 900,
    118 	TextWeightUltraHeavy = 950,
    119 	TextWeightMaximum = 1000,
    120 }
    121 
    122 TextItalic :: enum {
    123 	TextItalicNormal,
    124 	TextItalicOblique,
    125 	TextItalicItalic,
    126 }
    127 
    128 TextStretch :: enum {
    129 	TextStretchUltraCondensed,
    130 	TextStretchExtraCondensed,
    131 	TextStretchCondensed,
    132 	TextStretchSemiCondensed,
    133 	TextStretchNormal,
    134 	TextStretchSemiExpanded,
    135 	TextStretchExpanded,
    136 	TextStretchExtraExpanded,
    137 	TextStretchUltraExpanded,
    138 }
    139 
    140 Underline :: enum {
    141 	UnderlineNone,
    142 	UnderlineSingle,
    143 	UnderlineDouble,
    144 	UnderlineSuggestion,
    145 }
    146 
    147 UnderlineColor :: enum {
    148 	UnderlineColorCustom,
    149 	UnderlineColorSpelling,
    150 	UnderlineColorGrammar,
    151 	UnderlineColorAuxiliary,
    152 }
    153 
    154 DrawTextAlign :: enum {
    155 	DrawTextAlignLeft,
    156 	DrawTextAlignCenter,
    157 	DrawTextAlignRight,
    158 }
    159 
    160 Modifiers :: enum {
    161 	ModifierCtrl = 1,
    162 	ModifierAlt = 2,
    163 	ModifierShift = 4,
    164 	ModifierSuper = 8,
    165 }
    166 
    167 ExtKey :: enum {
    168 	ExtKeyEscape = 1,
    169 	ExtKeyInsert,
    170 	ExtKeyDelete,
    171 	ExtKeyHome,
    172 	ExtKeyEnd,
    173 	ExtKeyPageUp,
    174 	ExtKeyPageDown,
    175 	ExtKeyUp,
    176 	ExtKeyDown,
    177 	ExtKeyLeft,
    178 	ExtKeyRight,
    179 	ExtKeyF1,
    180 	ExtKeyF2,
    181 	ExtKeyF3,
    182 	ExtKeyF4,
    183 	ExtKeyF5,
    184 	ExtKeyF6,
    185 	ExtKeyF7,
    186 	ExtKeyF8,
    187 	ExtKeyF9,
    188 	ExtKeyF10,
    189 	ExtKeyF11,
    190 	ExtKeyF12,
    191 	ExtKeyN0,
    192 	ExtKeyN1,
    193 	ExtKeyN2,
    194 	ExtKeyN3,
    195 	ExtKeyN4,
    196 	ExtKeyN5,
    197 	ExtKeyN6,
    198 	ExtKeyN7,
    199 	ExtKeyN8,
    200 	ExtKeyN9,
    201 	ExtKeyNDot,
    202 	ExtKeyNEnter,
    203 	ExtKeyNAdd,
    204 	ExtKeyNSubtract,
    205 	ExtKeyNMultiply,
    206 	ExtKeyNDivide,
    207 }
    208 
    209 Align :: enum {
    210 	AlignFill,
    211 	AlignStart,
    212 	AlignCenter,
    213 	AlignEnd,
    214 }
    215 
    216 At :: enum {
    217 	AtLeading,
    218 	AtTop,
    219 	AtTrailing,
    220 	AtBottom,
    221 }
    222 
    223 TableValueType :: enum {
    224 	TableValueTypeString,
    225 	TableValueTypeImage,
    226 	TableValueTypeInt,
    227 	TableValueTypeColor,
    228 }
    229 
    230 // Struct definitions
    231 
    232 // ISO C broken-down time structure.
    233 tm :: struct {
    234 	tm_sec: int,
    235 	tm_min: int,
    236 	tm_hour: int,
    237 	tm_mday: int,
    238 	tm_mon: int,
    239 	tm_year: int,
    240 	tm_wday: int,
    241 	tm_yday: int,
    242 	tm_isdst: int,
    243 }
    244 
    245 InitOptions :: struct {
    246 	Size: libc.size_t,
    247 }
    248 
    249 Control :: struct {
    250 	Signature: libc.uint32_t,
    251 	OSSignature: libc.uint32_t,
    252 	TypeSignature: libc.uint32_t,
    253 	Destroy: proc(_: ^Control),
    254 	Handle: proc(_: ^Control) -> libc.uintptr_t,
    255 	Parent: ^proc(_: ^Control) -> Control,
    256 	SetParent: proc(_: ^Control, _: ^Control),
    257 	Toplevel: proc(_: ^Control) -> libc.int,
    258 	Visible: proc(_: ^Control) -> libc.int,
    259 	Show: proc(_: ^Control),
    260 	Hide: proc(_: ^Control),
    261 	Enabled: proc(_: ^Control) -> libc.int,
    262 	Enable: proc(_: ^Control),
    263 	Disable: proc(_: ^Control),
    264 }
    265 
    266 AreaHandler :: struct {
    267 	Draw: proc(_: ^AreaHandler, _: Area, _: ^AreaDrawParams),
    268 	MouseEvent: proc(_: ^AreaHandler, _: Area, _: ^AreaMouseEvent),
    269 	MouseCrossed: proc(_: ^AreaHandler, _: Area, left: libc.int),
    270 	DragBroken: proc(_: ^AreaHandler, _: Area),
    271 	KeyEvent: proc(_: ^AreaHandler, _: Area, _: ^AreaKeyEvent) -> libc.int,
    272 }
    273 
    274 AreaDrawParams :: struct {
    275 	Context: DrawContext,
    276 	AreaWidth: libc.double,
    277 	AreaHeight: libc.double,
    278 	ClipX: libc.double,
    279 	ClipY: libc.double,
    280 	ClipWidth: libc.double,
    281 	ClipHeight: libc.double,
    282 }
    283 
    284 DrawMatrix :: struct {
    285 	M11: libc.double,
    286 	M12: libc.double,
    287 	M21: libc.double,
    288 	M22: libc.double,
    289 	M31: libc.double,
    290 	M32: libc.double,
    291 }
    292 
    293 DrawBrush :: struct {
    294 	Type: DrawBrushType,
    295 	R: libc.double,
    296 	G: libc.double,
    297 	B: libc.double,
    298 	A: libc.double,
    299 	X0: libc.double,
    300 	Y0: libc.double,
    301 	X1: libc.double,
    302 	Y1: libc.double,
    303 	OuterRadius: libc.double,
    304 	Stops: ^DrawBrushGradientStop,
    305 	NumStops: libc.size_t,
    306 }
    307 
    308 DrawBrushGradientStop :: struct {
    309 	Pos: libc.double,
    310 	R: libc.double,
    311 	G: libc.double,
    312 	B: libc.double,
    313 	A: libc.double,
    314 }
    315 
    316 DrawStrokeParams :: struct {
    317 	Cap: DrawLineCap,
    318 	Join: DrawLineJoin,
    319 	Thickness: libc.double,
    320 	MiterLimit: libc.double,
    321 	Dashes: ^libc.double,
    322 	NumDashes: libc.size_t,
    323 	DashPhase: libc.double,
    324 }
    325 
    326 FontDescriptor :: struct {
    327 	Family: cstring,
    328 	Size: libc.double,
    329 	Weight: TextWeight,
    330 	Italic: TextItalic,
    331 	Stretch: TextStretch,
    332 }
    333 
    334 DrawTextLayoutParams :: struct {
    335 	String: AttributedString,
    336 	DefaultFont: ^FontDescriptor,
    337 	Width: libc.double,
    338 	Align: DrawTextAlign,
    339 }
    340 
    341 AreaMouseEvent :: struct {
    342 	X: libc.double,
    343 	Y: libc.double,
    344 	AreaWidth: libc.double,
    345 	AreaHeight: libc.double,
    346 	Down: libc.int,
    347 	Up: libc.int,
    348 	Count: libc.int,
    349 	Modifiers: Modifiers,
    350 	Held1To64: libc.uint64_t,
    351 }
    352 
    353 AreaKeyEvent :: struct {
    354 	Key: byte,
    355 	ExtKey: ExtKey,
    356 	Modifier: Modifiers,
    357 	Modifiers: Modifiers,
    358 	Up: libc.int,
    359 }
    360 
    361 TableModelHandler :: struct {
    362 	NumColumns: proc(_: ^TableModelHandler, _: TableModel) -> libc.int,
    363 	ColumnType: proc(_: ^TableModelHandler, _: TableModel, _: libc.int) -> TableValueType,
    364 	NumRows: proc(_: ^TableModelHandler, _: TableModel) -> libc.int,
    365 	CellValue: ^proc(mh: ^TableModelHandler, m: TableModel, row: libc.int, column: libc.int) -> TableValue,
    366 	SetCellValue: proc(_: ^TableModelHandler, _: TableModel, _: libc.int, _: libc.int, _: TableValue),
    367 }
    368 
    369 TableTextColumnOptionalParams :: struct {
    370 	ColorModelColumn: libc.int,
    371 }
    372 
    373 TableParams :: struct {
    374 	Model: TableModel,
    375 	RowBackgroundColorModelColumn: libc.int,
    376 }
    377 
    378 // Procedure types
    379 OpenTypeFeaturesForEachFunc :: #type proc(otf: OpenTypeFeatures, a: byte, b: byte, c: byte, d: byte, value: libc.uint32_t, data: rawptr) -> ForEach
    380 AttributedStringForEachAttributeFunc :: #type proc(s: AttributedString, a: Attribute, start: libc.size_t, end: libc.size_t, data: rawptr) -> ForEach
    381 
    382 // Procedure definitions
    383 @(default_calling_convention = "stdcall", link_prefix = "ui")
    384 foreign lib {
    385 	Init ::  proc(options: ^InitOptions) -> cstring ---
    386 	Uninit ::  proc() ---
    387 	FreeInitError ::  proc(err: cstring) ---
    388 	Main ::  proc() ---
    389 	MainSteps ::  proc() ---
    390 	MainStep ::  proc(wait: libc.int) -> libc.int ---
    391 	Quit ::  proc() ---
    392 	QueueMain ::  proc(f: proc(data: rawptr), data: rawptr) ---
    393 	Timer ::  proc(milliseconds: libc.int, f: proc(data: rawptr) -> libc.int, data: rawptr) ---
    394 	OnShouldQuit ::  proc(f: proc(data: rawptr) -> libc.int, data: rawptr) ---
    395 	FreeText ::  proc(text: cstring) ---
    396 	ControlDestroy ::  proc(_: ^Control) ---
    397 	ControlHandle ::  proc(_: ^Control) -> libc.uintptr_t ---
    398 	ControlParent ::  proc(_: ^Control) -> ^Control ---
    399 	ControlSetParent ::  proc(_: ^Control, _: ^Control) ---
    400 	ControlToplevel ::  proc(_: ^Control) -> libc.int ---
    401 	ControlVisible ::  proc(_: ^Control) -> libc.int ---
    402 	ControlShow ::  proc(_: ^Control) ---
    403 	ControlHide ::  proc(_: ^Control) ---
    404 	ControlEnabled ::  proc(_: ^Control) -> libc.int ---
    405 	ControlEnable ::  proc(_: ^Control) ---
    406 	ControlDisable ::  proc(_: ^Control) ---
    407 	AllocControl ::  proc(n: libc.size_t, OSsig: libc.uint32_t, typesig: libc.uint32_t, typenamestr: cstring) -> ^Control ---
    408 	FreeControl ::  proc(_: ^Control) ---
    409 	ControlVerifySetParent ::  proc(_: ^Control, _: ^Control) ---
    410 	ControlEnabledToUser ::  proc(_: ^Control) -> libc.int ---
    411 	UserBugCannotSetParentOnToplevel ::  proc(type: cstring) ---
    412 	WindowTitle ::  proc(w: Window) -> cstring ---
    413 	WindowSetTitle ::  proc(w: Window, title: cstring) ---
    414 	WindowContentSize ::  proc(w: Window, width: ^libc.int, height: ^libc.int) ---
    415 	WindowSetContentSize ::  proc(w: Window, width: libc.int, height: libc.int) ---
    416 	WindowFullscreen ::  proc(w: Window) -> libc.int ---
    417 	WindowSetFullscreen ::  proc(w: Window, fullscreen: libc.int) ---
    418 	WindowOnContentSizeChanged ::  proc(w: Window, f: proc(_: Window, _: rawptr), data: rawptr) ---
    419 	WindowOnClosing ::  proc(w: Window, f: proc(w: Window, data: rawptr) -> libc.int, data: rawptr) ---
    420 	WindowBorderless ::  proc(w: Window) -> libc.int ---
    421 	WindowSetBorderless ::  proc(w: Window, borderless: libc.int) ---
    422 	WindowSetChild ::  proc(w: Window, child: ^Control) ---
    423 	WindowMargined ::  proc(w: Window) -> libc.int ---
    424 	WindowSetMargined ::  proc(w: Window, margined: libc.int) ---
    425 	NewWindow ::  proc(title: cstring, width: libc.int, height: libc.int, hasMenubar: libc.int) -> Window ---
    426 	ButtonText ::  proc(b: Button) -> cstring ---
    427 	ButtonSetText ::  proc(b: Button, text: cstring) ---
    428 	ButtonOnClicked ::  proc(b: Button, f: proc(b: Button, data: rawptr), data: rawptr) ---
    429 	NewButton ::  proc(text: cstring) -> Button ---
    430 	BoxAppend ::  proc(b: Box, child: ^Control, stretchy: libc.int) ---
    431 	BoxDelete ::  proc(b: Box, index: libc.int) ---
    432 	BoxPadded ::  proc(b: Box) -> libc.int ---
    433 	BoxSetPadded ::  proc(b: Box, padded: libc.int) ---
    434 	NewHorizontalBox ::  proc() -> Box ---
    435 	NewVerticalBox ::  proc() -> Box ---
    436 	CheckboxText ::  proc(c: Checkbox) -> cstring ---
    437 	CheckboxSetText ::  proc(c: Checkbox, text: cstring) ---
    438 	CheckboxOnToggled ::  proc(c: Checkbox, f: proc(c: Checkbox, data: rawptr), data: rawptr) ---
    439 	CheckboxChecked ::  proc(c: Checkbox) -> libc.int ---
    440 	CheckboxSetChecked ::  proc(c: Checkbox, checked: libc.int) ---
    441 	NewCheckbox ::  proc(text: cstring) -> Checkbox ---
    442 	EntryText ::  proc(e: Entry) -> cstring ---
    443 	EntrySetText ::  proc(e: Entry, text: cstring) ---
    444 	EntryOnChanged ::  proc(e: Entry, f: proc(e: Entry, data: rawptr), data: rawptr) ---
    445 	EntryReadOnly ::  proc(e: Entry) -> libc.int ---
    446 	EntrySetReadOnly ::  proc(e: Entry, readonly: libc.int) ---
    447 	NewEntry ::  proc() -> Entry ---
    448 	NewPasswordEntry ::  proc() -> Entry ---
    449 	NewSearchEntry ::  proc() -> Entry ---
    450 	LabelText ::  proc(l: Label) -> cstring ---
    451 	LabelSetText ::  proc(l: Label, text: cstring) ---
    452 	NewLabel ::  proc(text: cstring) -> Label ---
    453 	TabAppend ::  proc(t: Tab, name: cstring, c: ^Control) ---
    454 	TabInsertAt ::  proc(t: Tab, name: cstring, before: libc.int, c: ^Control) ---
    455 	TabDelete ::  proc(t: Tab, index: libc.int) ---
    456 	TabNumPages ::  proc(t: Tab) -> libc.int ---
    457 	TabMargined ::  proc(t: Tab, page: libc.int) -> libc.int ---
    458 	TabSetMargined ::  proc(t: Tab, page: libc.int, margined: libc.int) ---
    459 	NewTab ::  proc() -> Tab ---
    460 	GroupTitle ::  proc(g: Group) -> cstring ---
    461 	GroupSetTitle ::  proc(g: Group, title: cstring) ---
    462 	GroupSetChild ::  proc(g: Group, c: ^Control) ---
    463 	GroupMargined ::  proc(g: Group) -> libc.int ---
    464 	GroupSetMargined ::  proc(g: Group, margined: libc.int) ---
    465 	NewGroup ::  proc(title: cstring) -> Group ---
    466 	SpinboxValue ::  proc(s: Spinbox) -> libc.int ---
    467 	SpinboxSetValue ::  proc(s: Spinbox, value: libc.int) ---
    468 	SpinboxOnChanged ::  proc(s: Spinbox, f: proc(s: Spinbox, data: rawptr), data: rawptr) ---
    469 	NewSpinbox ::  proc(min: libc.int, max: libc.int) -> Spinbox ---
    470 	SliderValue ::  proc(s: Slider) -> libc.int ---
    471 	SliderSetValue ::  proc(s: Slider, value: libc.int) ---
    472 	SliderOnChanged ::  proc(s: Slider, f: proc(s: Slider, data: rawptr), data: rawptr) ---
    473 	NewSlider ::  proc(min: libc.int, max: libc.int) -> Slider ---
    474 	ProgressBarValue ::  proc(p: ProgressBar) -> libc.int ---
    475 	ProgressBarSetValue ::  proc(p: ProgressBar, n: libc.int) ---
    476 	NewProgressBar ::  proc() -> ProgressBar ---
    477 	NewHorizontalSeparator ::  proc() -> Separator ---
    478 	NewVerticalSeparator ::  proc() -> Separator ---
    479 	ComboboxAppend ::  proc(c: Combobox, text: cstring) ---
    480 	ComboboxSelected ::  proc(c: Combobox) -> libc.int ---
    481 	ComboboxSetSelected ::  proc(c: Combobox, n: libc.int) ---
    482 	ComboboxOnSelected ::  proc(c: Combobox, f: proc(c: Combobox, data: rawptr), data: rawptr) ---
    483 	NewCombobox ::  proc() -> Combobox ---
    484 	EditableComboboxAppend ::  proc(c: EditableCombobox, text: cstring) ---
    485 	EditableComboboxText ::  proc(c: EditableCombobox) -> cstring ---
    486 	EditableComboboxSetText ::  proc(c: EditableCombobox, text: cstring) ---
    487 	EditableComboboxOnChanged ::  proc(c: EditableCombobox, f: proc(c: EditableCombobox, data: rawptr), data: rawptr) ---
    488 	NewEditableCombobox ::  proc() -> EditableCombobox ---
    489 	RadioButtonsAppend ::  proc(r: RadioButtons, text: cstring) ---
    490 	RadioButtonsSelected ::  proc(r: RadioButtons) -> libc.int ---
    491 	RadioButtonsSetSelected ::  proc(r: RadioButtons, n: libc.int) ---
    492 	RadioButtonsOnSelected ::  proc(r: RadioButtons, f: proc(_: RadioButtons, _: rawptr), data: rawptr) ---
    493 	NewRadioButtons ::  proc() -> RadioButtons ---
    494 	DateTimePickerTime ::  proc(d: DateTimePicker, time: ^tm) ---
    495 	DateTimePickerSetTime ::  proc(d: DateTimePicker, time: ^tm) ---
    496 	DateTimePickerOnChanged ::  proc(d: DateTimePicker, f: proc(_: DateTimePicker, _: rawptr), data: rawptr) ---
    497 	NewDateTimePicker ::  proc() -> DateTimePicker ---
    498 	NewDatePicker ::  proc() -> DateTimePicker ---
    499 	NewTimePicker ::  proc() -> DateTimePicker ---
    500 	MultilineEntryText ::  proc(e: MultilineEntry) -> cstring ---
    501 	MultilineEntrySetText ::  proc(e: MultilineEntry, text: cstring) ---
    502 	MultilineEntryAppend ::  proc(e: MultilineEntry, text: cstring) ---
    503 	MultilineEntryOnChanged ::  proc(e: MultilineEntry, f: proc(e: MultilineEntry, data: rawptr), data: rawptr) ---
    504 	MultilineEntryReadOnly ::  proc(e: MultilineEntry) -> libc.int ---
    505 	MultilineEntrySetReadOnly ::  proc(e: MultilineEntry, readonly: libc.int) ---
    506 	NewMultilineEntry ::  proc() -> MultilineEntry ---
    507 	NewNonWrappingMultilineEntry ::  proc() -> MultilineEntry ---
    508 	MenuItemEnable ::  proc(m: MenuItem) ---
    509 	MenuItemDisable ::  proc(m: MenuItem) ---
    510 	MenuItemOnClicked ::  proc(m: MenuItem, f: proc(sender: MenuItem, window: Window, data: rawptr), data: rawptr) ---
    511 	MenuItemChecked ::  proc(m: MenuItem) -> libc.int ---
    512 	MenuItemSetChecked ::  proc(m: MenuItem, checked: libc.int) ---
    513 	MenuAppendItem ::  proc(m: Menu, name: cstring) -> MenuItem ---
    514 	MenuAppendCheckItem ::  proc(m: Menu, name: cstring) -> MenuItem ---
    515 	MenuAppendQuitItem ::  proc(m: Menu) -> MenuItem ---
    516 	MenuAppendPreferencesItem ::  proc(m: Menu) -> MenuItem ---
    517 	MenuAppendAboutItem ::  proc(m: Menu) -> MenuItem ---
    518 	MenuAppendSeparator ::  proc(m: Menu) ---
    519 	NewMenu ::  proc(name: cstring) -> Menu ---
    520 	OpenFile ::  proc(parent: Window) -> cstring ---
    521 	SaveFile ::  proc(parent: Window) -> cstring ---
    522 	MsgBox ::  proc(parent: Window, title: cstring, description: cstring) ---
    523 	MsgBoxError ::  proc(parent: Window, title: cstring, description: cstring) ---
    524 	AreaSetSize ::  proc(a: Area, width: libc.int, height: libc.int) ---
    525 	AreaQueueRedrawAll ::  proc(a: Area) ---
    526 	AreaScrollTo ::  proc(a: Area, x: libc.double, y: libc.double, width: libc.double, height: libc.double) ---
    527 	AreaBeginUserWindowMove ::  proc(a: Area) ---
    528 	AreaBeginUserWindowResize ::  proc(a: Area, edge: WindowResizeEdge) ---
    529 	NewArea ::  proc(ah: ^AreaHandler) -> Area ---
    530 	NewScrollingArea ::  proc(ah: ^AreaHandler, width: libc.int, height: libc.int) -> Area ---
    531 	DrawNewPath ::  proc(fillMode: DrawFillMode) -> DrawPath ---
    532 	DrawFreePath ::  proc(p: DrawPath) ---
    533 	DrawPathNewFigure ::  proc(p: DrawPath, x: libc.double, y: libc.double) ---
    534 	DrawPathNewFigureWithArc ::  proc(p: DrawPath, xCenter: libc.double, yCenter: libc.double, radius: libc.double, startAngle: libc.double, sweep: libc.double, negative: libc.int) ---
    535 	DrawPathLineTo ::  proc(p: DrawPath, x: libc.double, y: libc.double) ---
    536 	DrawPathArcTo ::  proc(p: DrawPath, xCenter: libc.double, yCenter: libc.double, radius: libc.double, startAngle: libc.double, sweep: libc.double, negative: libc.int) ---
    537 	DrawPathBezierTo ::  proc(p: DrawPath, c1x: libc.double, c1y: libc.double, c2x: libc.double, c2y: libc.double, endX: libc.double, endY: libc.double) ---
    538 	DrawPathCloseFigure ::  proc(p: DrawPath) ---
    539 	DrawPathAddRectangle ::  proc(p: DrawPath, x: libc.double, y: libc.double, width: libc.double, height: libc.double) ---
    540 	DrawPathEnd ::  proc(p: DrawPath) ---
    541 	DrawStroke ::  proc(c: DrawContext, path: DrawPath, b: ^DrawBrush, p: ^DrawStrokeParams) ---
    542 	DrawFill ::  proc(c: DrawContext, path: DrawPath, b: ^DrawBrush) ---
    543 	DrawMatrixSetIdentity ::  proc(m: ^DrawMatrix) ---
    544 	DrawMatrixTranslate ::  proc(m: ^DrawMatrix, x: libc.double, y: libc.double) ---
    545 	DrawMatrixScale ::  proc(m: ^DrawMatrix, xCenter: libc.double, yCenter: libc.double, x: libc.double, y: libc.double) ---
    546 	DrawMatrixRotate ::  proc(m: ^DrawMatrix, x: libc.double, y: libc.double, amount: libc.double) ---
    547 	DrawMatrixSkew ::  proc(m: ^DrawMatrix, x: libc.double, y: libc.double, xamount: libc.double, yamount: libc.double) ---
    548 	DrawMatrixMultiply ::  proc(dest: ^DrawMatrix, src: ^DrawMatrix) ---
    549 	DrawMatrixInvertible ::  proc(m: ^DrawMatrix) -> libc.int ---
    550 	DrawMatrixInvert ::  proc(m: ^DrawMatrix) -> libc.int ---
    551 	DrawMatrixTransformPoint ::  proc(m: ^DrawMatrix, x: ^libc.double, y: ^libc.double) ---
    552 	DrawMatrixTransformSize ::  proc(m: ^DrawMatrix, x: ^libc.double, y: ^libc.double) ---
    553 	DrawTransform ::  proc(c: DrawContext, m: ^DrawMatrix) ---
    554 	DrawClip ::  proc(c: DrawContext, path: DrawPath) ---
    555 	DrawSave ::  proc(c: DrawContext) ---
    556 	DrawRestore ::  proc(c: DrawContext) ---
    557 	FreeAttribute ::  proc(a: Attribute) ---
    558 	AttributeGetType ::  proc(a: Attribute) -> AttributeType ---
    559 	NewFamilyAttribute ::  proc(family: cstring) -> Attribute ---
    560 	AttributeFamily ::  proc(a: Attribute) -> cstring ---
    561 	NewSizeAttribute ::  proc(size: libc.double) -> Attribute ---
    562 	AttributeSize ::  proc(a: Attribute) -> libc.double ---
    563 	NewWeightAttribute ::  proc(weight: TextWeight) -> Attribute ---
    564 	AttributeWeight ::  proc(a: Attribute) -> TextWeight ---
    565 	NewItalicAttribute ::  proc(italic: TextItalic) -> Attribute ---
    566 	AttributeItalic ::  proc(a: Attribute) -> TextItalic ---
    567 	NewStretchAttribute ::  proc(stretch: TextStretch) -> Attribute ---
    568 	AttributeStretch ::  proc(a: Attribute) -> TextStretch ---
    569 	NewColorAttribute ::  proc(r: libc.double, g: libc.double, b: libc.double, a: libc.double) -> Attribute ---
    570 	AttributeColor ::  proc(a: Attribute, r: ^libc.double, g: ^libc.double, b: ^libc.double, alpha: ^libc.double) ---
    571 	NewBackgroundAttribute ::  proc(r: libc.double, g: libc.double, b: libc.double, a: libc.double) -> Attribute ---
    572 	NewUnderlineAttribute ::  proc(u: Underline) -> Attribute ---
    573 	AttributeUnderline ::  proc(a: Attribute) -> Underline ---
    574 	NewUnderlineColorAttribute ::  proc(u: UnderlineColor, r: libc.double, g: libc.double, b: libc.double, a: libc.double) -> Attribute ---
    575 	AttributeUnderlineColor ::  proc(a: Attribute, u: ^UnderlineColor, r: ^libc.double, g: ^libc.double, b: ^libc.double, alpha: ^libc.double) ---
    576 	NewOpenTypeFeatures ::  proc() -> OpenTypeFeatures ---
    577 	FreeOpenTypeFeatures ::  proc(otf: OpenTypeFeatures) ---
    578 	OpenTypeFeaturesClone ::  proc(otf: OpenTypeFeatures) -> OpenTypeFeatures ---
    579 	OpenTypeFeaturesAdd ::  proc(otf: OpenTypeFeatures, a: byte, b: byte, c: byte, d: byte, value: libc.uint32_t) ---
    580 	OpenTypeFeaturesRemove ::  proc(otf: OpenTypeFeatures, a: byte, b: byte, c: byte, d: byte) ---
    581 	OpenTypeFeaturesGet ::  proc(otf: OpenTypeFeatures, a: byte, b: byte, c: byte, d: byte, value: ^libc.uint32_t) -> libc.int ---
    582 	OpenTypeFeaturesForEach ::  proc(otf: OpenTypeFeatures, f: OpenTypeFeaturesForEachFunc, data: rawptr) ---
    583 	NewFeaturesAttribute ::  proc(otf: OpenTypeFeatures) -> Attribute ---
    584 	AttributeFeatures ::  proc(a: Attribute) -> OpenTypeFeatures ---
    585 	NewAttributedString ::  proc(initialString: cstring) -> AttributedString ---
    586 	FreeAttributedString ::  proc(s: AttributedString) ---
    587 	AttributedStringString ::  proc(s: AttributedString) -> cstring ---
    588 	AttributedStringLen ::  proc(s: AttributedString) -> libc.size_t ---
    589 	AttributedStringAppendUnattributed ::  proc(s: AttributedString, str: cstring) ---
    590 	AttributedStringInsertAtUnattributed ::  proc(s: AttributedString, str: cstring, at: libc.size_t) ---
    591 	AttributedStringDelete ::  proc(s: AttributedString, start: libc.size_t, end: libc.size_t) ---
    592 	AttributedStringSetAttribute ::  proc(s: AttributedString, a: Attribute, start: libc.size_t, end: libc.size_t) ---
    593 	AttributedStringForEachAttribute ::  proc(s: AttributedString, f: AttributedStringForEachAttributeFunc, data: rawptr) ---
    594 	AttributedStringNumGraphemes ::  proc(s: AttributedString) -> libc.size_t ---
    595 	AttributedStringByteIndexToGrapheme ::  proc(s: AttributedString, pos: libc.size_t) -> libc.size_t ---
    596 	AttributedStringGraphemeToByteIndex ::  proc(s: AttributedString, pos: libc.size_t) -> libc.size_t ---
    597 	DrawNewTextLayout ::  proc(params: ^DrawTextLayoutParams) -> DrawTextLayout ---
    598 	DrawFreeTextLayout ::  proc(tl: DrawTextLayout) ---
    599 	DrawText ::  proc(c: DrawContext, tl: DrawTextLayout, x: libc.double, y: libc.double) ---
    600 	DrawTextLayoutExtents ::  proc(tl: DrawTextLayout, width: ^libc.double, height: ^libc.double) ---
    601 	FontButtonFont ::  proc(b: FontButton, desc: ^FontDescriptor) ---
    602 	FontButtonOnChanged ::  proc(b: FontButton, f: proc(_: FontButton, _: rawptr), data: rawptr) ---
    603 	NewFontButton ::  proc() -> FontButton ---
    604 	FreeFontButtonFont ::  proc(desc: ^FontDescriptor) ---
    605 	ColorButtonColor ::  proc(b: ColorButton, r: ^libc.double, g: ^libc.double, bl: ^libc.double, a: ^libc.double) ---
    606 	ColorButtonSetColor ::  proc(b: ColorButton, r: libc.double, g: libc.double, bl: libc.double, a: libc.double) ---
    607 	ColorButtonOnChanged ::  proc(b: ColorButton, f: proc(_: ColorButton, _: rawptr), data: rawptr) ---
    608 	NewColorButton ::  proc() -> ColorButton ---
    609 	FormAppend ::  proc(f: Form, label: cstring, c: ^Control, stretchy: libc.int) ---
    610 	FormDelete ::  proc(f: Form, index: libc.int) ---
    611 	FormPadded ::  proc(f: Form) -> libc.int ---
    612 	FormSetPadded ::  proc(f: Form, padded: libc.int) ---
    613 	NewForm ::  proc() -> Form ---
    614 	GridAppend ::  proc(g: Grid, c: ^Control, left: libc.int, top: libc.int, xspan: libc.int, yspan: libc.int, hexpand: libc.int, halign: Align, vexpand: libc.int, valign: Align) ---
    615 	GridInsertAt ::  proc(g: Grid, c: ^Control, existing: ^Control, at: At, xspan: libc.int, yspan: libc.int, hexpand: libc.int, halign: Align, vexpand: libc.int, valign: Align) ---
    616 	GridPadded ::  proc(g: Grid) -> libc.int ---
    617 	GridSetPadded ::  proc(g: Grid, padded: libc.int) ---
    618 	NewGrid ::  proc() -> Grid ---
    619 	NewImage ::  proc(width: libc.double, height: libc.double) -> Image ---
    620 	FreeImage ::  proc(i: Image) ---
    621 	ImageAppend ::  proc(i: Image, pixels: rawptr, pixelWidth: libc.int, pixelHeight: libc.int, byteStride: libc.int) ---
    622 	FreeTableValue ::  proc(v: TableValue) ---
    623 	TableValueGetType ::  proc(v: TableValue) -> TableValueType ---
    624 	NewTableValueString ::  proc(str: cstring) -> TableValue ---
    625 	TableValueString ::  proc(v: TableValue) -> cstring ---
    626 	NewTableValueImage ::  proc(img: Image) -> TableValue ---
    627 	TableValueImage ::  proc(v: TableValue) -> Image ---
    628 	NewTableValueInt ::  proc(i: libc.int) -> TableValue ---
    629 	TableValueInt ::  proc(v: TableValue) -> libc.int ---
    630 	NewTableValueColor ::  proc(r: libc.double, g: libc.double, b: libc.double, a: libc.double) -> TableValue ---
    631 	TableValueColor ::  proc(v: TableValue, r: ^libc.double, g: ^libc.double, b: ^libc.double, a: ^libc.double) ---
    632 	NewTableModel ::  proc(mh: ^TableModelHandler) -> TableModel ---
    633 	FreeTableModel ::  proc(m: TableModel) ---
    634 	TableModelRowInserted ::  proc(m: TableModel, newIndex: libc.int) ---
    635 	TableModelRowChanged ::  proc(m: TableModel, index: libc.int) ---
    636 	TableModelRowDeleted ::  proc(m: TableModel, oldIndex: libc.int) ---
    637 	TableAppendTextColumn ::  proc(t: Table, name: cstring, textModelColumn: libc.int, textEditableModelColumn: libc.int, textParams: ^TableTextColumnOptionalParams) ---
    638 	TableAppendImageColumn ::  proc(t: Table, name: cstring, imageModelColumn: libc.int) ---
    639 	TableAppendImageTextColumn ::  proc(t: Table, name: cstring, imageModelColumn: libc.int, textModelColumn: libc.int, textEditableModelColumn: libc.int, textParams: ^TableTextColumnOptionalParams) ---
    640 	TableAppendCheckboxColumn ::  proc(t: Table, name: cstring, checkboxModelColumn: libc.int, checkboxEditableModelColumn: libc.int) ---
    641 	TableAppendCheckboxTextColumn ::  proc(t: Table, name: cstring, checkboxModelColumn: libc.int, checkboxEditableModelColumn: libc.int, textModelColumn: libc.int, textEditableModelColumn: libc.int, textParams: ^TableTextColumnOptionalParams) ---
    642 	TableAppendProgressBarColumn ::  proc(t: Table, name: cstring, progressModelColumn: libc.int) ---
    643 	TableAppendButtonColumn ::  proc(t: Table, name: cstring, buttonModelColumn: libc.int, buttonClickableModelColumn: libc.int) ---
    644 	NewTable ::  proc(params: ^TableParams) -> Table ---
    645 }