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