Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/servers/display/display_server_enums.h
45987 views
1
/**************************************************************************/
2
/* display_server_enums.h */
3
/**************************************************************************/
4
/* This file is part of: */
5
/* GODOT ENGINE */
6
/* https://godotengine.org */
7
/**************************************************************************/
8
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
9
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
10
/* */
11
/* Permission is hereby granted, free of charge, to any person obtaining */
12
/* a copy of this software and associated documentation files (the */
13
/* "Software"), to deal in the Software without restriction, including */
14
/* without limitation the rights to use, copy, modify, merge, publish, */
15
/* distribute, sublicense, and/or sell copies of the Software, and to */
16
/* permit persons to whom the Software is furnished to do so, subject to */
17
/* the following conditions: */
18
/* */
19
/* The above copyright notice and this permission notice shall be */
20
/* included in all copies or substantial portions of the Software. */
21
/* */
22
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
23
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
24
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
25
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
26
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
27
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
28
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
29
/**************************************************************************/
30
31
#pragma once
32
33
namespace DisplayServerEnums {
34
35
/* MAIN */
36
37
enum Context {
38
CONTEXT_EDITOR,
39
CONTEXT_PROJECTMAN,
40
CONTEXT_ENGINE,
41
};
42
43
enum Feature {
44
#ifndef DISABLE_DEPRECATED
45
FEATURE_GLOBAL_MENU,
46
#endif
47
FEATURE_SUBWINDOWS,
48
FEATURE_TOUCHSCREEN,
49
FEATURE_MOUSE,
50
FEATURE_MOUSE_WARP,
51
FEATURE_CLIPBOARD,
52
FEATURE_VIRTUAL_KEYBOARD,
53
FEATURE_CURSOR_SHAPE,
54
FEATURE_CUSTOM_CURSOR_SHAPE,
55
FEATURE_NATIVE_DIALOG,
56
FEATURE_IME,
57
FEATURE_WINDOW_TRANSPARENCY,
58
FEATURE_HIDPI,
59
FEATURE_ICON,
60
FEATURE_NATIVE_ICON,
61
FEATURE_ORIENTATION,
62
FEATURE_SWAP_BUFFERS,
63
FEATURE_KEEP_SCREEN_ON,
64
FEATURE_CLIPBOARD_PRIMARY,
65
FEATURE_TEXT_TO_SPEECH,
66
FEATURE_EXTEND_TO_TITLE,
67
FEATURE_SCREEN_CAPTURE,
68
FEATURE_STATUS_INDICATOR,
69
FEATURE_NATIVE_HELP,
70
FEATURE_NATIVE_DIALOG_INPUT,
71
FEATURE_NATIVE_DIALOG_FILE,
72
FEATURE_NATIVE_DIALOG_FILE_EXTRA,
73
FEATURE_WINDOW_DRAG,
74
FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE,
75
FEATURE_WINDOW_EMBEDDING,
76
FEATURE_NATIVE_DIALOG_FILE_MIME,
77
FEATURE_EMOJI_AND_SYMBOL_PICKER,
78
FEATURE_NATIVE_COLOR_PICKER,
79
FEATURE_SELF_FITTING_WINDOWS,
80
FEATURE_ACCESSIBILITY_SCREEN_READER,
81
FEATURE_HDR_OUTPUT,
82
FEATURE_PIP_MODE,
83
};
84
85
/* RENDERING DEVICE */
86
87
enum RenderingDeviceCreationStatus {
88
UNKNOWN,
89
SUCCESS,
90
FAILURE,
91
};
92
93
/* TTS */
94
95
enum TTSUtteranceEvent {
96
TTS_UTTERANCE_STARTED,
97
TTS_UTTERANCE_ENDED,
98
TTS_UTTERANCE_CANCELED,
99
TTS_UTTERANCE_BOUNDARY,
100
TTS_UTTERANCE_MAX,
101
};
102
103
/* MOUSE */
104
105
// Keep synced with InputClassEnums::MouseMode enum.
106
enum MouseMode {
107
MOUSE_MODE_VISIBLE, // Input::MouseMode::MOUSE_MODE_VISIBLE
108
MOUSE_MODE_HIDDEN, // Input::MouseMode::MOUSE_MODE_HIDDEN
109
MOUSE_MODE_CAPTURED, // Input::MouseMode::MOUSE_MODE_CAPTURED
110
MOUSE_MODE_CONFINED, // Input::MouseMode::MOUSE_MODE_CONFINED
111
MOUSE_MODE_CONFINED_HIDDEN, // Input::MouseMode::MOUSE_MODE_CONFINED_HIDDEN
112
MOUSE_MODE_MAX, // Input::MouseMode::MOUSE_MODE_MAX
113
};
114
115
// Keep synced with InputClassEnums and Control enums.
116
#undef CursorShape
117
enum CursorShape {
118
CURSOR_ARROW,
119
CURSOR_IBEAM,
120
CURSOR_POINTING_HAND,
121
CURSOR_CROSS,
122
CURSOR_WAIT,
123
CURSOR_BUSY,
124
CURSOR_DRAG,
125
CURSOR_CAN_DROP,
126
CURSOR_FORBIDDEN,
127
CURSOR_VSIZE,
128
CURSOR_HSIZE,
129
CURSOR_BDIAGSIZE,
130
CURSOR_FDIAGSIZE,
131
CURSOR_MOVE,
132
CURSOR_VSPLIT,
133
CURSOR_HSPLIT,
134
CURSOR_HELP,
135
CURSOR_MAX
136
};
137
138
/* KEYBOARD */
139
140
// Keep synced with LineEdit::VirtualKeyboardType enum.
141
enum VirtualKeyboardType {
142
KEYBOARD_TYPE_DEFAULT,
143
KEYBOARD_TYPE_MULTILINE,
144
KEYBOARD_TYPE_NUMBER,
145
KEYBOARD_TYPE_NUMBER_DECIMAL,
146
KEYBOARD_TYPE_PHONE,
147
KEYBOARD_TYPE_EMAIL_ADDRESS,
148
KEYBOARD_TYPE_PASSWORD,
149
KEYBOARD_TYPE_URL
150
};
151
152
/* SCREEN */
153
154
// Keep synced with EditorSettings::InitialScreen enum.
155
enum {
156
INVALID_SCREEN = -1,
157
SCREEN_WITH_MOUSE_FOCUS = -4,
158
SCREEN_WITH_KEYBOARD_FOCUS = -3,
159
SCREEN_PRIMARY = -2,
160
SCREEN_OF_MAIN_WINDOW = -1, // Note: for the main window, determine screen from position.
161
};
162
163
// Keep the ScreenOrientation enum values in sync with the `display/window/handheld/orientation`
164
// project setting hint.
165
enum ScreenOrientation {
166
SCREEN_LANDSCAPE,
167
SCREEN_PORTRAIT,
168
SCREEN_REVERSE_LANDSCAPE,
169
SCREEN_REVERSE_PORTRAIT,
170
SCREEN_SENSOR_LANDSCAPE,
171
SCREEN_SENSOR_PORTRAIT,
172
SCREEN_SENSOR,
173
};
174
175
/* WINDOW */
176
177
typedef int WindowID;
178
179
enum {
180
MAIN_WINDOW_ID = 0,
181
INVALID_WINDOW_ID = -1,
182
INVALID_INDICATOR_ID = -1
183
};
184
185
enum HandleType {
186
DISPLAY_HANDLE,
187
WINDOW_HANDLE,
188
WINDOW_VIEW,
189
OPENGL_CONTEXT,
190
EGL_DISPLAY,
191
EGL_CONFIG,
192
GLX_VISUALID,
193
GLX_FBCONFIG,
194
};
195
196
enum WindowMode {
197
WINDOW_MODE_WINDOWED,
198
WINDOW_MODE_MINIMIZED,
199
WINDOW_MODE_MAXIMIZED,
200
WINDOW_MODE_FULLSCREEN,
201
WINDOW_MODE_EXCLUSIVE_FULLSCREEN,
202
};
203
204
enum WindowFlags {
205
WINDOW_FLAG_RESIZE_DISABLED,
206
WINDOW_FLAG_BORDERLESS,
207
WINDOW_FLAG_ALWAYS_ON_TOP,
208
WINDOW_FLAG_TRANSPARENT,
209
WINDOW_FLAG_NO_FOCUS,
210
WINDOW_FLAG_POPUP,
211
WINDOW_FLAG_EXTEND_TO_TITLE,
212
WINDOW_FLAG_MOUSE_PASSTHROUGH,
213
WINDOW_FLAG_SHARP_CORNERS,
214
WINDOW_FLAG_EXCLUDE_FROM_CAPTURE,
215
WINDOW_FLAG_POPUP_WM_HINT,
216
WINDOW_FLAG_MINIMIZE_DISABLED,
217
WINDOW_FLAG_MAXIMIZE_DISABLED,
218
WINDOW_FLAG_MAX,
219
};
220
221
// Separate enum otherwise we get warnings in switches not handling all values.
222
enum WindowFlagsBit {
223
WINDOW_FLAG_RESIZE_DISABLED_BIT = (1 << WINDOW_FLAG_RESIZE_DISABLED),
224
WINDOW_FLAG_BORDERLESS_BIT = (1 << WINDOW_FLAG_BORDERLESS),
225
WINDOW_FLAG_ALWAYS_ON_TOP_BIT = (1 << WINDOW_FLAG_ALWAYS_ON_TOP),
226
WINDOW_FLAG_TRANSPARENT_BIT = (1 << WINDOW_FLAG_TRANSPARENT),
227
WINDOW_FLAG_NO_FOCUS_BIT = (1 << WINDOW_FLAG_NO_FOCUS),
228
WINDOW_FLAG_POPUP_BIT = (1 << WINDOW_FLAG_POPUP),
229
WINDOW_FLAG_EXTEND_TO_TITLE_BIT = (1 << WINDOW_FLAG_EXTEND_TO_TITLE),
230
WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT = (1 << WINDOW_FLAG_MOUSE_PASSTHROUGH),
231
WINDOW_FLAG_SHARP_CORNERS_BIT = (1 << WINDOW_FLAG_SHARP_CORNERS),
232
WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT = (1 << WINDOW_FLAG_EXCLUDE_FROM_CAPTURE),
233
WINDOW_FLAG_POPUP_WM_HINT_BIT = (1 << WINDOW_FLAG_POPUP_WM_HINT),
234
WINDOW_FLAG_MINIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MINIMIZE_DISABLED),
235
WINDOW_FLAG_MAXIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MAXIMIZE_DISABLED),
236
};
237
238
enum WindowEvent {
239
WINDOW_EVENT_MOUSE_ENTER,
240
WINDOW_EVENT_MOUSE_EXIT,
241
WINDOW_EVENT_FOCUS_IN,
242
WINDOW_EVENT_FOCUS_OUT,
243
WINDOW_EVENT_CLOSE_REQUEST,
244
WINDOW_EVENT_GO_BACK_REQUEST,
245
WINDOW_EVENT_DPI_CHANGE,
246
WINDOW_EVENT_TITLEBAR_CHANGE,
247
WINDOW_EVENT_FORCE_CLOSE,
248
};
249
250
enum WindowResizeEdge {
251
WINDOW_EDGE_TOP_LEFT,
252
WINDOW_EDGE_TOP,
253
WINDOW_EDGE_TOP_RIGHT,
254
WINDOW_EDGE_LEFT,
255
WINDOW_EDGE_RIGHT,
256
WINDOW_EDGE_BOTTOM_LEFT,
257
WINDOW_EDGE_BOTTOM,
258
WINDOW_EDGE_BOTTOM_RIGHT,
259
WINDOW_EDGE_MAX,
260
};
261
262
// Keep the VSyncMode enum values in sync with the `display/window/vsync/vsync_mode`
263
// project setting hint.
264
enum VSyncMode {
265
VSYNC_DISABLED,
266
VSYNC_ENABLED,
267
VSYNC_ADAPTIVE,
268
VSYNC_MAILBOX
269
};
270
271
enum ProgressState {
272
PROGRESS_STATE_NOPROGRESS,
273
PROGRESS_STATE_INDETERMINATE,
274
PROGRESS_STATE_NORMAL,
275
PROGRESS_STATE_ERROR,
276
PROGRESS_STATE_PAUSED,
277
};
278
279
/* DIALOGS */
280
281
enum FileDialogMode {
282
FILE_DIALOG_MODE_OPEN_FILE,
283
FILE_DIALOG_MODE_OPEN_FILES,
284
FILE_DIALOG_MODE_OPEN_DIR,
285
FILE_DIALOG_MODE_OPEN_ANY,
286
FILE_DIALOG_MODE_SAVE_FILE,
287
FILE_DIALOG_MODE_SAVE_MAX
288
};
289
290
/* STATUS INDICATOR */
291
292
typedef int IndicatorID;
293
294
#ifndef DISABLE_DEPRECATED
295
296
/* ACCESSIBILITY */
297
298
enum AccessibilityRole {
299
ROLE_UNKNOWN,
300
ROLE_DEFAULT_BUTTON,
301
ROLE_AUDIO,
302
ROLE_VIDEO,
303
ROLE_STATIC_TEXT,
304
ROLE_CONTAINER,
305
ROLE_PANEL,
306
ROLE_BUTTON,
307
ROLE_LINK,
308
ROLE_CHECK_BOX,
309
ROLE_RADIO_BUTTON,
310
ROLE_CHECK_BUTTON,
311
ROLE_SCROLL_BAR,
312
ROLE_SCROLL_VIEW,
313
ROLE_SPLITTER,
314
ROLE_SLIDER,
315
ROLE_SPIN_BUTTON,
316
ROLE_PROGRESS_INDICATOR,
317
ROLE_TEXT_FIELD,
318
ROLE_MULTILINE_TEXT_FIELD,
319
ROLE_COLOR_PICKER,
320
ROLE_TABLE,
321
ROLE_CELL,
322
ROLE_ROW,
323
ROLE_ROW_GROUP,
324
ROLE_ROW_HEADER,
325
ROLE_COLUMN_HEADER,
326
ROLE_TREE,
327
ROLE_TREE_ITEM,
328
ROLE_LIST,
329
ROLE_LIST_ITEM,
330
ROLE_LIST_BOX,
331
ROLE_LIST_BOX_OPTION,
332
ROLE_TAB_BAR,
333
ROLE_TAB,
334
ROLE_TAB_PANEL,
335
ROLE_MENU_BAR,
336
ROLE_MENU,
337
ROLE_MENU_ITEM,
338
ROLE_MENU_ITEM_CHECK_BOX,
339
ROLE_MENU_ITEM_RADIO,
340
ROLE_IMAGE,
341
ROLE_WINDOW,
342
ROLE_TITLE_BAR,
343
ROLE_DIALOG,
344
ROLE_TOOLTIP,
345
ROLE_REGION,
346
ROLE_TEXT_RUN,
347
};
348
349
enum AccessibilityPopupType {
350
POPUP_MENU,
351
POPUP_LIST,
352
POPUP_TREE,
353
POPUP_DIALOG,
354
};
355
356
enum AccessibilityFlags {
357
FLAG_HIDDEN,
358
FLAG_MULTISELECTABLE,
359
FLAG_REQUIRED,
360
FLAG_VISITED,
361
FLAG_BUSY,
362
FLAG_MODAL,
363
FLAG_TOUCH_PASSTHROUGH,
364
FLAG_READONLY,
365
FLAG_DISABLED,
366
FLAG_CLIPS_CHILDREN,
367
};
368
369
enum AccessibilityAction {
370
ACTION_CLICK,
371
ACTION_FOCUS,
372
ACTION_BLUR,
373
ACTION_COLLAPSE,
374
ACTION_EXPAND,
375
ACTION_DECREMENT,
376
ACTION_INCREMENT,
377
ACTION_HIDE_TOOLTIP,
378
ACTION_SHOW_TOOLTIP,
379
ACTION_SET_TEXT_SELECTION,
380
ACTION_REPLACE_SELECTED_TEXT,
381
ACTION_SCROLL_BACKWARD,
382
ACTION_SCROLL_DOWN,
383
ACTION_SCROLL_FORWARD,
384
ACTION_SCROLL_LEFT,
385
ACTION_SCROLL_RIGHT,
386
ACTION_SCROLL_UP,
387
ACTION_SCROLL_INTO_VIEW,
388
ACTION_SCROLL_TO_POINT,
389
ACTION_SET_SCROLL_OFFSET,
390
ACTION_SET_VALUE,
391
ACTION_SHOW_CONTEXT_MENU,
392
ACTION_CUSTOM,
393
};
394
395
enum AccessibilityLiveMode {
396
LIVE_OFF,
397
LIVE_POLITE,
398
LIVE_ASSERTIVE,
399
};
400
401
enum AccessibilityScrollUnit {
402
SCROLL_UNIT_ITEM,
403
SCROLL_UNIT_PAGE,
404
};
405
406
enum AccessibilityScrollHint {
407
SCROLL_HINT_TOP_LEFT,
408
SCROLL_HINT_BOTTOM_RIGHT,
409
SCROLL_HINT_TOP_EDGE,
410
SCROLL_HINT_BOTTOM_EDGE,
411
SCROLL_HINT_LEFT_EDGE,
412
SCROLL_HINT_RIGHT_EDGE,
413
};
414
415
#endif // DISABLE_DEPRECATED
416
417
} // namespace DisplayServerEnums
418
419