Details
META_VIRTUAL_CORE_POINTER_ID
#define META_VIRTUAL_CORE_POINTER_ID 2
META_VIRTUAL_CORE_KEYBOARD_ID
#define META_VIRTUAL_CORE_KEYBOARD_ID 3
enum MetaFrameFlags
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_IS_FLASHING = 1 << 13,
META_FRAME_ABOVE = 1 << 14,
META_FRAME_TILED_LEFT = 1 << 15,
META_FRAME_TILED_RIGHT = 1 << 16
} 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_IS_FLASHING
|
frame is flashing
|
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
|
enum MetaMenuOp
typedef enum {
META_MENU_OP_NONE = 0,
META_MENU_OP_DELETE = 1 << 0,
META_MENU_OP_MINIMIZE = 1 << 1,
META_MENU_OP_UNMAXIMIZE = 1 << 2,
META_MENU_OP_MAXIMIZE = 1 << 3,
META_MENU_OP_UNSHADE = 1 << 4,
META_MENU_OP_SHADE = 1 << 5,
META_MENU_OP_UNSTICK = 1 << 6,
META_MENU_OP_STICK = 1 << 7,
META_MENU_OP_WORKSPACES = 1 << 8,
META_MENU_OP_MOVE = 1 << 9,
META_MENU_OP_RESIZE = 1 << 10,
META_MENU_OP_ABOVE = 1 << 11,
META_MENU_OP_UNABOVE = 1 << 12,
META_MENU_OP_MOVE_LEFT = 1 << 13,
META_MENU_OP_MOVE_RIGHT = 1 << 14,
META_MENU_OP_MOVE_UP = 1 << 15,
META_MENU_OP_MOVE_DOWN = 1 << 16,
META_MENU_OP_RECOVER = 1 << 17
} MetaMenuOp;
META_MENU_OP_NONE
|
No menu operation
|
META_MENU_OP_DELETE
|
Menu operation delete
|
META_MENU_OP_MINIMIZE
|
Menu operation minimize
|
META_MENU_OP_UNMAXIMIZE
|
Menu operation unmaximize
|
META_MENU_OP_MAXIMIZE
|
Menu operation maximize
|
META_MENU_OP_UNSHADE
|
Menu operation unshade
|
META_MENU_OP_SHADE
|
Menu operation shade
|
META_MENU_OP_UNSTICK
|
Menu operation unstick
|
META_MENU_OP_STICK
|
Menu operation stick
|
META_MENU_OP_WORKSPACES
|
Menu operation workspaces
|
META_MENU_OP_MOVE
|
Menu operation move
|
META_MENU_OP_RESIZE
|
Menu operation resize
|
META_MENU_OP_ABOVE
|
Menu operation above
|
META_MENU_OP_UNABOVE
|
Menu operation unabove
|
META_MENU_OP_MOVE_LEFT
|
Menu operation left
|
META_MENU_OP_MOVE_RIGHT
|
Menu operation right
|
META_MENU_OP_MOVE_UP
|
Menu operation up
|
META_MENU_OP_MOVE_DOWN
|
Menu operation down
|
META_MENU_OP_RECOVER
|
Menu operation recover
|
MetaWindowMenuFunc ()
void (*MetaWindowMenuFunc) (MetaWindowMenu *menu
,
Display *xdisplay
,
Window client_xwindow
,
guint32 timestamp
,
MetaMenuOp op
,
int workspace
,
gpointer user_data
);
enum MetaGrabOp
typedef enum {
META_GRAB_OP_NONE,
/* Mouse ops */
META_GRAB_OP_MOVING,
META_GRAB_OP_RESIZING_SE,
META_GRAB_OP_RESIZING_S,
META_GRAB_OP_RESIZING_SW,
META_GRAB_OP_RESIZING_N,
META_GRAB_OP_RESIZING_NE,
META_GRAB_OP_RESIZING_NW,
META_GRAB_OP_RESIZING_W,
META_GRAB_OP_RESIZING_E,
/* Keyboard ops */
META_GRAB_OP_KEYBOARD_MOVING,
META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN,
META_GRAB_OP_KEYBOARD_RESIZING_S,
META_GRAB_OP_KEYBOARD_RESIZING_N,
META_GRAB_OP_KEYBOARD_RESIZING_W,
META_GRAB_OP_KEYBOARD_RESIZING_E,
META_GRAB_OP_KEYBOARD_RESIZING_SE,
META_GRAB_OP_KEYBOARD_RESIZING_NE,
META_GRAB_OP_KEYBOARD_RESIZING_SW,
META_GRAB_OP_KEYBOARD_RESIZING_NW,
/* Alt+Tab */
META_GRAB_OP_KEYBOARD_TABBING_NORMAL,
META_GRAB_OP_KEYBOARD_TABBING_DOCK,
/* Alt+Esc */
META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL,
META_GRAB_OP_KEYBOARD_ESCAPING_DOCK,
META_GRAB_OP_KEYBOARD_ESCAPING_GROUP,
/* Alt+F6 */
META_GRAB_OP_KEYBOARD_TABBING_GROUP,
META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING,
/* Frame button ops */
META_GRAB_OP_CLICKING_MINIMIZE,
META_GRAB_OP_CLICKING_MAXIMIZE,
META_GRAB_OP_CLICKING_UNMAXIMIZE,
META_GRAB_OP_CLICKING_DELETE,
META_GRAB_OP_CLICKING_MENU,
META_GRAB_OP_CLICKING_SHADE,
META_GRAB_OP_CLICKING_UNSHADE,
META_GRAB_OP_CLICKING_ABOVE,
META_GRAB_OP_CLICKING_UNABOVE,
META_GRAB_OP_CLICKING_STICK,
META_GRAB_OP_CLICKING_UNSTICK,
/* Special grab op when the compositor asked for a grab */
META_GRAB_OP_COMPOSITOR
} 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
|
META_GRAB_OP_KEYBOARD_TABBING_NORMAL
|
Tabbing
|
META_GRAB_OP_KEYBOARD_TABBING_DOCK
|
Tabbing through docks
|
META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL
|
Escaping
|
META_GRAB_OP_KEYBOARD_ESCAPING_DOCK
|
Escaping through docks
|
META_GRAB_OP_KEYBOARD_ESCAPING_GROUP
|
Escaping through groups
|
META_GRAB_OP_KEYBOARD_TABBING_GROUP
|
Tabbing through groups
|
META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING
|
Switch to another workspace
|
META_GRAB_OP_CLICKING_MINIMIZE
|
Clicked minimize button
|
META_GRAB_OP_CLICKING_MAXIMIZE
|
Clicked maximize button
|
META_GRAB_OP_CLICKING_UNMAXIMIZE
|
Clicked unmaximize button
|
META_GRAB_OP_CLICKING_DELETE
|
Clicked delete button
|
META_GRAB_OP_CLICKING_MENU
|
Clicked on menu
|
META_GRAB_OP_CLICKING_SHADE
|
Clicked shade button
|
META_GRAB_OP_CLICKING_UNSHADE
|
Clicked unshade button
|
META_GRAB_OP_CLICKING_ABOVE
|
Clicked above button
|
META_GRAB_OP_CLICKING_UNABOVE
|
Clicked unabove button
|
META_GRAB_OP_CLICKING_STICK
|
Clicked stick button
|
META_GRAB_OP_CLICKING_UNSTICK
|
Clicked unstick button
|
META_GRAB_OP_COMPOSITOR
|
Compositor asked for grab
|
enum MetaCursor
typedef enum {
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_LAST
} 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_LAST
|
|
enum MetaFrameType
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;
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
|
enum MetaVirtualModifier
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;
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
|
enum 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;
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
|
enum MetaMotionDirection
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;
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
|
enum MetaSide
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;
META_SIDE_LEFT
|
Left side
|
META_SIDE_RIGHT
|
Right side
|
META_SIDE_TOP
|
Top side
|
META_SIDE_BOTTOM
|
Bottom side
|
enum MetaButtonFunction
typedef enum {
META_BUTTON_FUNCTION_MENU,
META_BUTTON_FUNCTION_MINIMIZE,
META_BUTTON_FUNCTION_MAXIMIZE,
META_BUTTON_FUNCTION_CLOSE,
META_BUTTON_FUNCTION_SHADE,
META_BUTTON_FUNCTION_ABOVE,
META_BUTTON_FUNCTION_STICK,
META_BUTTON_FUNCTION_UNSHADE,
META_BUTTON_FUNCTION_UNABOVE,
META_BUTTON_FUNCTION_UNSTICK,
META_BUTTON_FUNCTION_LAST
} MetaButtonFunction;
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.
META_BUTTON_FUNCTION_MENU
|
Menu
|
META_BUTTON_FUNCTION_MINIMIZE
|
Minimize
|
META_BUTTON_FUNCTION_MAXIMIZE
|
Maximize
|
META_BUTTON_FUNCTION_CLOSE
|
Close
|
META_BUTTON_FUNCTION_SHADE
|
Shade
|
META_BUTTON_FUNCTION_ABOVE
|
Above
|
META_BUTTON_FUNCTION_STICK
|
Stick
|
META_BUTTON_FUNCTION_UNSHADE
|
Unshade
|
META_BUTTON_FUNCTION_UNABOVE
|
Unabove
|
META_BUTTON_FUNCTION_UNSTICK
|
Unstick
|
META_BUTTON_FUNCTION_LAST
|
Marks the end of the MetaButtonFunction enumeration
|
MAX_BUTTONS_PER_CORNER
#define MAX_BUTTONS_PER_CORNER META_BUTTON_FUNCTION_LAST
struct MetaButtonLayout
struct MetaButtonLayout {
/* buttons in the group on the left side */
MetaButtonFunction left_buttons[MAX_BUTTONS_PER_CORNER];
gboolean left_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
/* buttons in the group on the right side */
MetaButtonFunction right_buttons[MAX_BUTTONS_PER_CORNER];
gboolean right_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
};
MetaButtonFunction left_buttons [MAX_BUTTONS_PER_CORNER]; |
. [array fixed-size=10]
|
gboolean left_buttons_has_spacer [MAX_BUTTONS_PER_CORNER]; |
. [array fixed-size=10]
|
MetaButtonFunction right_buttons [MAX_BUTTONS_PER_CORNER]; |
. [array fixed-size=10]
|
gboolean right_buttons_has_spacer [MAX_BUTTONS_PER_CORNER]; |
. [array fixed-size=10]
|
struct MetaFrameBorders
struct MetaFrameBorders {
/* The frame border is made up of two pieces - an inner visible portion
* and an outer portion that is invisible but responds to events.
*/
GtkBorder visible;
GtkBorder invisible;
/* For convenience, we have a "total" border which is equal to the sum
* of the two borders above. */
GtkBorder total;
};
GtkBorder visible ; |
inner visible portion of frame border |
GtkBorder invisible ; |
outer invisible portion of frame border |
GtkBorder total ; |
sum of the two borders above |
meta_frame_borders_clear ()
void meta_frame_borders_clear (MetaFrameBorders *self
);
META_ICON_WIDTH
#define META_ICON_WIDTH 96
META_ICON_HEIGHT
#define META_ICON_HEIGHT 96
META_MINI_ICON_WIDTH
#define META_MINI_ICON_WIDTH 16
META_MINI_ICON_HEIGHT
#define META_MINI_ICON_HEIGHT 16
META_DEFAULT_ICON_NAME
#define META_DEFAULT_ICON_NAME "window"
META_PRIORITY_RESIZE
#define META_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 15)
META_PRIORITY_BEFORE_REDRAW
#define META_PRIORITY_BEFORE_REDRAW (G_PRIORITY_HIGH_IDLE + 40)
META_PRIORITY_REDRAW
#define META_PRIORITY_REDRAW (G_PRIORITY_HIGH_IDLE + 50)
META_PRIORITY_PREFS_NOTIFY
#define META_PRIORITY_PREFS_NOTIFY (G_PRIORITY_DEFAULT_IDLE + 10)
POINT_IN_RECT()
#define POINT_IN_RECT(xcoord, ycoord, rect)
enum MetaStackLayer
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_FULLSCREEN = 5,
META_LAYER_FOCUSED_WINDOW = 6,
META_LAYER_OVERRIDE_REDIRECT = 7,
META_LAYER_LAST = 8
} MetaStackLayer;
Layers a window can be in.
These MUST be in the order of stacking.
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_FULLSCREEN
|
Fullscreen layer
|
META_LAYER_FOCUSED_WINDOW
|
Focused window layer
|
META_LAYER_OVERRIDE_REDIRECT
|
Override-redirect layer
|
META_LAYER_LAST
|
Marks the end of the MetaStackLayer enumeration
|
MetaWindowMenu
typedef struct _MetaWindowMenu MetaWindowMenu;
MetaResizePopup
typedef struct _MetaResizePopup MetaResizePopup;