summaryrefslogtreecommitdiff
path: root/src/meta/meta-enums.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/meta/meta-enums.h')
-rw-r--r--src/meta/meta-enums.h392
1 files changed, 392 insertions, 0 deletions
diff --git a/src/meta/meta-enums.h b/src/meta/meta-enums.h
index 1cf9a91e0..c4125e1cd 100644
--- a/src/meta/meta-enums.h
+++ b/src/meta/meta-enums.h
@@ -28,6 +28,398 @@ typedef enum _MetaCompositorType
} MetaCompositorType;
/**
+ * MetaFrameFlags:
+ * @META_FRAME_ALLOWS_DELETE: frame allows delete
+ * @META_FRAME_ALLOWS_MENU: frame allows menu
+ * @META_FRAME_ALLOWS_MINIMIZE: frame allows minimize
+ * @META_FRAME_ALLOWS_MAXIMIZE: frame allows maximize
+ * @META_FRAME_ALLOWS_VERTICAL_RESIZE: frame allows vertical resize
+ * @META_FRAME_ALLOWS_HORIZONTAL_RESIZE: frame allows horizontal resize
+ * @META_FRAME_HAS_FOCUS: frame has focus
+ * @META_FRAME_SHADED: frame is shaded
+ * @META_FRAME_STUCK: frame is stuck
+ * @META_FRAME_MAXIMIZED: frame is maximized
+ * @META_FRAME_ALLOWS_SHADE: frame allows shade
+ * @META_FRAME_ALLOWS_MOVE: frame allows move
+ * @META_FRAME_FULLSCREEN: frame allows fullscreen
+ * @META_FRAME_ABOVE: frame is above
+ * @META_FRAME_TILED_LEFT: frame is tiled to the left
+ * @META_FRAME_TILED_RIGHT: frame is tiled to the right
+ */
+typedef enum
+{
+ META_FRAME_ALLOWS_DELETE = 1 << 0,
+ META_FRAME_ALLOWS_MENU = 1 << 1,
+ META_FRAME_ALLOWS_MINIMIZE = 1 << 2,
+ META_FRAME_ALLOWS_MAXIMIZE = 1 << 3,
+ META_FRAME_ALLOWS_VERTICAL_RESIZE = 1 << 4,
+ META_FRAME_ALLOWS_HORIZONTAL_RESIZE = 1 << 5,
+ META_FRAME_HAS_FOCUS = 1 << 6,
+ META_FRAME_SHADED = 1 << 7,
+ META_FRAME_STUCK = 1 << 8,
+ META_FRAME_MAXIMIZED = 1 << 9,
+ META_FRAME_ALLOWS_SHADE = 1 << 10,
+ META_FRAME_ALLOWS_MOVE = 1 << 11,
+ META_FRAME_FULLSCREEN = 1 << 12,
+ META_FRAME_ABOVE = 1 << 13,
+ META_FRAME_TILED_LEFT = 1 << 14,
+ META_FRAME_TILED_RIGHT = 1 << 15
+} MetaFrameFlags;
+
+/**
+ * MetaGrabOp:
+ * @META_GRAB_OP_NONE: None
+ * @META_GRAB_OP_MOVING: Moving with pointer
+ * @META_GRAB_OP_RESIZING_SE: Resizing SE with pointer
+ * @META_GRAB_OP_RESIZING_S: Resizing S with pointer
+ * @META_GRAB_OP_RESIZING_SW: Resizing SW with pointer
+ * @META_GRAB_OP_RESIZING_N: Resizing N with pointer
+ * @META_GRAB_OP_RESIZING_NE: Resizing NE with pointer
+ * @META_GRAB_OP_RESIZING_NW: Resizing NW with pointer
+ * @META_GRAB_OP_RESIZING_W: Resizing W with pointer
+ * @META_GRAB_OP_RESIZING_E: Resizing E with pointer
+ * @META_GRAB_OP_KEYBOARD_MOVING: Moving with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN: Resizing with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_S: Resizing S with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_N: Resizing N with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_W: Resizing W with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_E: Resizing E with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_SE: Resizing SE with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_NE: Resizing NE with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_SW: Resizing SW with keyboard
+ * @META_GRAB_OP_KEYBOARD_RESIZING_NW: Resizing NS with keyboard
+ */
+
+/* The lower 16 bits of the grab operation is its type.
+ *
+ * Window grab operations have the following layout:
+ *
+ * 0000 0000 | 0000 0011
+ * NSEW flags | type
+ *
+ * Flags contains whether the operation is a keyboard operation,
+ * and whether the keyboard operation is "unknown".
+ *
+ * The rest of the flags tell you which direction the resize is
+ * going in.
+ *
+ * If the directions field is 0000, then the operation is a move,
+ * not a resize.
+ */
+enum
+{
+ META_GRAB_OP_WINDOW_FLAG_KEYBOARD = 0x0100,
+ META_GRAB_OP_WINDOW_FLAG_UNKNOWN = 0x0200,
+ META_GRAB_OP_WINDOW_DIR_WEST = 0x1000,
+ META_GRAB_OP_WINDOW_DIR_EAST = 0x2000,
+ META_GRAB_OP_WINDOW_DIR_SOUTH = 0x4000,
+ META_GRAB_OP_WINDOW_DIR_NORTH = 0x8000,
+ META_GRAB_OP_WINDOW_DIR_MASK = 0xF000,
+
+ /* WGO = "window grab op". shorthand for below */
+ _WGO_K = META_GRAB_OP_WINDOW_FLAG_KEYBOARD,
+ _WGO_U = META_GRAB_OP_WINDOW_FLAG_UNKNOWN,
+ _WGO_W = META_GRAB_OP_WINDOW_DIR_WEST,
+ _WGO_E = META_GRAB_OP_WINDOW_DIR_EAST,
+ _WGO_S = META_GRAB_OP_WINDOW_DIR_SOUTH,
+ _WGO_N = META_GRAB_OP_WINDOW_DIR_NORTH,
+};
+
+typedef enum
+{
+ META_GRAB_OP_NONE,
+
+ /* Window grab ops. */
+ META_GRAB_OP_WINDOW_BASE,
+
+ /* For when a Wayland client takes a popup grab. */
+ META_GRAB_OP_WAYLAND_POPUP,
+
+ /* For when the user clicks on a frame button. */
+ META_GRAB_OP_FRAME_BUTTON,
+
+ META_GRAB_OP_MOVING = META_GRAB_OP_WINDOW_BASE,
+ META_GRAB_OP_RESIZING_NW = META_GRAB_OP_WINDOW_BASE | _WGO_N | _WGO_W,
+ META_GRAB_OP_RESIZING_N = META_GRAB_OP_WINDOW_BASE | _WGO_N,
+ META_GRAB_OP_RESIZING_NE = META_GRAB_OP_WINDOW_BASE | _WGO_N | _WGO_E,
+ META_GRAB_OP_RESIZING_E = META_GRAB_OP_WINDOW_BASE | _WGO_E,
+ META_GRAB_OP_RESIZING_SW = META_GRAB_OP_WINDOW_BASE | _WGO_S | _WGO_W,
+ META_GRAB_OP_RESIZING_S = META_GRAB_OP_WINDOW_BASE | _WGO_S,
+ META_GRAB_OP_RESIZING_SE = META_GRAB_OP_WINDOW_BASE | _WGO_S | _WGO_E,
+ META_GRAB_OP_RESIZING_W = META_GRAB_OP_WINDOW_BASE | _WGO_W,
+ META_GRAB_OP_KEYBOARD_MOVING = META_GRAB_OP_WINDOW_BASE | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN = META_GRAB_OP_WINDOW_BASE | _WGO_K | _WGO_U,
+ META_GRAB_OP_KEYBOARD_RESIZING_NW = META_GRAB_OP_WINDOW_BASE | _WGO_N | _WGO_W | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_N = META_GRAB_OP_WINDOW_BASE | _WGO_N | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_NE = META_GRAB_OP_WINDOW_BASE | _WGO_N | _WGO_E | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_E = META_GRAB_OP_WINDOW_BASE | _WGO_E | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_SW = META_GRAB_OP_WINDOW_BASE | _WGO_S | _WGO_W | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_S = META_GRAB_OP_WINDOW_BASE | _WGO_S | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_SE = META_GRAB_OP_WINDOW_BASE | _WGO_S | _WGO_E | _WGO_K,
+ META_GRAB_OP_KEYBOARD_RESIZING_W = META_GRAB_OP_WINDOW_BASE | _WGO_W | _WGO_K,
+} MetaGrabOp;
+
+/**
+ * MetaCursor:
+ * @META_CURSOR_DEFAULT: Default cursor
+ * @META_CURSOR_NORTH_RESIZE: Resize northern edge cursor
+ * @META_CURSOR_SOUTH_RESIZE: Resize southern edge cursor
+ * @META_CURSOR_WEST_RESIZE: Resize western edge cursor
+ * @META_CURSOR_EAST_RESIZE: Resize eastern edge cursor
+ * @META_CURSOR_SE_RESIZE: Resize south-eastern corner cursor
+ * @META_CURSOR_SW_RESIZE: Resize south-western corner cursor
+ * @META_CURSOR_NE_RESIZE: Resize north-eastern corner cursor
+ * @META_CURSOR_NW_RESIZE: Resize north-western corner cursor
+ * @META_CURSOR_MOVE_OR_RESIZE_WINDOW: Move or resize cursor
+ * @META_CURSOR_BUSY: Busy cursor
+ * @META_CURSOR_DND_IN_DRAG: DND in drag cursor
+ * @META_CURSOR_DND_MOVE: DND move cursor
+ * @META_CURSOR_DND_COPY: DND copy cursor
+ * @META_CURSOR_DND_UNSUPPORTED_TARGET: DND unsupported target
+ * @META_CURSOR_POINTING_HAND: pointing hand
+ * @META_CURSOR_CROSSHAIR: crosshair (action forbidden)
+ * @META_CURSOR_IBEAM: I-beam (text input)
+ * @META_CURSOR_BLANK: Invisible cursor
+ */
+typedef enum
+{
+ META_CURSOR_NONE = 0,
+ META_CURSOR_DEFAULT,
+ META_CURSOR_NORTH_RESIZE,
+ META_CURSOR_SOUTH_RESIZE,
+ META_CURSOR_WEST_RESIZE,
+ META_CURSOR_EAST_RESIZE,
+ META_CURSOR_SE_RESIZE,
+ META_CURSOR_SW_RESIZE,
+ META_CURSOR_NE_RESIZE,
+ META_CURSOR_NW_RESIZE,
+ META_CURSOR_MOVE_OR_RESIZE_WINDOW,
+ META_CURSOR_BUSY,
+ META_CURSOR_DND_IN_DRAG,
+ META_CURSOR_DND_MOVE,
+ META_CURSOR_DND_COPY,
+ META_CURSOR_DND_UNSUPPORTED_TARGET,
+ META_CURSOR_POINTING_HAND,
+ META_CURSOR_CROSSHAIR,
+ META_CURSOR_IBEAM,
+ META_CURSOR_BLANK,
+ META_CURSOR_LAST
+} MetaCursor;
+
+/**
+ * MetaFrameType:
+ * @META_FRAME_TYPE_NORMAL: Normal frame
+ * @META_FRAME_TYPE_DIALOG: Dialog frame
+ * @META_FRAME_TYPE_MODAL_DIALOG: Modal dialog frame
+ * @META_FRAME_TYPE_UTILITY: Utility frame
+ * @META_FRAME_TYPE_MENU: Menu frame
+ * @META_FRAME_TYPE_BORDER: Border frame
+ * @META_FRAME_TYPE_ATTACHED: Attached frame
+ * @META_FRAME_TYPE_LAST: Marks the end of the #MetaFrameType enumeration
+ */
+typedef enum
+{
+ META_FRAME_TYPE_NORMAL,
+ META_FRAME_TYPE_DIALOG,
+ META_FRAME_TYPE_MODAL_DIALOG,
+ META_FRAME_TYPE_UTILITY,
+ META_FRAME_TYPE_MENU,
+ META_FRAME_TYPE_BORDER,
+ META_FRAME_TYPE_ATTACHED,
+ META_FRAME_TYPE_LAST
+} MetaFrameType;
+
+/**
+ * MetaVirtualModifier:
+ * @META_VIRTUAL_SHIFT_MASK: Shift mask
+ * @META_VIRTUAL_CONTROL_MASK: Control mask
+ * @META_VIRTUAL_ALT_MASK: Alt mask
+ * @META_VIRTUAL_META_MASK: Meta mask
+ * @META_VIRTUAL_SUPER_MASK: Super mask
+ * @META_VIRTUAL_HYPER_MASK: Hyper mask
+ * @META_VIRTUAL_MOD2_MASK: Mod2 mask
+ * @META_VIRTUAL_MOD3_MASK: Mod3 mask
+ * @META_VIRTUAL_MOD4_MASK: Mod4 mask
+ * @META_VIRTUAL_MOD5_MASK: Mod5 mask
+ */
+typedef enum
+{
+ /* Create gratuitous divergence from regular
+ * X mod bits, to be sure we find bugs
+ */
+ META_VIRTUAL_SHIFT_MASK = 1 << 5,
+ META_VIRTUAL_CONTROL_MASK = 1 << 6,
+ META_VIRTUAL_ALT_MASK = 1 << 7,
+ META_VIRTUAL_META_MASK = 1 << 8,
+ META_VIRTUAL_SUPER_MASK = 1 << 9,
+ META_VIRTUAL_HYPER_MASK = 1 << 10,
+ META_VIRTUAL_MOD2_MASK = 1 << 11,
+ META_VIRTUAL_MOD3_MASK = 1 << 12,
+ META_VIRTUAL_MOD4_MASK = 1 << 13,
+ META_VIRTUAL_MOD5_MASK = 1 << 14
+} MetaVirtualModifier;
+
+/**
+ * MetaDirection:
+ * @META_DIRECTION_LEFT: Left
+ * @META_DIRECTION_RIGHT: Right
+ * @META_DIRECTION_TOP: Top
+ * @META_DIRECTION_BOTTOM: Bottom
+ * @META_DIRECTION_UP: Up
+ * @META_DIRECTION_DOWN: Down
+ * @META_DIRECTION_HORIZONTAL: Horizontal
+ * @META_DIRECTION_VERTICAL: Vertical
+ */
+
+/* Relative directions or sides seem to come up all over the place... */
+/* FIXME: Replace
+ * display.[ch]:MetaDisplayDirection,
+ * workspace.[ch]:MetaMotionDirection,
+ * with the use of MetaDirection.
+ */
+typedef enum
+{
+ META_DIRECTION_LEFT = 1 << 0,
+ META_DIRECTION_RIGHT = 1 << 1,
+ META_DIRECTION_TOP = 1 << 2,
+ META_DIRECTION_BOTTOM = 1 << 3,
+
+ /* Some aliases for making code more readable for various circumstances. */
+ META_DIRECTION_UP = META_DIRECTION_TOP,
+ META_DIRECTION_DOWN = META_DIRECTION_BOTTOM,
+
+ /* A few more definitions using aliases */
+ META_DIRECTION_HORIZONTAL = META_DIRECTION_LEFT | META_DIRECTION_RIGHT,
+ META_DIRECTION_VERTICAL = META_DIRECTION_UP | META_DIRECTION_DOWN,
+} MetaDirection;
+
+/**
+ * MetaMotionDirection:
+ * @META_MOTION_UP: Upwards motion
+ * @META_MOTION_DOWN: Downwards motion
+ * @META_MOTION_LEFT: Motion to the left
+ * @META_MOTION_RIGHT: Motion to the right
+ * @META_MOTION_UP_LEFT: Motion up and to the left
+ * @META_MOTION_UP_RIGHT: Motion up and to the right
+ * @META_MOTION_DOWN_LEFT: Motion down and to the left
+ * @META_MOTION_DOWN_RIGHT: Motion down and to the right
+ */
+
+/* Negative to avoid conflicting with real workspace
+ * numbers
+ */
+typedef enum
+{
+ META_MOTION_UP = -1,
+ META_MOTION_DOWN = -2,
+ META_MOTION_LEFT = -3,
+ META_MOTION_RIGHT = -4,
+ /* These are only used for effects */
+ META_MOTION_UP_LEFT = -5,
+ META_MOTION_UP_RIGHT = -6,
+ META_MOTION_DOWN_LEFT = -7,
+ META_MOTION_DOWN_RIGHT = -8
+} MetaMotionDirection;
+
+/**
+ * MetaSide:
+ * @META_SIDE_LEFT: Left side
+ * @META_SIDE_RIGHT: Right side
+ * @META_SIDE_TOP: Top side
+ * @META_SIDE_BOTTOM: Bottom side
+ */
+
+/* Sometimes we want to talk about sides instead of directions; note
+ * that the values must be as follows or meta_window_update_struts()
+ * won't work. Using these values also is a safety blanket since
+ * MetaDirection used to be used as a side.
+ */
+typedef enum
+{
+ META_SIDE_LEFT = META_DIRECTION_LEFT,
+ META_SIDE_RIGHT = META_DIRECTION_RIGHT,
+ META_SIDE_TOP = META_DIRECTION_TOP,
+ META_SIDE_BOTTOM = META_DIRECTION_BOTTOM
+} MetaSide;
+
+/**
+ * MetaButtonFunction:
+ * @META_BUTTON_FUNCTION_MENU: Menu
+ * @META_BUTTON_FUNCTION_MINIMIZE: Minimize
+ * @META_BUTTON_FUNCTION_MAXIMIZE: Maximize
+ * @META_BUTTON_FUNCTION_CLOSE: Close
+ * @META_BUTTON_FUNCTION_LAST: Marks the end of the #MetaButtonFunction enumeration
+ *
+ * Function a window button can have. Note, you can't add stuff here
+ * without extending the theme format to draw a new function and
+ * breaking all existing themes.
+ */
+typedef enum
+{
+ META_BUTTON_FUNCTION_MENU,
+ META_BUTTON_FUNCTION_MINIMIZE,
+ META_BUTTON_FUNCTION_MAXIMIZE,
+ META_BUTTON_FUNCTION_CLOSE,
+ META_BUTTON_FUNCTION_LAST
+} MetaButtonFunction;
+
+/**
+ * MetaWindowMenuType:
+ * @META_WINDOW_MENU_WM: the window manager menu
+ * @META_WINDOW_MENU_APP: the (fallback) app menu
+ *
+ * Menu the compositor should display for a given window
+ */
+typedef enum
+{
+ META_WINDOW_MENU_WM,
+ META_WINDOW_MENU_APP
+} MetaWindowMenuType;
+
+/**
+ * MetaStackLayer:
+ * @META_LAYER_DESKTOP: Desktop layer
+ * @META_LAYER_BOTTOM: Bottom layer
+ * @META_LAYER_NORMAL: Normal layer
+ * @META_LAYER_TOP: Top layer
+ * @META_LAYER_DOCK: Dock layer
+ * @META_LAYER_OVERRIDE_REDIRECT: Override-redirect layer
+ * @META_LAYER_LAST: Marks the end of the #MetaStackLayer enumeration
+ *
+ * Layers a window can be in.
+ * These MUST be in the order of stacking.
+ */
+typedef enum
+{
+ META_LAYER_DESKTOP = 0,
+ META_LAYER_BOTTOM = 1,
+ META_LAYER_NORMAL = 2,
+ META_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */
+ META_LAYER_DOCK = 4,
+ META_LAYER_OVERRIDE_REDIRECT = 7,
+ META_LAYER_LAST = 8
+} MetaStackLayer;
+
+/* MetaGravity: (skip)
+ *
+ * Identical to the corresponding gravity value macros from libX11.
+ */
+typedef enum _MetaGravity
+{
+ META_GRAVITY_NONE = 0,
+ META_GRAVITY_NORTH_WEST = 1,
+ META_GRAVITY_NORTH = 2,
+ META_GRAVITY_NORTH_EAST = 3,
+ META_GRAVITY_WEST = 4,
+ META_GRAVITY_CENTER = 5,
+ META_GRAVITY_EAST = 6,
+ META_GRAVITY_SOUTH_WEST = 7,
+ META_GRAVITY_SOUTH = 8,
+ META_GRAVITY_SOUTH_EAST = 9,
+ META_GRAVITY_STATIC = 10,
+} MetaGravity;
+
+/**
* MetaKeyboardA11yFlags:
* @META_A11Y_KEYBOARD_ENABLED:
* @META_A11Y_TIMEOUT_ENABLED: