forked from AllenDang/cimgui-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cimgui_enums.go
2081 lines (1928 loc) · 103 KB
/
cimgui_enums.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Code generated by cmd/codegen from https://github.com/AllenDang/cimgui-go.
// DO NOT EDIT.
package imgui
// Flags for ImDrawList functions
// (Legacy: bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)
// original name: ImDrawFlags_
type DrawFlags int32
const (
DrawFlagsNone DrawFlags = 0
// PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)
DrawFlagsClosed DrawFlags = 1
// AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01.
DrawFlagsRoundCornersTopLeft DrawFlags = 16
// AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02.
DrawFlagsRoundCornersTopRight DrawFlags = 32
// AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04.
DrawFlagsRoundCornersBottomLeft DrawFlags = 64
// AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08.
DrawFlagsRoundCornersBottomRight DrawFlags = 128
// AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!
DrawFlagsRoundCornersNone DrawFlags = 256
DrawFlagsRoundCornersTop DrawFlags = 48
DrawFlagsRoundCornersBottom DrawFlags = 192
DrawFlagsRoundCornersLeft DrawFlags = 80
DrawFlagsRoundCornersRight DrawFlags = 160
DrawFlagsRoundCornersAll DrawFlags = 240
// Default to ALL corners if none of the _RoundCornersXX flags are specified.
DrawFlagsRoundCornersDefault DrawFlags = 240
DrawFlagsRoundCornersMask DrawFlags = 496
)
// Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly.
// It is however possible to temporarily alter flags between calls to ImDrawList:: functions.
// original name: ImDrawListFlags_
type DrawListFlags int32
const (
DrawListFlagsNone DrawListFlags = 0
// Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles)
DrawListFlagsAntiAliasedLines DrawListFlags = 1
// Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).
DrawListFlagsAntiAliasedLinesUseTex DrawListFlags = 2
// Enable anti-aliased edge around filled shapes (rounded rectangles, circles).
DrawListFlagsAntiAliasedFill DrawListFlags = 4
// Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.
DrawListFlagsAllowVtxOffset DrawListFlags = 8
)
// Flags for ImFontAtlas build
// original name: ImFontAtlasFlags_
type FontAtlasFlags int32
const (
FontAtlasFlagsNone FontAtlasFlags = 0
// Don't round the height to next power of two
FontAtlasFlagsNoPowerOfTwoHeight FontAtlasFlags = 1
// Don't build software mouse cursors into the atlas (save a little texture memory)
FontAtlasFlagsNoMouseCursors FontAtlasFlags = 2
// Don't build thick line textures into the atlas (save a little texture memory, allow support for point/nearest filtering). The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU).
FontAtlasFlagsNoBakedLines FontAtlasFlags = 4
)
// original name: ImGuiActivateFlags_
type ActivateFlags int32
const (
ActivateFlagsNone ActivateFlags = 0
// Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default for Enter key.
ActivateFlagsPreferInput ActivateFlags = 1
// Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default for Space key and if keyboard is not used.
ActivateFlagsPreferTweak ActivateFlags = 2
// Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection)
ActivateFlagsTryToPreserveState ActivateFlags = 4
// Activation requested by a tabbing request
ActivateFlagsFromTabbing ActivateFlags = 8
// Activation requested by an item shortcut via SetNextItemShortcut() function.
ActivateFlagsFromShortcut ActivateFlags = 16
)
// X/Y enums are fixed to 0/1 so they may be used to index ImVec2
// original name: ImGuiAxis
type Axis int32
const (
AxisNone Axis = -1
AxisX Axis = 0
AxisY Axis = 1
)
// Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend.
// original name: ImGuiBackendFlags_
type BackendFlags int32
const (
BackendFlagsNone BackendFlags = 0
// Backend Platform supports gamepad and currently has one connected.
BackendFlagsHasGamepad BackendFlags = 1
// Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape.
BackendFlagsHasMouseCursors BackendFlags = 2
// Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set).
BackendFlagsHasSetMousePos BackendFlags = 4
// Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices.
BackendFlagsRendererHasVtxOffset BackendFlags = 8
// Backend Platform supports multiple viewports.
BackendFlagsPlatformHasViewports BackendFlags = 1024
// Backend Platform supports calling io.AddMouseViewportEvent() with the viewport under the mouse. IF POSSIBLE, ignore viewports with the ImGuiViewportFlags_NoInputs flag (Win32 backend, GLFW 3.30+ backend can do this, SDL backend cannot). If this cannot be done, Dear ImGui needs to use a flawed heuristic to find the viewport under.
BackendFlagsHasMouseHoveredViewport BackendFlags = 2048
// Backend Renderer supports multiple viewports.
BackendFlagsRendererHasViewports BackendFlags = 4096
)
// Extend ImGuiButtonFlags_
// original name: ImGuiButtonFlagsPrivate_
type ButtonFlagsPrivate int32
const (
// return true on click (mouse down event)
ButtonFlagsPressedOnClick ButtonFlagsPrivate = 16
// [Default] return true on click + release on same item <-- this is what the majority of Button are using
ButtonFlagsPressedOnClickRelease ButtonFlagsPrivate = 32
// return true on click + release even if the release event is not done while hovering the item
ButtonFlagsPressedOnClickReleaseAnywhere ButtonFlagsPrivate = 64
// return true on release (default requires click+release)
ButtonFlagsPressedOnRelease ButtonFlagsPrivate = 128
// return true on double-click (default requires click+release)
ButtonFlagsPressedOnDoubleClick ButtonFlagsPrivate = 256
// return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)
ButtonFlagsPressedOnDragDropHold ButtonFlagsPrivate = 512
// hold to repeat
ButtonFlagsRepeat ButtonFlagsPrivate = 1024
// allow interactions even if a child window is overlapping
ButtonFlagsFlattenChildren ButtonFlagsPrivate = 2048
// require previous frame HoveredId to either match id or be null before being usable.
ButtonFlagsAllowOverlap ButtonFlagsPrivate = 4096
// disable automatically closing parent popup on press // [UNUSED]
ButtonFlagsDontClosePopups ButtonFlagsPrivate = 8192
// vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine
ButtonFlagsAlignTextBaseLine ButtonFlagsPrivate = 32768
// disable mouse interaction if a key modifier is held
ButtonFlagsNoKeyModifiers ButtonFlagsPrivate = 65536
// don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
ButtonFlagsNoHoldingActiveId ButtonFlagsPrivate = 131072
// don't override navigation focus when activated (FIXME: this is essentially used everytime an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.InFlags)
ButtonFlagsNoNavFocus ButtonFlagsPrivate = 262144
// don't report as hovered when nav focus is on this item
ButtonFlagsNoHoveredOnFocus ButtonFlagsPrivate = 524288
// don't set key/input owner on the initial click (note: mouse buttons are keys! often, the key in question will be ImGuiKey_MouseLeft!)
ButtonFlagsNoSetKeyOwner ButtonFlagsPrivate = 1048576
// don't test key/input owner when polling the key (note: mouse buttons are keys! often, the key in question will be ImGuiKey_MouseLeft!)
ButtonFlagsNoTestKeyOwner ButtonFlagsPrivate = 2097152
ButtonFlagsPressedOnMask ButtonFlagsPrivate = 1008
ButtonFlagsPressedOnDefault ButtonFlagsPrivate = 32
)
// Flags for InvisibleButton() [extended in imgui_internal.h]
// original name: ImGuiButtonFlags_
type ButtonFlags int32
const (
ButtonFlagsNone ButtonFlags = 0
// React on left mouse button (default)
ButtonFlagsMouseButtonLeft ButtonFlags = 1
// React on right mouse button
ButtonFlagsMouseButtonRight ButtonFlags = 2
// React on center mouse button
ButtonFlagsMouseButtonMiddle ButtonFlags = 4
ButtonFlagsMouseButtonMask ButtonFlags = 7
ButtonFlagsMouseButtonDefault ButtonFlags = 1
)
// Flags for ImGui::BeginChild()
// (Legacy: bit 0 must always correspond to ImGuiChildFlags_Border to be backward compatible with old API using 'bool border = false'.
// About using AutoResizeX/AutoResizeY flags:
// - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see "Demo->Child->Auto-resize with Constraints").
// - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing.
// - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped.
// While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional "resizing after becoming visible again" glitch.
// - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view.
// HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping.
//
// original name: ImGuiChildFlags_
type ChildFlags int32
const (
ChildFlagsNone ChildFlags = 0
// Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason)
ChildFlagsBorder ChildFlags = 1
// Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)
ChildFlagsAlwaysUseWindowPadding ChildFlags = 2
// Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)
ChildFlagsResizeX ChildFlags = 4
// Allow resize from bottom border (layout direction). "
ChildFlagsResizeY ChildFlags = 8
// Enable auto-resizing width. Read "IMPORTANT: Size measurement" details above.
ChildFlagsAutoResizeX ChildFlags = 16
// Enable auto-resizing height. Read "IMPORTANT: Size measurement" details above.
ChildFlagsAutoResizeY ChildFlags = 32
// Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED.
ChildFlagsAlwaysAutoResize ChildFlags = 64
// Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.
ChildFlagsFrameStyle ChildFlags = 128
)
// Enumeration for PushStyleColor() / PopStyleColor()
// original name: ImGuiCol_
type Col int32
const (
ColText Col = 0
ColTextDisabled Col = 1
// Background of normal windows
ColWindowBg Col = 2
// Background of child windows
ColChildBg Col = 3
// Background of popups, menus, tooltips windows
ColPopupBg Col = 4
ColBorder Col = 5
ColBorderShadow Col = 6
// Background of checkbox, radio button, plot, slider, text input
ColFrameBg Col = 7
ColFrameBgHovered Col = 8
ColFrameBgActive Col = 9
// Title bar
ColTitleBg Col = 10
// Title bar when focused
ColTitleBgActive Col = 11
// Title bar when collapsed
ColTitleBgCollapsed Col = 12
ColMenuBarBg Col = 13
ColScrollbarBg Col = 14
ColScrollbarGrab Col = 15
ColScrollbarGrabHovered Col = 16
ColScrollbarGrabActive Col = 17
// Checkbox tick and RadioButton circle
ColCheckMark Col = 18
ColSliderGrab Col = 19
ColSliderGrabActive Col = 20
ColButton Col = 21
ColButtonHovered Col = 22
ColButtonActive Col = 23
// Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
ColHeader Col = 24
ColHeaderHovered Col = 25
ColHeaderActive Col = 26
ColSeparator Col = 27
ColSeparatorHovered Col = 28
ColSeparatorActive Col = 29
// Resize grip in lower-right and lower-left corners of windows.
ColResizeGrip Col = 30
ColResizeGripHovered Col = 31
ColResizeGripActive Col = 32
// TabItem in a TabBar
ColTab Col = 33
ColTabHovered Col = 34
ColTabActive Col = 35
ColTabUnfocused Col = 36
ColTabUnfocusedActive Col = 37
// Preview overlay color when about to docking something
ColDockingPreview Col = 38
// Background color for empty node (e.g. CentralNode with no window docked into it)
ColDockingEmptyBg Col = 39
ColPlotLines Col = 40
ColPlotLinesHovered Col = 41
ColPlotHistogram Col = 42
ColPlotHistogramHovered Col = 43
// Table header background
ColTableHeaderBg Col = 44
// Table outer and header borders (prefer using Alpha=1.0 here)
ColTableBorderStrong Col = 45
// Table inner borders (prefer using Alpha=1.0 here)
ColTableBorderLight Col = 46
// Table row background (even rows)
ColTableRowBg Col = 47
// Table row background (odd rows)
ColTableRowBgAlt Col = 48
ColTextSelectedBg Col = 49
// Rectangle highlighting a drop target
ColDragDropTarget Col = 50
// Gamepad/keyboard: current highlighted item
ColNavHighlight Col = 51
// Highlight window when using CTRL+TAB
ColNavWindowingHighlight Col = 52
// Darken/colorize entire screen behind the CTRL+TAB window list, when active
ColNavWindowingDimBg Col = 53
// Darken/colorize entire screen behind a modal window, when one is active
ColModalWindowDimBg Col = 54
ColCOUNT Col = 55
)
// Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()
// original name: ImGuiColorEditFlags_
type ColorEditFlags int32
const (
ColorEditFlagsNone ColorEditFlags = 0
// // ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).
ColorEditFlagsNoAlpha ColorEditFlags = 2
// // ColorEdit: disable picker when clicking on color square.
ColorEditFlagsNoPicker ColorEditFlags = 4
// // ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.
ColorEditFlagsNoOptions ColorEditFlags = 8
// // ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
ColorEditFlagsNoSmallPreview ColorEditFlags = 16
// // ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).
ColorEditFlagsNoInputs ColorEditFlags = 32
// // ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.
ColorEditFlagsNoTooltip ColorEditFlags = 64
// // ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).
ColorEditFlagsNoLabel ColorEditFlags = 128
// // ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.
ColorEditFlagsNoSidePreview ColorEditFlags = 256
// // ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.
ColorEditFlagsNoDragDrop ColorEditFlags = 512
// // ColorButton: disable border (which is enforced by default)
ColorEditFlagsNoBorder ColorEditFlags = 1024
// // ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
ColorEditFlagsAlphaBar ColorEditFlags = 65536
// // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
ColorEditFlagsAlphaPreview ColorEditFlags = 131072
// // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
ColorEditFlagsAlphaPreviewHalf ColorEditFlags = 262144
// // (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).
ColorEditFlagsHDR ColorEditFlags = 524288
// [Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.
ColorEditFlagsDisplayRGB ColorEditFlags = 1048576
// [Display] // "
ColorEditFlagsDisplayHSV ColorEditFlags = 2097152
// [Display] // "
ColorEditFlagsDisplayHex ColorEditFlags = 4194304
// [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
ColorEditFlagsUint8 ColorEditFlags = 8388608
// [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.
ColorEditFlagsFloat ColorEditFlags = 16777216
// [Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.
ColorEditFlagsPickerHueBar ColorEditFlags = 33554432
// [Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.
ColorEditFlagsPickerHueWheel ColorEditFlags = 67108864
// [Input] // ColorEdit, ColorPicker: input and output data in RGB format.
ColorEditFlagsInputRGB ColorEditFlags = 134217728
// [Input] // ColorEdit, ColorPicker: input and output data in HSV format.
ColorEditFlagsInputHSV ColorEditFlags = 268435456
ColorEditFlagsDefaultOptions ColorEditFlags = 177209344
ColorEditFlagsDisplayMask ColorEditFlags = 7340032
ColorEditFlagsDataTypeMask ColorEditFlags = 25165824
ColorEditFlagsPickerMask ColorEditFlags = 100663296
ColorEditFlagsInputMask ColorEditFlags = 402653184
)
// Extend ImGuiComboFlags_
// original name: ImGuiComboFlagsPrivate_
type ComboFlagsPrivate int32
const (
// enable BeginComboPreview()
ComboFlagsCustomPreview ComboFlagsPrivate = 1048576
)
// Flags for ImGui::BeginCombo()
// original name: ImGuiComboFlags_
type ComboFlags int32
const (
ComboFlagsNone ComboFlags = 0
// Align the popup toward the left by default
ComboFlagsPopupAlignLeft ComboFlags = 1
// Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()
ComboFlagsHeightSmall ComboFlags = 2
// Max ~8 items visible (default)
ComboFlagsHeightRegular ComboFlags = 4
// Max ~20 items visible
ComboFlagsHeightLarge ComboFlags = 8
// As many fitting items as possible
ComboFlagsHeightLargest ComboFlags = 16
// Display on the preview box without the square arrow button
ComboFlagsNoArrowButton ComboFlags = 32
// Display only a square arrow button
ComboFlagsNoPreview ComboFlags = 64
// Width dynamically calculated from preview contents
ComboFlagsWidthFitPreview ComboFlags = 128
ComboFlagsHeightMask ComboFlags = 30
)
// Enumeration for ImGui::SetNextWindow***(), SetWindow***(), SetNextItem***() functions
// Represent a condition.
// Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always.
// original name: ImGuiCond_
type Cond int32
const (
// No condition (always set the variable), same as _Always
CondNone Cond = 0
// No condition (always set the variable), same as _None
CondAlways Cond = 1
// Set the variable once per runtime session (only the first call will succeed)
CondOnce Cond = 2
// Set the variable if the object/window has no persistently saved data (no entry in .ini file)
CondFirstUseEver Cond = 4
// Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
CondAppearing Cond = 8
)
// Configuration flags stored in io.ConfigFlags. Set by user/application.
// original name: ImGuiConfigFlags_
type ConfigFlags int32
const (
ConfigFlagsNone ConfigFlags = 0
// Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + space/enter to activate.
ConfigFlagsNavEnableKeyboard ConfigFlags = 1
// Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad.
ConfigFlagsNavEnableGamepad ConfigFlags = 2
// Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your backend, otherwise ImGui will react as if the mouse is jumping around back and forth.
ConfigFlagsNavEnableSetMousePos ConfigFlags = 4
// Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set.
ConfigFlagsNavNoCaptureKeyboard ConfigFlags = 8
// Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.
ConfigFlagsNoMouse ConfigFlags = 16
// Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead.
ConfigFlagsNoMouseCursorChange ConfigFlags = 32
// Docking enable flags.
ConfigFlagsDockingEnable ConfigFlags = 64
// Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends)
ConfigFlagsViewportsEnable ConfigFlags = 1024
// [BETA: Don't use] FIXME-DPI: Reposition and resize imgui windows when the DpiScale of a viewport changed (mostly useful for the main viewport hosting other window). Note that resizing the main window itself is up to your application.
ConfigFlagsDpiEnableScaleViewports ConfigFlags = 16384
// [BETA: Don't use] FIXME-DPI: Request bitmap-scaled fonts to match DpiScale. This is a very low-quality workaround. The correct way to handle DPI is _currently_ to replace the atlas and/or fonts in the Platform_OnChangedViewport callback, but this is all early work in progress.
ConfigFlagsDpiEnableScaleFonts ConfigFlags = 32768
// Application is SRGB-aware.
ConfigFlagsIsSRGB ConfigFlags = 1048576
// Application is using a touch screen instead of a mouse.
ConfigFlagsIsTouchScreen ConfigFlags = 2097152
)
// original name: ImGuiContextHookType
type ContextHookType int32
const (
ContextHookTypeNewFramePre ContextHookType = 0
ContextHookTypeNewFramePost ContextHookType = 1
ContextHookTypeEndFramePre ContextHookType = 2
ContextHookTypeEndFramePost ContextHookType = 3
ContextHookTypeRenderPre ContextHookType = 4
ContextHookTypeRenderPost ContextHookType = 5
ContextHookTypeShutdown ContextHookType = 6
ContextHookTypePendingRemoval ContextHookType = 7
)
// Store the source authority (dock node vs window) of a field
// original name: ImGuiDataAuthority_
type DataAuthority int32
const (
DataAuthorityAuto DataAuthority = 0
DataAuthorityDockNode DataAuthority = 1
DataAuthorityWindow DataAuthority = 2
)
// Extend ImGuiDataType_
// original name: ImGuiDataTypePrivate_
type DataTypePrivate int32
const (
DataTypeString DataTypePrivate = 11
DataTypePointer DataTypePrivate = 12
DataTypeID DataTypePrivate = 13
)
// A primary data type
// original name: ImGuiDataType_
type DataType int32
const (
// signed char / char (with sensible compilers)
DataTypeS8 DataType = 0
// unsigned char
DataTypeU8 DataType = 1
// short
DataTypeS16 DataType = 2
// unsigned short
DataTypeU16 DataType = 3
// int
DataTypeS32 DataType = 4
// unsigned int
DataTypeU32 DataType = 5
// long long / __int64
DataTypeS64 DataType = 6
// unsigned long long / unsigned __int64
DataTypeU64 DataType = 7
// float
DataTypeFloat DataType = 8
// double
DataTypeDouble DataType = 9
DataTypeCOUNT DataType = 10
)
// original name: ImGuiDebugLogFlags_
type DebugLogFlags int32
const (
DebugLogFlagsNone DebugLogFlags = 0
DebugLogFlagsEventActiveId DebugLogFlags = 1
DebugLogFlagsEventFocus DebugLogFlags = 2
DebugLogFlagsEventPopup DebugLogFlags = 4
DebugLogFlagsEventNav DebugLogFlags = 8
DebugLogFlagsEventClipper DebugLogFlags = 16
DebugLogFlagsEventSelection DebugLogFlags = 32
DebugLogFlagsEventIO DebugLogFlags = 64
DebugLogFlagsEventInputRouting DebugLogFlags = 128
DebugLogFlagsEventDocking DebugLogFlags = 256
DebugLogFlagsEventViewport DebugLogFlags = 512
DebugLogFlagsEventMask DebugLogFlags = 1023
// Also send output to TTY
DebugLogFlagsOutputToTTY DebugLogFlags = 1048576
// Also send output to Test Engine
DebugLogFlagsOutputToTestEngine DebugLogFlags = 2097152
)
// A cardinal direction
// original name: ImGuiDir_
type Dir int32
const (
DirNone Dir = -1
DirLeft Dir = 0
DirRight Dir = 1
DirUp Dir = 2
DirDown Dir = 3
DirCOUNT Dir = 4
)
// Extend ImGuiDockNodeFlags_
// original name: ImGuiDockNodeFlagsPrivate_
type DockNodeFlagsPrivate int32
const (
// Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window.
DockNodeFlagsDockSpace DockNodeFlagsPrivate = 1024
// Saved // The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor.
DockNodeFlagsCentralNode DockNodeFlagsPrivate = 2048
// Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.
DockNodeFlagsNoTabBar DockNodeFlagsPrivate = 4096
// Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar)
DockNodeFlagsHiddenTabBar DockNodeFlagsPrivate = 8192
// Saved // Disable window/docking menu (that one that appears instead of the collapse button)
DockNodeFlagsNoWindowMenuButton DockNodeFlagsPrivate = 16384
// Saved // Disable close button
DockNodeFlagsNoCloseButton DockNodeFlagsPrivate = 32768
// //
DockNodeFlagsNoResizeX DockNodeFlagsPrivate = 65536
// //
DockNodeFlagsNoResizeY DockNodeFlagsPrivate = 131072
// // Any docked window will be automatically be focus-route chained (window->ParentWindowForFocusRoute set to this) so Shortcut() in this window can run when any docked window is focused.
DockNodeFlagsDockedWindowsInFocusRoute DockNodeFlagsPrivate = 262144
// // Disable this node from splitting other windows/nodes.
DockNodeFlagsNoDockingSplitOther DockNodeFlagsPrivate = 524288
// // Disable other windows/nodes from being docked over this node.
DockNodeFlagsNoDockingOverMe DockNodeFlagsPrivate = 1048576
// // Disable this node from being docked over another window or non-empty node.
DockNodeFlagsNoDockingOverOther DockNodeFlagsPrivate = 2097152
// // Disable this node from being docked over an empty node (e.g. DockSpace with no other windows)
DockNodeFlagsNoDockingOverEmpty DockNodeFlagsPrivate = 4194304
DockNodeFlagsNoDocking DockNodeFlagsPrivate = 7864336
DockNodeFlagsSharedFlagsInheritMask DockNodeFlagsPrivate = -1
DockNodeFlagsNoResizeFlagsMask DockNodeFlagsPrivate = 196640
DockNodeFlagsLocalFlagsTransferMask DockNodeFlagsPrivate = 260208
DockNodeFlagsSavedFlagsMask DockNodeFlagsPrivate = 261152
)
// Flags for ImGui::DockSpace(), shared/inherited by child nodes.
// (Some flags can be applied to individual nodes directly)
// FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api.
// original name: ImGuiDockNodeFlags_
type DockNodeFlags int32
const (
DockNodeFlagsNone DockNodeFlags = 0
// // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
DockNodeFlagsKeepAliveOnly DockNodeFlags = 1
// // Disable docking over the Central Node, which will be always kept empty.
DockNodeFlagsNoDockingOverCentralNode DockNodeFlags = 4
// // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
DockNodeFlagsPassthruCentralNode DockNodeFlags = 8
// // Disable other windows/nodes from splitting this node.
DockNodeFlagsNoDockingSplit DockNodeFlags = 16
// Saved // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
DockNodeFlagsNoResize DockNodeFlags = 32
// // Tab bar will automatically hide when there is a single window in the dock node.
DockNodeFlagsAutoHideTabBar DockNodeFlags = 64
// // Disable undocking this node.
DockNodeFlagsNoUndocking DockNodeFlags = 128
)
// original name: ImGuiDockNodeState
type DockNodeState int32
const (
DockNodeStateUnknown DockNodeState = 0
DockNodeStateHostWindowHiddenBecauseSingleWindow DockNodeState = 1
DockNodeStateHostWindowHiddenBecauseWindowsAreResizing DockNodeState = 2
DockNodeStateHostWindowVisible DockNodeState = 3
)
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
// original name: ImGuiDragDropFlags_
type DragDropFlags int32
const (
DragDropFlagsNone DragDropFlags = 0
// Disable preview tooltip. By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disables this behavior.
DragDropFlagsSourceNoPreviewTooltip DragDropFlags = 1
// By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disables this behavior so you can still call IsItemHovered() on the source item.
DragDropFlagsSourceNoDisableHover DragDropFlags = 2
// Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.
DragDropFlagsSourceNoHoldToOpenOthers DragDropFlags = 4
// Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit.
DragDropFlagsSourceAllowNullID DragDropFlags = 8
// External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously.
DragDropFlagsSourceExtern DragDropFlags = 16
// Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
DragDropFlagsSourceAutoExpirePayload DragDropFlags = 32
// AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.
DragDropFlagsAcceptBeforeDelivery DragDropFlags = 1024
// Do not draw the default highlight rectangle when hovering over target.
DragDropFlagsAcceptNoDrawDefaultRect DragDropFlags = 2048
// Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.
DragDropFlagsAcceptNoPreviewTooltip DragDropFlags = 4096
// For peeking ahead and inspecting the payload before delivery.
DragDropFlagsAcceptPeekOnly DragDropFlags = 3072
)
// Flags for FocusWindow(). This is not called ImGuiFocusFlags to avoid confusion with public-facing ImGuiFocusedFlags.
// FIXME: Once we finishing replacing more uses of GetTopMostPopupModal()+IsWindowWithinBeginStackOf()
// and FindBlockingModal() with this, we may want to change the flag to be opt-out instead of opt-in.
// original name: ImGuiFocusRequestFlags_
type FocusRequestFlags int32
const (
FocusRequestFlagsNone FocusRequestFlags = 0
// Find last focused child (if any) and focus it instead.
FocusRequestFlagsRestoreFocusedChild FocusRequestFlags = 1
// Do not set focus if the window is below a modal.
FocusRequestFlagsUnlessBelowModal FocusRequestFlags = 2
)
// Flags for ImGui::IsWindowFocused()
// original name: ImGuiFocusedFlags_
type FocusedFlags int32
const (
FocusedFlagsNone FocusedFlags = 0
// Return true if any children of the window is focused
FocusedFlagsChildWindows FocusedFlags = 1
// Test from root window (top most parent of the current hierarchy)
FocusedFlagsRootWindow FocusedFlags = 2
// Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!
FocusedFlagsAnyWindow FocusedFlags = 4
// Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
FocusedFlagsNoPopupHierarchy FocusedFlags = 8
// Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
FocusedFlagsDockHierarchy FocusedFlags = 16
FocusedFlagsRootAndChildWindows FocusedFlags = 3
)
// Extend ImGuiHoveredFlags_
// original name: ImGuiHoveredFlagsPrivate_
type HoveredFlagsPrivate int32
const (
HoveredFlagsDelayMask HoveredFlagsPrivate = 245760
HoveredFlagsAllowedMaskForIsWindowHovered HoveredFlagsPrivate = 12479
HoveredFlagsAllowedMaskForIsItemHovered HoveredFlagsPrivate = 262048
)
// Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()
// Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!
// Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls.
// original name: ImGuiHoveredFlags_
type HoveredFlags int32
const (
// Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.
HoveredFlagsNone HoveredFlags = 0
// IsWindowHovered() only: Return true if any children of the window is hovered
HoveredFlagsChildWindows HoveredFlags = 1
// IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)
HoveredFlagsRootWindow HoveredFlags = 2
// IsWindowHovered() only: Return true if any window is hovered
HoveredFlagsAnyWindow HoveredFlags = 4
// IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
HoveredFlagsNoPopupHierarchy HoveredFlags = 8
// IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
HoveredFlagsDockHierarchy HoveredFlags = 16
// Return true even if a popup window is normally blocking access to this item/window
HoveredFlagsAllowWhenBlockedByPopup HoveredFlags = 32
// Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
HoveredFlagsAllowWhenBlockedByActiveItem HoveredFlags = 128
// IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item.
HoveredFlagsAllowWhenOverlappedByItem HoveredFlags = 256
// IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window.
HoveredFlagsAllowWhenOverlappedByWindow HoveredFlags = 512
// IsItemHovered() only: Return true even if the item is disabled
HoveredFlagsAllowWhenDisabled HoveredFlags = 1024
// IsItemHovered() only: Disable using gamepad/keyboard navigation state when active, always query mouse
HoveredFlagsNoNavOverride HoveredFlags = 2048
HoveredFlagsAllowWhenOverlapped HoveredFlags = 768
HoveredFlagsRectOnly HoveredFlags = 928
HoveredFlagsRootAndChildWindows HoveredFlags = 3
// Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.
HoveredFlagsForTooltip HoveredFlags = 4096
// Require mouse to be stationary for style.HoverStationaryDelay (~0.15 sec) _at least one time_. After this, can move on same item/window. Using the stationary test tends to reduces the need for a long delay.
HoveredFlagsStationary HoveredFlags = 8192
// IsItemHovered() only: Return true immediately (default). As this is the default you generally ignore this.
HoveredFlagsDelayNone HoveredFlags = 16384
// IsItemHovered() only: Return true after style.HoverDelayShort elapsed (~0.15 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).
HoveredFlagsDelayShort HoveredFlags = 32768
// IsItemHovered() only: Return true after style.HoverDelayNormal elapsed (~0.40 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).
HoveredFlagsDelayNormal HoveredFlags = 65536
// IsItemHovered() only: Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)
HoveredFlagsNoSharedDelay HoveredFlags = 131072
)
// [Internal] Key ranges
// [Internal] Named shortcuts for Navigation
// original name: ImGuiInputEventType
type InputEventType int32
const (
InputEventTypeNone InputEventType = 0
InputEventTypeMousePos InputEventType = 1
InputEventTypeMouseWheel InputEventType = 2
InputEventTypeMouseButton InputEventType = 3
InputEventTypeMouseViewport InputEventType = 4
InputEventTypeKey InputEventType = 5
InputEventTypeText InputEventType = 6
InputEventTypeFocus InputEventType = 7
InputEventTypeCOUNT InputEventType = 8
)
// Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner()
// Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)
// original name: ImGuiInputFlags_
type InputFlags int32
const (
InputFlagsNone InputFlags = 0
// Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1.
InputFlagsRepeat InputFlags = 1
// Repeat rate: Regular (default)
InputFlagsRepeatRateDefault InputFlags = 2
// Repeat rate: Fast
InputFlagsRepeatRateNavMove InputFlags = 4
// Repeat rate: Faster
InputFlagsRepeatRateNavTweak InputFlags = 8
// Stop repeating when released (default for all functions except Shortcut). This only exists to allow overriding Shortcut() default behavior.
InputFlagsRepeatUntilRelease InputFlags = 16
// Stop repeating when released OR if keyboard mods are changed (default for Shortcut)
InputFlagsRepeatUntilKeyModsChange InputFlags = 32
// Stop repeating when released OR if keyboard mods are leaving the None state. Allows going from Mod+Key to Key by releasing Mod.
InputFlagsRepeatUntilKeyModsChangeFromNone InputFlags = 64
// Stop repeating when released OR if any other keyboard key is pressed during the repeat
InputFlagsRepeatUntilOtherKeyPress InputFlags = 128
// Only set if item is hovered (default to both)
InputFlagsCondHovered InputFlags = 256
// Only set if item is active (default to both)
InputFlagsCondActive InputFlags = 512
InputFlagsCondDefault InputFlags = 768
// Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame.
InputFlagsLockThisFrame InputFlags = 1024
// Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when the key is released or at end of each frame if key is released.
InputFlagsLockUntilRelease InputFlags = 2048
// (Default) Honor focus route: Accept inputs if window is in focus stack. Deep-most focused window takes inputs. ActiveId takes inputs over deep-most focused window.
InputFlagsRouteFocused InputFlags = 4096
// Register route globally (lowest priority: unless a focused window or active item registered the route) -> recommended Global priority IF you need a Global priority.
InputFlagsRouteGlobalLow InputFlags = 8192
// Register route globally (medium priority: unless an active item registered the route, e.g. CTRL+A registered by InputText will take priority over this).
InputFlagsRouteGlobal InputFlags = 16384
// Register route globally (higher priority: unlikely you need to use that: will interfere with every active items, e.g. CTRL+A registered by InputText will be overriden by this)
InputFlagsRouteGlobalHigh InputFlags = 32768
// Do not register route, poll keys directly.
InputFlagsRouteAlways InputFlags = 65536
// Global routes will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications.
InputFlagsRouteUnlessBgFocused InputFlags = 131072
InputFlagsRepeatRateMask InputFlags = 14
InputFlagsRepeatUntilMask InputFlags = 240
InputFlagsRepeatMask InputFlags = 255
InputFlagsCondMask InputFlags = 768
// _Always not part of this!
InputFlagsRouteMask InputFlags = 61440
InputFlagsSupportedByIsKeyPressed InputFlags = 255
InputFlagsSupportedByIsMouseClicked InputFlags = 1
InputFlagsSupportedByShortcut InputFlags = 258303
InputFlagsSupportedBySetKeyOwner InputFlags = 3072
InputFlagsSupportedBySetItemKeyOwner InputFlags = 3840
)
// original name: ImGuiInputSource
type InputSource int32
const (
InputSourceNone InputSource = 0
// Note: may be Mouse or TouchScreen or Pen. See io.MouseSource to distinguish them.
InputSourceMouse InputSource = 1
InputSourceKeyboard InputSource = 2
InputSourceGamepad InputSource = 3
// Currently only used by InputText()
InputSourceClipboard InputSource = 4
InputSourceCOUNT InputSource = 5
)
// Extend ImGuiInputTextFlags_
// original name: ImGuiInputTextFlagsPrivate_
type InputTextFlagsPrivate int32
const (
// For internal use by InputTextMultiline()
InputTextFlagsMultiline InputTextFlagsPrivate = 67108864
// For internal use by functions using InputText() before reformatting data
InputTextFlagsNoMarkEdited InputTextFlagsPrivate = 134217728
// For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match.
InputTextFlagsMergedItem InputTextFlagsPrivate = 268435456
)
// Flags for ImGui::InputText()
// (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)
// original name: ImGuiInputTextFlags_
type InputTextFlags int32
const (
InputTextFlagsNone InputTextFlags = 0
// Allow 0123456789.+-*/
InputTextFlagsCharsDecimal InputTextFlags = 1
// Allow 0123456789ABCDEFabcdef
InputTextFlagsCharsHexadecimal InputTextFlags = 2
// Turn a..z into A..Z
InputTextFlagsCharsUppercase InputTextFlags = 4
// Filter out spaces, tabs
InputTextFlagsCharsNoBlank InputTextFlags = 8
// Select entire text when first taking mouse focus
InputTextFlagsAutoSelectAll InputTextFlags = 16
// Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
InputTextFlagsEnterReturnsTrue InputTextFlags = 32
// Callback on pressing TAB (for completion handling)
InputTextFlagsCallbackCompletion InputTextFlags = 64
// Callback on pressing Up/Down arrows (for history handling)
InputTextFlagsCallbackHistory InputTextFlags = 128
// Callback on each iteration. User code may query cursor position, modify text buffer.
InputTextFlagsCallbackAlways InputTextFlags = 256
// Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
InputTextFlagsCallbackCharFilter InputTextFlags = 512
// Pressing TAB input a '\t' character into the text field
InputTextFlagsAllowTabInput InputTextFlags = 1024
// In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter).
InputTextFlagsCtrlEnterForNewLine InputTextFlags = 2048
// Disable following the cursor horizontally
InputTextFlagsNoHorizontalScroll InputTextFlags = 4096
// Overwrite mode
InputTextFlagsAlwaysOverwrite InputTextFlags = 8192
// Read-only mode
InputTextFlagsReadOnly InputTextFlags = 16384
// Password mode, display all characters as '*'
InputTextFlagsPassword InputTextFlags = 32768
// Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().
InputTextFlagsNoUndoRedo InputTextFlags = 65536
// Allow 0123456789.+-*/eE (Scientific notation input)
InputTextFlagsCharsScientific InputTextFlags = 131072
// Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)
InputTextFlagsCallbackResize InputTextFlags = 262144
// Callback on any edit (note that InputText() already returns true on edit, the callback is useful mainly to manipulate the underlying buffer while focus is active)
InputTextFlagsCallbackEdit InputTextFlags = 524288
// Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
InputTextFlagsEscapeClearsAll InputTextFlags = 1048576
)
// Flags used by upcoming items
// - input: PushItemFlag() manipulates g.CurrentItemFlags, ItemAdd() calls may add extra flags.
// - output: stored in g.LastItemData.InFlags
// Current window shared by all windows.
// This is going to be exposed in imgui.h when stabilized enough.
// original name: ImGuiItemFlags_
type ItemFlags int32
const (
ItemFlagsNone ItemFlags = 0
// false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav.
ItemFlagsNoTabStop ItemFlags = 1
// false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
ItemFlagsButtonRepeat ItemFlags = 2
// false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211
ItemFlagsDisabled ItemFlags = 4
// false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls)
ItemFlagsNoNav ItemFlags = 8
// false // Disable item being a candidate for default focus (e.g. used by title bar items)
ItemFlagsNoNavDefaultFocus ItemFlags = 16
// false // Disable MenuItem/Selectable() automatically closing their popup window
ItemFlagsSelectableDontClosePopup ItemFlags = 32
// false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
ItemFlagsMixedValue ItemFlags = 64
// false // [ALPHA] Allow hovering interactions but underlying value is not changed.
ItemFlagsReadOnly ItemFlags = 128
// false // Disable hoverable check in ItemHoverable()
ItemFlagsNoWindowHoverableCheck ItemFlags = 256
// false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.
ItemFlagsAllowOverlap ItemFlags = 512
// false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.
ItemFlagsInputable ItemFlags = 1024
// false // Set by SetNextItemSelectionUserData()
ItemFlagsHasSelectionUserData ItemFlags = 2048
)
// Status flags for an already submitted item
// - output: stored in g.LastItemData.StatusFlags
// original name: ImGuiItemStatusFlags_
type ItemStatusFlags int32
const (
ItemStatusFlagsNone ItemStatusFlags = 0
// Mouse position is within item rectangle (does NOT mean that the window is in correct z-order and can be hovered!, this is only one part of the most-common IsItemHovered test)
ItemStatusFlagsHoveredRect ItemStatusFlags = 1
// g.LastItemData.DisplayRect is valid
ItemStatusFlagsHasDisplayRect ItemStatusFlags = 2
// Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
ItemStatusFlagsEdited ItemStatusFlags = 4
// Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected", only state changes, in order to easily handle clipping with less issues.
ItemStatusFlagsToggledSelection ItemStatusFlags = 8
// Set when TreeNode() reports toggling their open state.
ItemStatusFlagsToggledOpen ItemStatusFlags = 16
// Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
ItemStatusFlagsHasDeactivated ItemStatusFlags = 32
// Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
ItemStatusFlagsDeactivated ItemStatusFlags = 64
// Override the HoveredWindow test to allow cross-window hover testing.
ItemStatusFlagsHoveredWindow ItemStatusFlags = 128
// [WIP] Set when item is overlapping the current clipping rectangle (Used internally. Please don't use yet: API/system will change as we refactor Itemadd()).
ItemStatusFlagsVisible ItemStatusFlags = 256
// g.LastItemData.ClipRect is valid
ItemStatusFlagsHasClipRect ItemStatusFlags = 512
)
// A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values.
// All our named keys are >= 512. Keys value 0 to 511 are left unused as legacy native/opaque key values (< 1.87).
// Since >= 1.89 we increased typing (went from int to enum), some legacy code may need a cast to ImGuiKey.
// Read details about the 1.87 and 1.89 transition : https://github.com/ocornut/imgui/issues/4921
// Note that "Keys" related to physical keys and are not the same concept as input "Characters", the later are submitted via io.AddInputCharacter().
// The keyboard key enum values are named after the keys on a standard US keyboard, and on other keyboard types the keys reported may not match the keycaps.
// original name: ImGuiKey
type Key int32
const (
KeyNone Key = 0
// == ImGuiKey_NamedKey_BEGIN
KeyTab Key = 512
KeyLeftArrow Key = 513
KeyRightArrow Key = 514
KeyUpArrow Key = 515
KeyDownArrow Key = 516
KeyPageUp Key = 517
KeyPageDown Key = 518
KeyHome Key = 519
KeyEnd Key = 520
KeyInsert Key = 521
KeyDelete Key = 522
KeyBackspace Key = 523
KeySpace Key = 524
KeyEnter Key = 525
KeyEscape Key = 526
KeyLeftCtrl Key = 527
KeyLeftShift Key = 528
KeyLeftAlt Key = 529
KeyLeftSuper Key = 530
KeyRightCtrl Key = 531
KeyRightShift Key = 532
KeyRightAlt Key = 533
KeyRightSuper Key = 534
KeyMenu Key = 535
Key0 Key = 536
Key1 Key = 537
Key2 Key = 538
Key3 Key = 539
Key4 Key = 540
Key5 Key = 541
Key6 Key = 542
Key7 Key = 543
Key8 Key = 544
Key9 Key = 545
KeyA Key = 546
KeyB Key = 547
KeyC Key = 548
KeyD Key = 549
KeyE Key = 550
KeyF Key = 551
KeyG Key = 552
KeyH Key = 553
KeyI Key = 554
KeyJ Key = 555
KeyK Key = 556
KeyL Key = 557
KeyM Key = 558