417 lines
10 KiB
C++
417 lines
10 KiB
C++
/**************************************************************************/
|
|
/* display_server_enums.h */
|
|
/**************************************************************************/
|
|
/* This file is part of: */
|
|
/* GODOT ENGINE */
|
|
/* https://godotengine.org */
|
|
/**************************************************************************/
|
|
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
|
|
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
|
|
/* */
|
|
/* Permission is hereby granted, free of charge, to any person obtaining */
|
|
/* a copy of this software and associated documentation files (the */
|
|
/* "Software"), to deal in the Software without restriction, including */
|
|
/* without limitation the rights to use, copy, modify, merge, publish, */
|
|
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
|
/* permit persons to whom the Software is furnished to do so, subject to */
|
|
/* the following conditions: */
|
|
/* */
|
|
/* The above copyright notice and this permission notice shall be */
|
|
/* included in all copies or substantial portions of the Software. */
|
|
/* */
|
|
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
|
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
|
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
|
|
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
|
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
|
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
|
/**************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
namespace DisplayServerEnums {
|
|
|
|
/* MAIN */
|
|
|
|
enum Context {
|
|
CONTEXT_EDITOR,
|
|
CONTEXT_PROJECTMAN,
|
|
CONTEXT_ENGINE,
|
|
};
|
|
|
|
enum Feature {
|
|
#ifndef DISABLE_DEPRECATED
|
|
FEATURE_GLOBAL_MENU,
|
|
#endif
|
|
FEATURE_SUBWINDOWS,
|
|
FEATURE_TOUCHSCREEN,
|
|
FEATURE_MOUSE,
|
|
FEATURE_MOUSE_WARP,
|
|
FEATURE_CLIPBOARD,
|
|
FEATURE_VIRTUAL_KEYBOARD,
|
|
FEATURE_CURSOR_SHAPE,
|
|
FEATURE_CUSTOM_CURSOR_SHAPE,
|
|
FEATURE_NATIVE_DIALOG,
|
|
FEATURE_IME,
|
|
FEATURE_WINDOW_TRANSPARENCY,
|
|
FEATURE_HIDPI,
|
|
FEATURE_ICON,
|
|
FEATURE_NATIVE_ICON,
|
|
FEATURE_ORIENTATION,
|
|
FEATURE_SWAP_BUFFERS,
|
|
FEATURE_KEEP_SCREEN_ON,
|
|
FEATURE_CLIPBOARD_PRIMARY,
|
|
FEATURE_TEXT_TO_SPEECH,
|
|
FEATURE_EXTEND_TO_TITLE,
|
|
FEATURE_SCREEN_CAPTURE,
|
|
FEATURE_STATUS_INDICATOR,
|
|
FEATURE_NATIVE_HELP,
|
|
FEATURE_NATIVE_DIALOG_INPUT,
|
|
FEATURE_NATIVE_DIALOG_FILE,
|
|
FEATURE_NATIVE_DIALOG_FILE_EXTRA,
|
|
FEATURE_WINDOW_DRAG,
|
|
FEATURE_SCREEN_EXCLUDE_FROM_CAPTURE,
|
|
FEATURE_WINDOW_EMBEDDING,
|
|
FEATURE_NATIVE_DIALOG_FILE_MIME,
|
|
FEATURE_EMOJI_AND_SYMBOL_PICKER,
|
|
FEATURE_NATIVE_COLOR_PICKER,
|
|
FEATURE_SELF_FITTING_WINDOWS,
|
|
FEATURE_ACCESSIBILITY_SCREEN_READER,
|
|
FEATURE_HDR_OUTPUT,
|
|
FEATURE_PIP_MODE,
|
|
};
|
|
|
|
/* RENDERING DEVICE */
|
|
|
|
enum RenderingDeviceCreationStatus {
|
|
UNKNOWN,
|
|
SUCCESS,
|
|
FAILURE,
|
|
};
|
|
|
|
/* TTS */
|
|
|
|
enum TTSUtteranceEvent {
|
|
TTS_UTTERANCE_STARTED,
|
|
TTS_UTTERANCE_ENDED,
|
|
TTS_UTTERANCE_CANCELED,
|
|
TTS_UTTERANCE_BOUNDARY,
|
|
TTS_UTTERANCE_MAX,
|
|
};
|
|
|
|
/* MOUSE */
|
|
|
|
// Keep synced with InputClassEnums::MouseMode enum.
|
|
enum MouseMode {
|
|
MOUSE_MODE_VISIBLE, // Input::MouseMode::MOUSE_MODE_VISIBLE
|
|
MOUSE_MODE_HIDDEN, // Input::MouseMode::MOUSE_MODE_HIDDEN
|
|
MOUSE_MODE_CAPTURED, // Input::MouseMode::MOUSE_MODE_CAPTURED
|
|
MOUSE_MODE_CONFINED, // Input::MouseMode::MOUSE_MODE_CONFINED
|
|
MOUSE_MODE_CONFINED_HIDDEN, // Input::MouseMode::MOUSE_MODE_CONFINED_HIDDEN
|
|
MOUSE_MODE_MAX, // Input::MouseMode::MOUSE_MODE_MAX
|
|
};
|
|
|
|
// Keep synced with InputClassEnums and Control enums.
|
|
#undef CursorShape
|
|
enum CursorShape {
|
|
CURSOR_ARROW,
|
|
CURSOR_IBEAM,
|
|
CURSOR_POINTING_HAND,
|
|
CURSOR_CROSS,
|
|
CURSOR_WAIT,
|
|
CURSOR_BUSY,
|
|
CURSOR_DRAG,
|
|
CURSOR_CAN_DROP,
|
|
CURSOR_FORBIDDEN,
|
|
CURSOR_VSIZE,
|
|
CURSOR_HSIZE,
|
|
CURSOR_BDIAGSIZE,
|
|
CURSOR_FDIAGSIZE,
|
|
CURSOR_MOVE,
|
|
CURSOR_VSPLIT,
|
|
CURSOR_HSPLIT,
|
|
CURSOR_HELP,
|
|
CURSOR_MAX
|
|
};
|
|
|
|
/* KEYBOARD */
|
|
|
|
// Keep synced with LineEdit::VirtualKeyboardType enum.
|
|
enum VirtualKeyboardType {
|
|
KEYBOARD_TYPE_DEFAULT,
|
|
KEYBOARD_TYPE_MULTILINE,
|
|
KEYBOARD_TYPE_NUMBER,
|
|
KEYBOARD_TYPE_NUMBER_DECIMAL,
|
|
KEYBOARD_TYPE_PHONE,
|
|
KEYBOARD_TYPE_EMAIL_ADDRESS,
|
|
KEYBOARD_TYPE_PASSWORD,
|
|
KEYBOARD_TYPE_URL
|
|
};
|
|
|
|
/* SCREEN */
|
|
|
|
// Keep synced with EditorSettings::InitialScreen enum.
|
|
enum {
|
|
INVALID_SCREEN = -1,
|
|
SCREEN_WITH_MOUSE_FOCUS = -4,
|
|
SCREEN_WITH_KEYBOARD_FOCUS = -3,
|
|
SCREEN_PRIMARY = -2,
|
|
SCREEN_OF_MAIN_WINDOW = -1, // Note: for the main window, determine screen from position.
|
|
};
|
|
|
|
// Keep the ScreenOrientation enum values in sync with the `display/window/handheld/orientation`
|
|
// project setting hint.
|
|
enum ScreenOrientation {
|
|
SCREEN_LANDSCAPE,
|
|
SCREEN_PORTRAIT,
|
|
SCREEN_REVERSE_LANDSCAPE,
|
|
SCREEN_REVERSE_PORTRAIT,
|
|
SCREEN_SENSOR_LANDSCAPE,
|
|
SCREEN_SENSOR_PORTRAIT,
|
|
SCREEN_SENSOR,
|
|
};
|
|
|
|
/* WINDOW */
|
|
|
|
typedef int WindowID;
|
|
|
|
enum {
|
|
MAIN_WINDOW_ID = 0,
|
|
INVALID_WINDOW_ID = -1,
|
|
INVALID_INDICATOR_ID = -1
|
|
};
|
|
|
|
enum HandleType {
|
|
DISPLAY_HANDLE,
|
|
WINDOW_HANDLE,
|
|
WINDOW_VIEW,
|
|
OPENGL_CONTEXT,
|
|
EGL_DISPLAY,
|
|
EGL_CONFIG,
|
|
GLX_VISUALID,
|
|
GLX_FBCONFIG,
|
|
};
|
|
|
|
enum WindowMode {
|
|
WINDOW_MODE_WINDOWED,
|
|
WINDOW_MODE_MINIMIZED,
|
|
WINDOW_MODE_MAXIMIZED,
|
|
WINDOW_MODE_FULLSCREEN,
|
|
WINDOW_MODE_EXCLUSIVE_FULLSCREEN,
|
|
};
|
|
|
|
enum WindowFlags {
|
|
WINDOW_FLAG_RESIZE_DISABLED,
|
|
WINDOW_FLAG_BORDERLESS,
|
|
WINDOW_FLAG_ALWAYS_ON_TOP,
|
|
WINDOW_FLAG_TRANSPARENT,
|
|
WINDOW_FLAG_NO_FOCUS,
|
|
WINDOW_FLAG_POPUP,
|
|
WINDOW_FLAG_EXTEND_TO_TITLE,
|
|
WINDOW_FLAG_MOUSE_PASSTHROUGH,
|
|
WINDOW_FLAG_SHARP_CORNERS,
|
|
WINDOW_FLAG_EXCLUDE_FROM_CAPTURE,
|
|
WINDOW_FLAG_POPUP_WM_HINT,
|
|
WINDOW_FLAG_MINIMIZE_DISABLED,
|
|
WINDOW_FLAG_MAXIMIZE_DISABLED,
|
|
WINDOW_FLAG_MAX,
|
|
};
|
|
|
|
// Separate enum otherwise we get warnings in switches not handling all values.
|
|
enum WindowFlagsBit {
|
|
WINDOW_FLAG_RESIZE_DISABLED_BIT = (1 << WINDOW_FLAG_RESIZE_DISABLED),
|
|
WINDOW_FLAG_BORDERLESS_BIT = (1 << WINDOW_FLAG_BORDERLESS),
|
|
WINDOW_FLAG_ALWAYS_ON_TOP_BIT = (1 << WINDOW_FLAG_ALWAYS_ON_TOP),
|
|
WINDOW_FLAG_TRANSPARENT_BIT = (1 << WINDOW_FLAG_TRANSPARENT),
|
|
WINDOW_FLAG_NO_FOCUS_BIT = (1 << WINDOW_FLAG_NO_FOCUS),
|
|
WINDOW_FLAG_POPUP_BIT = (1 << WINDOW_FLAG_POPUP),
|
|
WINDOW_FLAG_EXTEND_TO_TITLE_BIT = (1 << WINDOW_FLAG_EXTEND_TO_TITLE),
|
|
WINDOW_FLAG_MOUSE_PASSTHROUGH_BIT = (1 << WINDOW_FLAG_MOUSE_PASSTHROUGH),
|
|
WINDOW_FLAG_SHARP_CORNERS_BIT = (1 << WINDOW_FLAG_SHARP_CORNERS),
|
|
WINDOW_FLAG_EXCLUDE_FROM_CAPTURE_BIT = (1 << WINDOW_FLAG_EXCLUDE_FROM_CAPTURE),
|
|
WINDOW_FLAG_POPUP_WM_HINT_BIT = (1 << WINDOW_FLAG_POPUP_WM_HINT),
|
|
WINDOW_FLAG_MINIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MINIMIZE_DISABLED),
|
|
WINDOW_FLAG_MAXIMIZE_DISABLED_BIT = (1 << WINDOW_FLAG_MAXIMIZE_DISABLED),
|
|
};
|
|
|
|
enum WindowEvent {
|
|
WINDOW_EVENT_MOUSE_ENTER,
|
|
WINDOW_EVENT_MOUSE_EXIT,
|
|
WINDOW_EVENT_FOCUS_IN,
|
|
WINDOW_EVENT_FOCUS_OUT,
|
|
WINDOW_EVENT_CLOSE_REQUEST,
|
|
WINDOW_EVENT_GO_BACK_REQUEST,
|
|
WINDOW_EVENT_DPI_CHANGE,
|
|
WINDOW_EVENT_TITLEBAR_CHANGE,
|
|
WINDOW_EVENT_FORCE_CLOSE,
|
|
};
|
|
|
|
enum WindowResizeEdge {
|
|
WINDOW_EDGE_TOP_LEFT,
|
|
WINDOW_EDGE_TOP,
|
|
WINDOW_EDGE_TOP_RIGHT,
|
|
WINDOW_EDGE_LEFT,
|
|
WINDOW_EDGE_RIGHT,
|
|
WINDOW_EDGE_BOTTOM_LEFT,
|
|
WINDOW_EDGE_BOTTOM,
|
|
WINDOW_EDGE_BOTTOM_RIGHT,
|
|
WINDOW_EDGE_MAX,
|
|
};
|
|
|
|
// Keep the VSyncMode enum values in sync with the `display/window/vsync/vsync_mode`
|
|
// project setting hint.
|
|
enum VSyncMode {
|
|
VSYNC_DISABLED,
|
|
VSYNC_ENABLED,
|
|
VSYNC_ADAPTIVE,
|
|
VSYNC_MAILBOX
|
|
};
|
|
|
|
enum ProgressState {
|
|
PROGRESS_STATE_NOPROGRESS,
|
|
PROGRESS_STATE_INDETERMINATE,
|
|
PROGRESS_STATE_NORMAL,
|
|
PROGRESS_STATE_ERROR,
|
|
PROGRESS_STATE_PAUSED,
|
|
};
|
|
|
|
/* DIALOGS */
|
|
|
|
enum FileDialogMode {
|
|
FILE_DIALOG_MODE_OPEN_FILE,
|
|
FILE_DIALOG_MODE_OPEN_FILES,
|
|
FILE_DIALOG_MODE_OPEN_DIR,
|
|
FILE_DIALOG_MODE_OPEN_ANY,
|
|
FILE_DIALOG_MODE_SAVE_FILE,
|
|
FILE_DIALOG_MODE_SAVE_MAX
|
|
};
|
|
|
|
/* STATUS INDICATOR */
|
|
|
|
typedef int IndicatorID;
|
|
|
|
#ifndef DISABLE_DEPRECATED
|
|
|
|
/* ACCESSIBILITY */
|
|
|
|
enum AccessibilityRole {
|
|
ROLE_UNKNOWN,
|
|
ROLE_DEFAULT_BUTTON,
|
|
ROLE_AUDIO,
|
|
ROLE_VIDEO,
|
|
ROLE_STATIC_TEXT,
|
|
ROLE_CONTAINER,
|
|
ROLE_PANEL,
|
|
ROLE_BUTTON,
|
|
ROLE_LINK,
|
|
ROLE_CHECK_BOX,
|
|
ROLE_RADIO_BUTTON,
|
|
ROLE_CHECK_BUTTON,
|
|
ROLE_SCROLL_BAR,
|
|
ROLE_SCROLL_VIEW,
|
|
ROLE_SPLITTER,
|
|
ROLE_SLIDER,
|
|
ROLE_SPIN_BUTTON,
|
|
ROLE_PROGRESS_INDICATOR,
|
|
ROLE_TEXT_FIELD,
|
|
ROLE_MULTILINE_TEXT_FIELD,
|
|
ROLE_COLOR_PICKER,
|
|
ROLE_TABLE,
|
|
ROLE_CELL,
|
|
ROLE_ROW,
|
|
ROLE_ROW_GROUP,
|
|
ROLE_ROW_HEADER,
|
|
ROLE_COLUMN_HEADER,
|
|
ROLE_TREE,
|
|
ROLE_TREE_ITEM,
|
|
ROLE_LIST,
|
|
ROLE_LIST_ITEM,
|
|
ROLE_LIST_BOX,
|
|
ROLE_LIST_BOX_OPTION,
|
|
ROLE_TAB_BAR,
|
|
ROLE_TAB,
|
|
ROLE_TAB_PANEL,
|
|
ROLE_MENU_BAR,
|
|
ROLE_MENU,
|
|
ROLE_MENU_ITEM,
|
|
ROLE_MENU_ITEM_CHECK_BOX,
|
|
ROLE_MENU_ITEM_RADIO,
|
|
ROLE_IMAGE,
|
|
ROLE_WINDOW,
|
|
ROLE_TITLE_BAR,
|
|
ROLE_DIALOG,
|
|
ROLE_TOOLTIP,
|
|
ROLE_REGION,
|
|
ROLE_TEXT_RUN,
|
|
};
|
|
|
|
enum AccessibilityPopupType {
|
|
POPUP_MENU,
|
|
POPUP_LIST,
|
|
POPUP_TREE,
|
|
POPUP_DIALOG,
|
|
};
|
|
|
|
enum AccessibilityFlags {
|
|
FLAG_HIDDEN,
|
|
FLAG_MULTISELECTABLE,
|
|
FLAG_REQUIRED,
|
|
FLAG_VISITED,
|
|
FLAG_BUSY,
|
|
FLAG_MODAL,
|
|
FLAG_TOUCH_PASSTHROUGH,
|
|
FLAG_READONLY,
|
|
FLAG_DISABLED,
|
|
FLAG_CLIPS_CHILDREN,
|
|
};
|
|
|
|
enum AccessibilityAction {
|
|
ACTION_CLICK,
|
|
ACTION_FOCUS,
|
|
ACTION_BLUR,
|
|
ACTION_COLLAPSE,
|
|
ACTION_EXPAND,
|
|
ACTION_DECREMENT,
|
|
ACTION_INCREMENT,
|
|
ACTION_HIDE_TOOLTIP,
|
|
ACTION_SHOW_TOOLTIP,
|
|
ACTION_SET_TEXT_SELECTION,
|
|
ACTION_REPLACE_SELECTED_TEXT,
|
|
ACTION_SCROLL_BACKWARD,
|
|
ACTION_SCROLL_DOWN,
|
|
ACTION_SCROLL_FORWARD,
|
|
ACTION_SCROLL_LEFT,
|
|
ACTION_SCROLL_RIGHT,
|
|
ACTION_SCROLL_UP,
|
|
ACTION_SCROLL_INTO_VIEW,
|
|
ACTION_SCROLL_TO_POINT,
|
|
ACTION_SET_SCROLL_OFFSET,
|
|
ACTION_SET_VALUE,
|
|
ACTION_SHOW_CONTEXT_MENU,
|
|
ACTION_CUSTOM,
|
|
};
|
|
|
|
enum AccessibilityLiveMode {
|
|
LIVE_OFF,
|
|
LIVE_POLITE,
|
|
LIVE_ASSERTIVE,
|
|
};
|
|
|
|
enum AccessibilityScrollUnit {
|
|
SCROLL_UNIT_ITEM,
|
|
SCROLL_UNIT_PAGE,
|
|
};
|
|
|
|
enum AccessibilityScrollHint {
|
|
SCROLL_HINT_TOP_LEFT,
|
|
SCROLL_HINT_BOTTOM_RIGHT,
|
|
SCROLL_HINT_TOP_EDGE,
|
|
SCROLL_HINT_BOTTOM_EDGE,
|
|
SCROLL_HINT_LEFT_EDGE,
|
|
SCROLL_HINT_RIGHT_EDGE,
|
|
};
|
|
|
|
#endif // DISABLE_DEPRECATED
|
|
|
|
} // namespace DisplayServerEnums
|