TachyonUI 0.1.0
High-performance UI for building tools.
Loading...
Searching...
No Matches
gui_input_enums.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
5
6namespace tachyon
7{
10
11 // Interaction distances in CSS px; scale them with StyleManager::Px.
12 constexpr float kWheelScrollStep = 30.0f;
13 constexpr int32_t kDragStartDistance = 4;
14
16 constexpr float kDefaultDoubleClickMs = 500.0f;
19 float DoubleClickMilliseconds() noexcept;
21 void SetDoubleClickMilliseconds(float milliseconds) noexcept;
22
25 enum class KeyModifier : uint8_t
26 {
27 None = 0,
28 Shift = 1,
30 Alt = 4,
31 Option = 8,
32 Command = 16,
33 };
35
36
37 enum class MouseButtons : uint8_t
38 {
39 None = 0,
40 Left = 1,
41 Middle = 2,
42 Right = 4,
43 X1 = 8,
44 X2 = 16,
45 };
47
48
49 enum class KeyAction : uint8_t
50 {
54 };
55
57 enum class MouseAction : uint8_t
58 {
61 };
62
64 enum class FileDropAction : uint8_t
65 {
71 };
72
102
105 enum class KeyCode : uint32_t
106 {
107 None = 0,
108
146
179
181
194
208
210
272
301
314
327
329
340
348
359
362
367 };
368
369}
@ None
Definition gui_element_flags.h:19
@ Application
Definition gui_graphics_context.h:45
KeyCode
Keys by what the keyboard layout makes them, not by position.
Definition gui_input_enums.h:106
EventType
The kind of input event the GUI dispatches to element handlers.
Definition gui_input_enums.h:75
constexpr float kDefaultDoubleClickMs
The OS's double-click time if the platform reports one, else this, milliseconds.
Definition gui_input_enums.h:16
KeyAction
A keyboard event: a key down or up, or a typed character (KeyChar).
Definition gui_input_enums.h:50
constexpr float kWheelScrollStep
scrolled per wheel notch (CSS px)
Definition gui_input_enums.h:12
float DoubleClickMilliseconds() noexcept
The most time between the two clicks of a double-click, milliseconds: the OS's setting,...
void SetDoubleClickMilliseconds(float milliseconds) noexcept
Sets DoubleClickMilliseconds; values of 0 or less are ignored.
KeyModifier
Modifier keys held, combined with |.
Definition gui_input_enums.h:26
FileDropAction
A step of a drag from another application (files, text) over one of the app's windows.
Definition gui_input_enums.h:65
MouseButtons
Mouse buttons, combined with |.
Definition gui_input_enums.h:38
MouseAction
Whether a mouse button went down or up.
Definition gui_input_enums.h:58
constexpr int32_t kDragStartDistance
pointer travel before a press becomes a drag (CSS px)
Definition gui_input_enums.h:13
@ Mute
Definition gui_input_enums.h:298
@ Escape
Definition gui_input_enums.h:110
@ KeyPadXor
Definition gui_input_enums.h:244
@ KeyPadC
Definition gui_input_enums.h:240
@ KeyPadD
Definition gui_input_enums.h:241
@ Separator
Definition gui_input_enums.h:308
@ KeyPad2
Definition gui_input_enums.h:217
@ Down
Definition gui_input_enums.h:206
@ KeyPadMinus
Definition gui_input_enums.h:213
@ KeyPad6
Definition gui_input_enums.h:221
@ Equals
Definition gui_input_enums.h:142
@ KeyPadExclam
Definition gui_input_enums.h:257
@ KeyY
Definition gui_input_enums.h:177
@ Pause
Definition gui_input_enums.h:197
@ CurrencySubUnit
Definition gui_input_enums.h:318
@ KeyI
Definition gui_input_enums.h:161
@ Stop
Definition gui_input_enums.h:291
@ KeyPadHexadecimal
Definition gui_input_enums.h:271
@ Again
Definition gui_input_enums.h:292
@ KeyPadLeftBrace
Definition gui_input_enums.h:234
@ Computer
Definition gui_input_enums.h:339
@ Oper
Definition gui_input_enums.h:310
@ ACSearch
Definition gui_input_enums.h:341
@ Period
Definition gui_input_enums.h:127
@ KeyPadDecimal
Definition gui_input_enums.h:270
@ KeyPadComma
Definition gui_input_enums.h:228
@ Return2
Definition gui_input_enums.h:307
@ KeyPadMemrecall
Definition gui_input_enums.h:259
@ Undo
Definition gui_input_enums.h:293
@ Less
Definition gui_input_enums.h:141
@ F6
Definition gui_input_enums.h:187
@ KeyU
Definition gui_input_enums.h:173
@ KeyPadClearentry
Definition gui_input_enums.h:267
@ AudioRewind
Definition gui_input_enums.h:360
@ KeyPadLess
Definition gui_input_enums.h:247
@ KeyPad8
Definition gui_input_enums.h:223
@ Backquote
Definition gui_input_enums.h:152
@ Sleep
Definition gui_input_enums.h:356
@ F14
Definition gui_input_enums.h:276
@ Up
Definition gui_input_enums.h:207
@ App1
Definition gui_input_enums.h:357
@ KeyPad0
Definition gui_input_enums.h:225
@ RightParen
Definition gui_input_enums.h:122
@ Key9
Definition gui_input_enums.h:138
@ DoubleQuote
Definition gui_input_enums.h:115
@ KeyPadPlus
Definition gui_input_enums.h:214
@ RightShift
Definition gui_input_enums.h:324
@ Plus
Definition gui_input_enums.h:124
@ Slash
Definition gui_input_enums.h:128
@ Paste
Definition gui_input_enums.h:296
@ Underscore
Definition gui_input_enums.h:151
@ F5
Definition gui_input_enums.h:186
@ KeyPad7
Definition gui_input_enums.h:222
@ Colon
Definition gui_input_enums.h:139
@ Key3
Definition gui_input_enums.h:132
@ Execute
Definition gui_input_enums.h:287
@ KeyPadGreater
Definition gui_input_enums.h:248
@ ACForward
Definition gui_input_enums.h:344
@ Key7
Definition gui_input_enums.h:136
@ Ampersand
Definition gui_input_enums.h:119
@ EndCall
Definition gui_input_enums.h:366
@ Minus
Definition gui_input_enums.h:126
@ AudioPlay
Definition gui_input_enums.h:333
@ RightBracket
Definition gui_input_enums.h:149
@ KeyPadMemdivide
Definition gui_input_enums.h:264
@ KeyPadEqualsAs400
Definition gui_input_enums.h:229
@ F7
Definition gui_input_enums.h:188
@ ThousandsSeparator
Definition gui_input_enums.h:315
@ F8
Definition gui_input_enums.h:189
@ KeyP
Definition gui_input_enums.h:168
@ LeftBracket
Definition gui_input_enums.h:147
@ KeyPadDoubleAmpersand
Definition gui_input_enums.h:250
@ KeyPadBackspace
Definition gui_input_enums.h:237
@ F3
Definition gui_input_enums.h:184
@ Sysreq
Definition gui_input_enums.h:303
@ Find
Definition gui_input_enums.h:297
@ KeyPadB
Definition gui_input_enums.h:239
@ Mail
Definition gui_input_enums.h:337
@ Dollar
Definition gui_input_enums.h:118
@ App2
Definition gui_input_enums.h:358
@ KeyS
Definition gui_input_enums.h:171
@ DecimalSeparator
Definition gui_input_enums.h:316
@ KeyJ
Definition gui_input_enums.h:162
@ KeyPadPercent
Definition gui_input_enums.h:246
@ RightCommand
Definition gui_input_enums.h:326
@ KeyPadE
Definition gui_input_enums.h:242
@ KeyG
Definition gui_input_enums.h:159
@ F16
Definition gui_input_enums.h:278
@ Exclaim
Definition gui_input_enums.h:114
@ Comma
Definition gui_input_enums.h:125
@ Tab
Definition gui_input_enums.h:112
@ KeyE
Definition gui_input_enums.h:157
@ KeyPadMemmultiply
Definition gui_input_enums.h:263
@ Copy
Definition gui_input_enums.h:295
@ KeyN
Definition gui_input_enums.h:166
@ LeftControl
Definition gui_input_enums.h:319
@ F11
Definition gui_input_enums.h:192
@ KeyL
Definition gui_input_enums.h:164
@ Mode
Definition gui_input_enums.h:328
@ KeyPad5
Definition gui_input_enums.h:220
@ KeyA
Definition gui_input_enums.h:153
@ Key8
Definition gui_input_enums.h:137
@ Help
Definition gui_input_enums.h:288
@ Crsel
Definition gui_input_enums.h:312
@ BrightnessUp
Definition gui_input_enums.h:350
@ AudioNext
Definition gui_input_enums.h:330
@ KeyPadColon
Definition gui_input_enums.h:253
@ KeyPadMemstore
Definition gui_input_enums.h:258
@ KeyPad000
Definition gui_input_enums.h:231
@ KeyPadSpace
Definition gui_input_enums.h:255
@ F21
Definition gui_input_enums.h:283
@ WWW
Definition gui_input_enums.h:336
@ KeyF
Definition gui_input_enums.h:158
@ Out
Definition gui_input_enums.h:309
@ KeyO
Definition gui_input_enums.h:167
@ AudioPrev
Definition gui_input_enums.h:331
@ F22
Definition gui_input_enums.h:284
@ KeyboardIlluminationDown
Definition gui_input_enums.h:353
@ F18
Definition gui_input_enums.h:280
@ Clearagain
Definition gui_input_enums.h:311
@ KeyPadBinary
Definition gui_input_enums.h:268
@ Key5
Definition gui_input_enums.h:134
@ RightControl
Definition gui_input_enums.h:323
@ KeyPadRightBrace
Definition gui_input_enums.h:235
@ NUMLOCKCLEAR
Definition gui_input_enums.h:209
@ End
Definition gui_input_enums.h:202
@ Greater
Definition gui_input_enums.h:143
@ F23
Definition gui_input_enums.h:285
@ F9
Definition gui_input_enums.h:190
@ Home
Definition gui_input_enums.h:199
@ LeftCommand
Definition gui_input_enums.h:322
@ ACBookmarks
Definition gui_input_enums.h:347
@ KeyPadF
Definition gui_input_enums.h:243
@ KeyB
Definition gui_input_enums.h:154
@ KeyZ
Definition gui_input_enums.h:178
@ KeyboardIlluminationUp
Definition gui_input_enums.h:354
@ F13
Definition gui_input_enums.h:275
@ KeyPadHash
Definition gui_input_enums.h:254
@ KeyPad00
Definition gui_input_enums.h:230
@ LeftAlt
Definition gui_input_enums.h:321
@ KeyPadDoubleVerticalbar
Definition gui_input_enums.h:252
@ KeyPadAmpersand
Definition gui_input_enums.h:249
@ Semicolon
Definition gui_input_enums.h:140
@ LeftShift
Definition gui_input_enums.h:320
@ Return
Definition gui_input_enums.h:109
@ KeyQ
Definition gui_input_enums.h:169
@ KeyT
Definition gui_input_enums.h:172
@ KeyX
Definition gui_input_enums.h:176
@ ACRefresh
Definition gui_input_enums.h:346
@ PageUp
Definition gui_input_enums.h:200
@ Volumeup
Definition gui_input_enums.h:299
@ KeyPad1
Definition gui_input_enums.h:216
@ DisplaySwitch
Definition gui_input_enums.h:351
@ Asterisk
Definition gui_input_enums.h:123
@ CurrencyUnit
Definition gui_input_enums.h:317
@ SoftLeft
Definition gui_input_enums.h:363
@ KeyW
Definition gui_input_enums.h:175
@ Key6
Definition gui_input_enums.h:135
@ Insert
Definition gui_input_enums.h:198
@ KeyPadTab
Definition gui_input_enums.h:236
@ Question
Definition gui_input_enums.h:144
@ KeyPadEnter
Definition gui_input_enums.h:215
@ Percent
Definition gui_input_enums.h:117
@ KeyPadLeftParen
Definition gui_input_enums.h:232
@ Key0
Definition gui_input_enums.h:129
@ ACStop
Definition gui_input_enums.h:345
@ F10
Definition gui_input_enums.h:191
@ Capslock
Definition gui_input_enums.h:180
@ Menu
Definition gui_input_enums.h:289
@ Eject
Definition gui_input_enums.h:355
@ KeyPadAt
Definition gui_input_enums.h:256
@ BrightnessDown
Definition gui_input_enums.h:349
@ KeyPad9
Definition gui_input_enums.h:224
@ Printscreen
Definition gui_input_enums.h:195
@ Alterase
Definition gui_input_enums.h:302
@ KeyPadMemclear
Definition gui_input_enums.h:260
@ Key2
Definition gui_input_enums.h:131
@ Call
Definition gui_input_enums.h:365
@ KeyM
Definition gui_input_enums.h:165
@ Quote
Definition gui_input_enums.h:120
@ SoftRight
Definition gui_input_enums.h:364
@ KeyPadA
Definition gui_input_enums.h:238
@ ACHome
Definition gui_input_enums.h:342
@ Calculator
Definition gui_input_enums.h:338
@ AudioMute
Definition gui_input_enums.h:334
@ F19
Definition gui_input_enums.h:281
@ Backspace
Definition gui_input_enums.h:111
@ KeyPadRightParen
Definition gui_input_enums.h:233
@ Caret
Definition gui_input_enums.h:150
@ KeyPadPlusminus
Definition gui_input_enums.h:265
@ KeyPadEquals
Definition gui_input_enums.h:227
@ KeyPadMemsubtract
Definition gui_input_enums.h:262
@ AudioStop
Definition gui_input_enums.h:332
@ Space
Definition gui_input_enums.h:113
@ KeyPadPower
Definition gui_input_enums.h:245
@ Volumedown
Definition gui_input_enums.h:300
@ KeyboardIlluminationToggle
Definition gui_input_enums.h:352
@ RightAlt
Definition gui_input_enums.h:325
@ Clear
Definition gui_input_enums.h:305
@ At
Definition gui_input_enums.h:145
@ Scrolllock
Definition gui_input_enums.h:196
@ KeyPadClear
Definition gui_input_enums.h:266
@ KeyPad3
Definition gui_input_enums.h:218
@ Power
Definition gui_input_enums.h:274
@ KeyV
Definition gui_input_enums.h:174
@ AudioFastforward
Definition gui_input_enums.h:361
@ MediaSelect
Definition gui_input_enums.h:335
@ KeyH
Definition gui_input_enums.h:160
@ Select
Definition gui_input_enums.h:290
@ Key4
Definition gui_input_enums.h:133
@ F1
Definition gui_input_enums.h:182
@ ACBack
Definition gui_input_enums.h:343
@ Prior
Definition gui_input_enums.h:306
@ F15
Definition gui_input_enums.h:277
@ F4
Definition gui_input_enums.h:185
@ F12
Definition gui_input_enums.h:193
@ Cancel
Definition gui_input_enums.h:304
@ KeyK
Definition gui_input_enums.h:163
@ Cut
Definition gui_input_enums.h:294
@ KeyPad4
Definition gui_input_enums.h:219
@ F24
Definition gui_input_enums.h:286
@ KeyC
Definition gui_input_enums.h:155
@ PageDown
Definition gui_input_enums.h:203
@ KeyPadMultiply
Definition gui_input_enums.h:212
@ LeftParen
Definition gui_input_enums.h:121
@ KeyPadDivide
Definition gui_input_enums.h:211
@ KeyPadMemadd
Definition gui_input_enums.h:261
@ Delete
Definition gui_input_enums.h:201
@ KeyD
Definition gui_input_enums.h:156
@ KeyPadVerticalbar
Definition gui_input_enums.h:251
@ Key1
Definition gui_input_enums.h:130
@ Backslash
Definition gui_input_enums.h:148
@ KeyR
Definition gui_input_enums.h:170
@ F20
Definition gui_input_enums.h:282
@ Exsel
Definition gui_input_enums.h:313
@ F2
Definition gui_input_enums.h:183
@ KeyPadOctal
Definition gui_input_enums.h:269
@ KeyPadPeriod
Definition gui_input_enums.h:226
@ F17
Definition gui_input_enums.h:279
@ LabelDragBegin
label -> control: drag starting; state.scroll.x = 0
Definition gui_input_enums.h:89
@ LabelDrag
label -> control: drag in progress; state.scroll.x = pixels moved since the start
Definition gui_input_enums.h:91
@ FileDragOver
Files or text from another application are dragged over the element: return true to take them.
Definition gui_input_enums.h:97
@ Drop
Definition gui_input_enums.h:87
@ DragEnter
Definition gui_input_enums.h:84
@ LabelDragEnd
label -> control: drag committed
Definition gui_input_enums.h:92
@ DragOut
Definition gui_input_enums.h:86
@ MouseScroll
Definition gui_input_enums.h:80
@ DragOver
Definition gui_input_enums.h:85
@ TextInput
Definition gui_input_enums.h:83
@ LabelDragCancel
label -> control: drag cancelled (Escape)
Definition gui_input_enums.h:93
@ MouseMove
Definition gui_input_enums.h:77
@ KeyUp
Definition gui_input_enums.h:52
@ KeyChar
Definition gui_input_enums.h:53
@ KeyDown
Definition gui_input_enums.h:51
@ Option
Definition gui_input_enums.h:31
@ Shift
Definition gui_input_enums.h:28
@ Control
Definition gui_input_enums.h:29
@ Alt
Definition gui_input_enums.h:30
@ Command
Definition gui_input_enums.h:32
@ File
dropped: one of its files, the path in data
Definition gui_input_enums.h:68
@ Begin
a drag came over the window
Definition gui_input_enums.h:66
@ Move
it's at screenPos
Definition gui_input_enums.h:67
@ Text
dropped: text, in data
Definition gui_input_enums.h:69
@ Complete
it's over: after a drop's files and text, or it left the window
Definition gui_input_enums.h:70
@ X2
Definition gui_input_enums.h:44
@ Right
Definition gui_input_enums.h:42
@ Left
Definition gui_input_enums.h:40
@ Middle
Definition gui_input_enums.h:41
@ X1
Definition gui_input_enums.h:43
@ MouseUp
Definition gui_input_enums.h:60
@ MouseDown
Definition gui_input_enums.h:59
#define TACHYON_ENUM_OPERATORS(EnumType)
Definition gui_enum_operators.h:6
Definition gui_hash.h:12
Definition gui_logging.h:24
Files or text dropped from another application.
Definition gui_input_state.h:70