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 }