forked from AllenDang/cimgui-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cimgui_enums.go
2024 lines (1871 loc) · 88.9 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 = 0
// PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)
DrawFlagsClosed = 1
// AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01.
DrawFlagsRoundCornersTopLeft = 16
// AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02.
DrawFlagsRoundCornersTopRight = 32
// AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04.
DrawFlagsRoundCornersBottomLeft = 64
// AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08.
DrawFlagsRoundCornersBottomRight = 128
// AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!
DrawFlagsRoundCornersNone = 256
DrawFlagsRoundCornersTop = 48
DrawFlagsRoundCornersBottom = 192
DrawFlagsRoundCornersLeft = 80
DrawFlagsRoundCornersRight = 160
DrawFlagsRoundCornersAll = 240
// Default to ALL corners if none of the _RoundCornersXX flags are specified.
DrawFlagsRoundCornersDefault = 240
DrawFlagsRoundCornersMask = 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 = 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 = 1
// Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).
DrawListFlagsAntiAliasedLinesUseTex = 2
// Enable anti-aliased edge around filled shapes (rounded rectangles, circles).
DrawListFlagsAntiAliasedFill = 4
// Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.
DrawListFlagsAllowVtxOffset = 8
)
// Flags for ImFontAtlas build
// original name: ImFontAtlasFlags_
type FontAtlasFlags int32
const (
FontAtlasFlagsNone = 0
// Don't round the height to next power of two
FontAtlasFlagsNoPowerOfTwoHeight = 1
// Don't build software mouse cursors into the atlas (save a little texture memory)
FontAtlasFlagsNoMouseCursors = 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 = 4
)
// original name: ImGuiActivateFlags_
type ActivateFlags int32
const (
ActivateFlagsNone = 0
// Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default for Enter key.
ActivateFlagsPreferInput = 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 = 2
// Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection)
ActivateFlagsTryToPreserveState = 4
)
// X/Y enums are fixed to 0/1 so they may be used to index ImVec2
// original name: ImGuiAxis
type Axis int32
const (
AxisNone = -1
AxisX = 0
AxisY = 1
)
// Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend.
// original name: ImGuiBackendFlags_
type BackendFlags int32
const (
BackendFlagsNone = 0
// Backend Platform supports gamepad and currently has one connected.
BackendFlagsHasGamepad = 1
// Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape.
BackendFlagsHasMouseCursors = 2
// Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set).
BackendFlagsHasSetMousePos = 4
// Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices.
BackendFlagsRendererHasVtxOffset = 8
// Backend Platform supports multiple viewports.
BackendFlagsPlatformHasViewports = 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 = 2048
// Backend Renderer supports multiple viewports.
BackendFlagsRendererHasViewports = 4096
)
// Extend ImGuiButtonFlags_
// original name: ImGuiButtonFlagsPrivate_
type ButtonFlagsPrivate int32
const (
// return true on click (mouse down event)
ButtonFlagsPressedOnClick = 16
// [Default] return true on click + release on same item <-- this is what the majority of Button are using
ButtonFlagsPressedOnClickRelease = 32
// return true on click + release even if the release event is not done while hovering the item
ButtonFlagsPressedOnClickReleaseAnywhere = 64
// return true on release (default requires click+release)
ButtonFlagsPressedOnRelease = 128
// return true on double-click (default requires click+release)
ButtonFlagsPressedOnDoubleClick = 256
// return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)
ButtonFlagsPressedOnDragDropHold = 512
// hold to repeat
ButtonFlagsRepeat = 1024
// allow interactions even if a child window is overlapping
ButtonFlagsFlattenChildren = 2048
// require previous frame HoveredId to either match id or be null before being usable.
ButtonFlagsAllowOverlap = 4096
// disable automatically closing parent popup on press // [UNUSED]
ButtonFlagsDontClosePopups = 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 = 32768
// disable mouse interaction if a key modifier is held
ButtonFlagsNoKeyModifiers = 65536
// don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)
ButtonFlagsNoHoldingActiveId = 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 = 262144
// don't report as hovered when nav focus is on this item
ButtonFlagsNoHoveredOnFocus = 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 = 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 = 2097152
ButtonFlagsPressedOnMask = 1008
ButtonFlagsPressedOnDefault = 32
)
// Flags for InvisibleButton() [extended in imgui_internal.h]
// original name: ImGuiButtonFlags_
type ButtonFlags int32
const (
ButtonFlagsNone = 0
// React on left mouse button (default)
ButtonFlagsMouseButtonLeft = 1
// React on right mouse button
ButtonFlagsMouseButtonRight = 2
// React on center mouse button
ButtonFlagsMouseButtonMiddle = 4
ButtonFlagsMouseButtonMask = 7
ButtonFlagsMouseButtonDefault = 1
)
// Enumeration for PushStyleColor() / PopStyleColor()
// original name: ImGuiCol_
type Col int32
const (
ColText = 0
ColTextDisabled = 1
// Background of normal windows
ColWindowBg = 2
// Background of child windows
ColChildBg = 3
// Background of popups, menus, tooltips windows
ColPopupBg = 4
ColBorder = 5
ColBorderShadow = 6
// Background of checkbox, radio button, plot, slider, text input
ColFrameBg = 7
ColFrameBgHovered = 8
ColFrameBgActive = 9
ColTitleBg = 10
ColTitleBgActive = 11
ColTitleBgCollapsed = 12
ColMenuBarBg = 13
ColScrollbarBg = 14
ColScrollbarGrab = 15
ColScrollbarGrabHovered = 16
ColScrollbarGrabActive = 17
ColCheckMark = 18
ColSliderGrab = 19
ColSliderGrabActive = 20
ColButton = 21
ColButtonHovered = 22
ColButtonActive = 23
// Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem
ColHeader = 24
ColHeaderHovered = 25
ColHeaderActive = 26
ColSeparator = 27
ColSeparatorHovered = 28
ColSeparatorActive = 29
// Resize grip in lower-right and lower-left corners of windows.
ColResizeGrip = 30
ColResizeGripHovered = 31
ColResizeGripActive = 32
// TabItem in a TabBar
ColTab = 33
ColTabHovered = 34
ColTabActive = 35
ColTabUnfocused = 36
ColTabUnfocusedActive = 37
// Preview overlay color when about to docking something
ColDockingPreview = 38
// Background color for empty node (e.g. CentralNode with no window docked into it)
ColDockingEmptyBg = 39
ColPlotLines = 40
ColPlotLinesHovered = 41
ColPlotHistogram = 42
ColPlotHistogramHovered = 43
// Table header background
ColTableHeaderBg = 44
// Table outer and header borders (prefer using Alpha=1.0 here)
ColTableBorderStrong = 45
// Table inner borders (prefer using Alpha=1.0 here)
ColTableBorderLight = 46
// Table row background (even rows)
ColTableRowBg = 47
// Table row background (odd rows)
ColTableRowBgAlt = 48
ColTextSelectedBg = 49
// Rectangle highlighting a drop target
ColDragDropTarget = 50
// Gamepad/keyboard: current highlighted item
ColNavHighlight = 51
// Highlight window when using CTRL+TAB
ColNavWindowingHighlight = 52
// Darken/colorize entire screen behind the CTRL+TAB window list, when active
ColNavWindowingDimBg = 53
// Darken/colorize entire screen behind a modal window, when one is active
ColModalWindowDimBg = 54
ColCOUNT = 55
)
// Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()
// original name: ImGuiColorEditFlags_
type ColorEditFlags int32
const (
ColorEditFlagsNone = 0
// // ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).
ColorEditFlagsNoAlpha = 2
// // ColorEdit: disable picker when clicking on color square.
ColorEditFlagsNoPicker = 4
// // ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.
ColorEditFlagsNoOptions = 8
// // ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)
ColorEditFlagsNoSmallPreview = 16
// // ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).
ColorEditFlagsNoInputs = 32
// // ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.
ColorEditFlagsNoTooltip = 64
// // ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).
ColorEditFlagsNoLabel = 128
// // ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.
ColorEditFlagsNoSidePreview = 256
// // ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source.
ColorEditFlagsNoDragDrop = 512
// // ColorButton: disable border (which is enforced by default)
ColorEditFlagsNoBorder = 1024
// // ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.
ColorEditFlagsAlphaBar = 65536
// // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque.
ColorEditFlagsAlphaPreview = 131072
// // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque.
ColorEditFlagsAlphaPreviewHalf = 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 = 524288
// [Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.
ColorEditFlagsDisplayRGB = 1048576
// [Display] // "
ColorEditFlagsDisplayHSV = 2097152
// [Display] // "
ColorEditFlagsDisplayHex = 4194304
// [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.
ColorEditFlagsUint8 = 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 = 16777216
// [Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.
ColorEditFlagsPickerHueBar = 33554432
// [Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.
ColorEditFlagsPickerHueWheel = 67108864
// [Input] // ColorEdit, ColorPicker: input and output data in RGB format.
ColorEditFlagsInputRGB = 134217728
// [Input] // ColorEdit, ColorPicker: input and output data in HSV format.
ColorEditFlagsInputHSV = 268435456
ColorEditFlagsDefaultOptions = 177209344
ColorEditFlagsDisplayMask = 7340032
ColorEditFlagsDataTypeMask = 25165824
ColorEditFlagsPickerMask = 100663296
ColorEditFlagsInputMask = 402653184
)
// Extend ImGuiComboFlags_
// original name: ImGuiComboFlagsPrivate_
type ComboFlagsPrivate int32
const (
// enable BeginComboPreview()
ComboFlagsCustomPreview = 1048576
)
// Flags for ImGui::BeginCombo()
// original name: ImGuiComboFlags_
type ComboFlags int32
const (
ComboFlagsNone = 0
// Align the popup toward the left by default
ComboFlagsPopupAlignLeft = 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 = 2
// Max ~8 items visible (default)
ComboFlagsHeightRegular = 4
// Max ~20 items visible
ComboFlagsHeightLarge = 8
// As many fitting items as possible
ComboFlagsHeightLargest = 16
// Display on the preview box without the square arrow button
ComboFlagsNoArrowButton = 32
// Display only a square arrow button
ComboFlagsNoPreview = 64
ComboFlagsHeightMask = 30
)
// Enumeration for ImGui::SetWindow***(), SetNextWindow***(), 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 = 0
// No condition (always set the variable), same as _None
CondAlways = 1
// Set the variable once per runtime session (only the first call will succeed)
CondOnce = 2
// Set the variable if the object/window has no persistently saved data (no entry in .ini file)
CondFirstUseEver = 4
// Set the variable if the object/window is appearing after being hidden/inactive (or the first time)
CondAppearing = 8
)
// Configuration flags stored in io.ConfigFlags. Set by user/application.
// original name: ImGuiConfigFlags_
type ConfigFlags int32
const (
ConfigFlagsNone = 0
// Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + space/enter to activate.
ConfigFlagsNavEnableKeyboard = 1
// Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad.
ConfigFlagsNavEnableGamepad = 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 = 4
// Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set.
ConfigFlagsNavNoCaptureKeyboard = 8
// Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the backend.
ConfigFlagsNoMouse = 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 = 32
// Docking enable flags.
ConfigFlagsDockingEnable = 64
// Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends)
ConfigFlagsViewportsEnable = 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 = 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 = 32768
// Application is SRGB-aware.
ConfigFlagsIsSRGB = 1048576
// Application is using a touch screen instead of a mouse.
ConfigFlagsIsTouchScreen = 2097152
)
// original name: ImGuiContextHookType
type ContextHookType int32
const (
ContextHookTypeNewFramePre = 0
ContextHookTypeNewFramePost = 1
ContextHookTypeEndFramePre = 2
ContextHookTypeEndFramePost = 3
ContextHookTypeRenderPre = 4
ContextHookTypeRenderPost = 5
ContextHookTypeShutdown = 6
ContextHookTypePendingRemoval = 7
)
// Store the source authority (dock node vs window) of a field
// original name: ImGuiDataAuthority_
type DataAuthority int32
const (
DataAuthorityAuto = 0
DataAuthorityDockNode = 1
DataAuthorityWindow = 2
)
// Extend ImGuiDataType_
// original name: ImGuiDataTypePrivate_
type DataTypePrivate int32
const (
DataTypeString = 11
DataTypePointer = 12
DataTypeID = 13
)
// A primary data type
// original name: ImGuiDataType_
type DataType int32
const (
// signed char / char (with sensible compilers)
DataTypeS8 = 0
// unsigned char
DataTypeU8 = 1
// short
DataTypeS16 = 2
// unsigned short
DataTypeU16 = 3
// int
DataTypeS32 = 4
// unsigned int
DataTypeU32 = 5
// long long / __int64
DataTypeS64 = 6
// unsigned long long / unsigned __int64
DataTypeU64 = 7
// float
DataTypeFloat = 8
// double
DataTypeDouble = 9
DataTypeCOUNT = 10
)
// original name: ImGuiDebugLogFlags_
type DebugLogFlags int32
const (
DebugLogFlagsNone = 0
DebugLogFlagsEventActiveId = 1
DebugLogFlagsEventFocus = 2
DebugLogFlagsEventPopup = 4
DebugLogFlagsEventNav = 8
DebugLogFlagsEventClipper = 16
DebugLogFlagsEventSelection = 32
DebugLogFlagsEventIO = 64
DebugLogFlagsEventDocking = 128
DebugLogFlagsEventViewport = 256
DebugLogFlagsEventMask = 511
// Also send output to TTY
DebugLogFlagsOutputToTTY = 1024
// Also send output to Test Engine
DebugLogFlagsOutputToTestEngine = 2048
)
// A cardinal direction
// original name: ImGuiDir_
type Dir int32
const (
DirNone = -1
DirLeft = 0
DirRight = 1
DirUp = 2
DirDown = 3
DirCOUNT = 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 = 1024
// Saved // The central node has 2 main properties: stay visible when empty, only use "remaining" spaces from its neighbor.
DockNodeFlagsCentralNode = 2048
// Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.
DockNodeFlagsNoTabBar = 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 = 8192
// Saved // Disable window/docking menu (that one that appears instead of the collapse button)
DockNodeFlagsNoWindowMenuButton = 16384
// Saved // Disable close button
DockNodeFlagsNoCloseButton = 32768
// //
DockNodeFlagsNoResizeX = 65536
// //
DockNodeFlagsNoResizeY = 131072
// // Disable this node from splitting other windows/nodes.
DockNodeFlagsNoDockingSplitOther = 524288
// // Disable other windows/nodes from being docked over this node.
DockNodeFlagsNoDockingOverMe = 1048576
// // Disable this node from being docked over another window or non-empty node.
DockNodeFlagsNoDockingOverOther = 2097152
// // Disable this node from being docked over an empty node (e.g. DockSpace with no other windows)
DockNodeFlagsNoDockingOverEmpty = 4194304
DockNodeFlagsNoDocking = 7864336
DockNodeFlagsSharedFlagsInheritMask = -1
DockNodeFlagsNoResizeFlagsMask = 196640
DockNodeFlagsLocalFlagsTransferMask = 260208
DockNodeFlagsSavedFlagsMask = 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 = 0
// // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
DockNodeFlagsKeepAliveOnly = 1
// // Disable docking over the Central Node, which will be always kept empty.
DockNodeFlagsNoDockingOverCentralNode = 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 = 8
// // Disable other windows/nodes from splitting this node.
DockNodeFlagsNoDockingSplit = 16
// Saved // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.
DockNodeFlagsNoResize = 32
// // Tab bar will automatically hide when there is a single window in the dock node.
DockNodeFlagsAutoHideTabBar = 64
// // Disable undocking this node.
DockNodeFlagsNoUndocking = 128
)
// original name: ImGuiDockNodeState
type DockNodeState int32
const (
DockNodeStateUnknown = 0
DockNodeStateHostWindowHiddenBecauseSingleWindow = 1
DockNodeStateHostWindowHiddenBecauseWindowsAreResizing = 2
DockNodeStateHostWindowVisible = 3
)
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
// original name: ImGuiDragDropFlags_
type DragDropFlags int32
const (
DragDropFlagsNone = 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 = 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 = 2
// Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.
DragDropFlagsSourceNoHoldToOpenOthers = 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 = 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 = 16
// Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)
DragDropFlagsSourceAutoExpirePayload = 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 = 1024
// Do not draw the default highlight rectangle when hovering over target.
DragDropFlagsAcceptNoDrawDefaultRect = 2048
// Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.
DragDropFlagsAcceptNoPreviewTooltip = 4096
// For peeking ahead and inspecting the payload before delivery.
DragDropFlagsAcceptPeekOnly = 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 = 0
// Find last focused child (if any) and focus it instead.
FocusRequestFlagsRestoreFocusedChild = 1
// Do not set focus if the window is below a modal.
FocusRequestFlagsUnlessBelowModal = 2
)
// Flags for ImGui::IsWindowFocused()
// original name: ImGuiFocusedFlags_
type FocusedFlags int32
const (
FocusedFlagsNone = 0
// Return true if any children of the window is focused
FocusedFlagsChildWindows = 1
// Test from root window (top most parent of the current hierarchy)
FocusedFlagsRootWindow = 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 = 4
// Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
FocusedFlagsNoPopupHierarchy = 8
// Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
FocusedFlagsDockHierarchy = 16
FocusedFlagsRootAndChildWindows = 3
)
// Extend ImGuiHoveredFlags_
// original name: ImGuiHoveredFlagsPrivate_
type HoveredFlagsPrivate int32
const (
HoveredFlagsDelayMask = 245760
HoveredFlagsAllowedMaskForIsWindowHovered = 12479
HoveredFlagsAllowedMaskForIsItemHovered = 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 = 0
// IsWindowHovered() only: Return true if any children of the window is hovered
HoveredFlagsChildWindows = 1
// IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)
HoveredFlagsRootWindow = 2
// IsWindowHovered() only: Return true if any window is hovered
HoveredFlagsAnyWindow = 4
// IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)
HoveredFlagsNoPopupHierarchy = 8
// IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)
HoveredFlagsDockHierarchy = 16
// Return true even if a popup window is normally blocking access to this item/window
HoveredFlagsAllowWhenBlockedByPopup = 32
// Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.
HoveredFlagsAllowWhenBlockedByActiveItem = 128
// IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item.
HoveredFlagsAllowWhenOverlappedByItem = 256
// IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window.
HoveredFlagsAllowWhenOverlappedByWindow = 512
// IsItemHovered() only: Return true even if the item is disabled
HoveredFlagsAllowWhenDisabled = 1024
// IsItemHovered() only: Disable using gamepad/keyboard navigation state when active, always query mouse
HoveredFlagsNoNavOverride = 2048
HoveredFlagsAllowWhenOverlapped = 768
HoveredFlagsRectOnly = 928
HoveredFlagsRootAndChildWindows = 3
// Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.
HoveredFlagsForTooltip = 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 = 8192
// IsItemHovered() only: Return true immediately (default). As this is the default you generally ignore this.
HoveredFlagsDelayNone = 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 = 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 = 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 = 131072
)
// [Internal] Key ranges
// [Internal] Named shortcuts for Navigation
// original name: ImGuiInputEventType
type InputEventType int32
const (
InputEventTypeNone = 0
InputEventTypeMousePos = 1
InputEventTypeMouseWheel = 2
InputEventTypeMouseButton = 3
InputEventTypeMouseViewport = 4
InputEventTypeKey = 5
InputEventTypeText = 6
InputEventTypeFocus = 7
InputEventTypeCOUNT = 8
)
// Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner()
// Don't mistake with ImGuiInputTextFlags! (for ImGui::InputText() function)
// original name: ImGuiInputFlags_
type InputFlags int32
const (
InputFlagsNone = 0
// Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1.
InputFlagsRepeat = 1
// Repeat rate: Regular (default)
InputFlagsRepeatRateDefault = 2
// Repeat rate: Fast
InputFlagsRepeatRateNavMove = 4
// Repeat rate: Faster
InputFlagsRepeatRateNavTweak = 8
InputFlagsRepeatRateMask = 14
// Only set if item is hovered (default to both)
InputFlagsCondHovered = 16
// Only set if item is active (default to both)
InputFlagsCondActive = 32
InputFlagsCondDefault = 48
InputFlagsCondMask = 48
// Access to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
InputFlagsLockThisFrame = 64
// Access 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. This is useful to make input-owner-aware code steal keys from non-input-owner-aware code.
InputFlagsLockUntilRelease = 128
// (Default) Register focused route: Accept inputs if window is in focus stack. Deep-most focused window takes inputs. ActiveId takes inputs over deep-most focused window.
InputFlagsRouteFocused = 256
// Register route globally (lowest priority: unless a focused window or active item registered the route) -> recommended Global priority.
InputFlagsRouteGlobalLow = 512
// Register route globally (medium priority: unless an active item registered the route, e.g. CTRL+A registered by InputText).
InputFlagsRouteGlobal = 1024
// Register route globally (highest priority: unlikely you need to use that: will interfere with every active items)
InputFlagsRouteGlobalHigh = 2048
// _Always not part of this!
InputFlagsRouteMask = 3840
// Do not register route, poll keys directly.
InputFlagsRouteAlways = 4096
// Global routes will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications.
InputFlagsRouteUnlessBgFocused = 8192
InputFlagsRouteExtraMask = 12288
InputFlagsSupportedByIsKeyPressed = 15
InputFlagsSupportedByShortcut = 16143
InputFlagsSupportedBySetKeyOwner = 192
InputFlagsSupportedBySetItemKeyOwner = 240
)
// original name: ImGuiInputSource
type InputSource int32
const (
InputSourceNone = 0
// Note: may be Mouse or TouchScreen or Pen. See io.MouseSource to distinguish them.
InputSourceMouse = 1
InputSourceKeyboard = 2
InputSourceGamepad = 3
// Currently only used by InputText()
InputSourceClipboard = 4
InputSourceCOUNT = 5
)
// Extend ImGuiInputTextFlags_
// original name: ImGuiInputTextFlagsPrivate_
type InputTextFlagsPrivate int32
const (
// For internal use by InputTextMultiline()
InputTextFlagsMultiline = 67108864
// For internal use by functions using InputText() before reformatting data
InputTextFlagsNoMarkEdited = 134217728
// For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match.
InputTextFlagsMergedItem = 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 = 0
// Allow 0123456789.+-*/
InputTextFlagsCharsDecimal = 1
// Allow 0123456789ABCDEFabcdef
InputTextFlagsCharsHexadecimal = 2
// Turn a..z into A..Z
InputTextFlagsCharsUppercase = 4
// Filter out spaces, tabs
InputTextFlagsCharsNoBlank = 8
// Select entire text when first taking mouse focus
InputTextFlagsAutoSelectAll = 16
// Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function.
InputTextFlagsEnterReturnsTrue = 32
// Callback on pressing TAB (for completion handling)
InputTextFlagsCallbackCompletion = 64
// Callback on pressing Up/Down arrows (for history handling)
InputTextFlagsCallbackHistory = 128
// Callback on each iteration. User code may query cursor position, modify text buffer.
InputTextFlagsCallbackAlways = 256
// Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.
InputTextFlagsCallbackCharFilter = 512
// Pressing TAB input a '\t' character into the text field
InputTextFlagsAllowTabInput = 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 = 2048
// Disable following the cursor horizontally
InputTextFlagsNoHorizontalScroll = 4096
// Overwrite mode
InputTextFlagsAlwaysOverwrite = 8192
// Read-only mode
InputTextFlagsReadOnly = 16384
// Password mode, display all characters as '*'
InputTextFlagsPassword = 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 = 65536
// Allow 0123456789.+-*/eE (Scientific notation input)
InputTextFlagsCharsScientific = 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 = 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 = 524288
// Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)
InputTextFlagsEscapeClearsAll = 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 = 0
// false // Disable keyboard tabbing. This is a "lighter" version of ImGuiItemFlags_NoNav.
ItemFlagsNoTabStop = 1
// false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
ItemFlagsButtonRepeat = 2
// false // Disable interactions but doesn't affect visuals. See BeginDisabled()/EndDisabled(). See github.com/ocornut/imgui/issues/211
ItemFlagsDisabled = 4
// false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls)
ItemFlagsNoNav = 8
// false // Disable item being a candidate for default focus (e.g. used by title bar items)
ItemFlagsNoNavDefaultFocus = 16
// false // Disable MenuItem/Selectable() automatically closing their popup window
ItemFlagsSelectableDontClosePopup = 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 = 64
// false // [ALPHA] Allow hovering interactions but underlying value is not changed.
ItemFlagsReadOnly = 128
// false // Disable hoverable check in ItemHoverable()
ItemFlagsNoWindowHoverableCheck = 256
// false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.
ItemFlagsAllowOverlap = 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 = 1024
// false // Set by SetNextItemSelectionUserData()
ItemFlagsHasSelectionUserData = 2048
)
// Status flags for an already submitted item
// - output: stored in g.LastItemData.StatusFlags
// original name: ImGuiItemStatusFlags_
type ItemStatusFlags int32
const (
ItemStatusFlagsNone = 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 = 1
// g.LastItemData.DisplayRect is valid
ItemStatusFlagsHasDisplayRect = 2
// Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
ItemStatusFlagsEdited = 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 = 8
// Set when TreeNode() reports toggling their open state.
ItemStatusFlagsToggledOpen = 16
// Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
ItemStatusFlagsHasDeactivated = 32
// Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
ItemStatusFlagsDeactivated = 64
// Override the HoveredWindow test to allow cross-window hover testing.
ItemStatusFlagsHoveredWindow = 128
// Set when the Focusable item just got focused by Tabbing (FIXME: to be removed soon)
ItemStatusFlagsFocusedByTabbing = 256
// [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 = 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().
// original name: ImGuiKey
type Key int32
const (
KeyNone = 0
// == ImGuiKey_NamedKey_BEGIN
KeyTab = 512
KeyLeftArrow = 513
KeyRightArrow = 514
KeyUpArrow = 515
KeyDownArrow = 516
KeyPageUp = 517
KeyPageDown = 518
KeyHome = 519
KeyEnd = 520
KeyInsert = 521
KeyDelete = 522
KeyBackspace = 523
KeySpace = 524
KeyEnter = 525
KeyEscape = 526
KeyLeftCtrl = 527
KeyLeftShift = 528
KeyLeftAlt = 529
KeyLeftSuper = 530
KeyRightCtrl = 531
KeyRightShift = 532
KeyRightAlt = 533
KeyRightSuper = 534
KeyMenu = 535
Key0 = 536
Key1 = 537
Key2 = 538
Key3 = 539
Key4 = 540
Key5 = 541
Key6 = 542
Key7 = 543
Key8 = 544
Key9 = 545
KeyA = 546
KeyB = 547
KeyC = 548
KeyD = 549
KeyE = 550
KeyF = 551
KeyG = 552
KeyH = 553
KeyI = 554
KeyJ = 555
KeyK = 556
KeyL = 557
KeyM = 558
KeyN = 559
KeyO = 560
KeyP = 561
KeyQ = 562
KeyR = 563
KeyS = 564
KeyT = 565
KeyU = 566
KeyV = 567
KeyW = 568
KeyX = 569
KeyY = 570
KeyZ = 571
KeyF1 = 572
KeyF2 = 573
KeyF3 = 574
KeyF4 = 575
KeyF5 = 576
KeyF6 = 577
KeyF7 = 578
KeyF8 = 579
KeyF9 = 580
KeyF10 = 581
KeyF11 = 582
KeyF12 = 583
// '
KeyApostrophe = 584
// ,
KeyComma = 585
// -
KeyMinus = 586
// .
KeyPeriod = 587
// /
KeySlash = 588
// ;
KeySemicolon = 589
// =
KeyEqual = 590
// [
KeyLeftBracket = 591
// \ (this text inhibit multiline comment caused by backslash)
KeyBackslash = 592
// ]
KeyRightBracket = 593
// `
KeyGraveAccent = 594
KeyCapsLock = 595
KeyScrollLock = 596
KeyNumLock = 597
KeyPrintScreen = 598
KeyPause = 599
KeyKeypad0 = 600
KeyKeypad1 = 601
KeyKeypad2 = 602
KeyKeypad3 = 603
KeyKeypad4 = 604