Common

Common — Muffin common types

Synopsis

enum                MetaFrameFlags;
enum                MetaMenuOp;
void                (*MetaWindowMenuFunc)               (MetaWindowMenu *menu,
                                                         Display *xdisplay,
                                                         Window client_xwindow,
                                                         guint32 timestamp,
                                                         MetaMenuOp op,
                                                         int workspace,
                                                         gpointer data);
enum                MetaGrabOp;
enum                MetaCursor;
enum                MetaFrameType;
enum                MetaVirtualModifier;
enum                MetaDirection;
enum                MetaMotionDirection;
enum                MetaSide;
enum                MetaButtonFunction;
enum                MetaTileMode;
enum                MetaWindowTileType;
#define             MAX_BUTTONS_PER_CORNER
struct              MetaButtonLayout;
struct              MetaFrameBorders;
void                meta_frame_borders_clear            (MetaFrameBorders *self);
#define             META_ICON_WIDTH
#define             META_ICON_HEIGHT
#define             META_MINI_ICON_WIDTH
#define             META_MINI_ICON_HEIGHT
#define             META_DEFAULT_ICON_NAME
#define             META_PRIORITY_RESIZE
#define             META_PRIORITY_BEFORE_REDRAW
#define             META_PRIORITY_REDRAW
#define             META_PRIORITY_PREFS_NOTIFY
#define             POINT_IN_RECT                       (xcoord,
                                                         ycoord,
                                                         rect)
enum                MetaStackLayer;
enum                MetaPlacementMode;
                    MetaWindowMenu;
                    MetaResizePopup;

Description

Details

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_LEFT_RESIZE       = 1 << 4,
  META_FRAME_ALLOWS_RIGHT_RESIZE      = 1 << 5,
  META_FRAME_ALLOWS_TOP_RESIZE        = 1 << 6,
  META_FRAME_ALLOWS_BOTTOM_RESIZE     = 1 << 7,
  META_FRAME_HAS_FOCUS                = 1 << 8,
  META_FRAME_SHADED                   = 1 << 9,
  META_FRAME_STUCK                    = 1 << 10,
  META_FRAME_MAXIMIZED                = 1 << 11,
  META_FRAME_ALLOWS_SHADE             = 1 << 12,
  META_FRAME_ALLOWS_MOVE              = 1 << 13,
  META_FRAME_FULLSCREEN               = 1 << 14,
  META_FRAME_IS_FLASHING              = 1 << 15,
  META_FRAME_ABOVE                    = 1 << 16,
  META_FRAME_TILED_LEFT               = 1 << 17,
  META_FRAME_TILED_RIGHT              = 1 << 18,
  META_FRAME_ALLOWS_VERTICAL_RESIZE   = (META_FRAME_ALLOWS_TOP_RESIZE |
                                         META_FRAME_ALLOWS_BOTTOM_RESIZE),
  META_FRAME_ALLOWS_HORIZONTAL_RESIZE = (META_FRAME_ALLOWS_LEFT_RESIZE |
                                         META_FRAME_ALLOWS_RIGHT_RESIZE)
} MetaFrameFlags;

META_FRAME_ALLOWS_DELETE

META_FRAME_ALLOWS_MENU

META_FRAME_ALLOWS_MINIMIZE

META_FRAME_ALLOWS_MAXIMIZE

META_FRAME_ALLOWS_LEFT_RESIZE

META_FRAME_ALLOWS_RIGHT_RESIZE

META_FRAME_ALLOWS_TOP_RESIZE

META_FRAME_ALLOWS_BOTTOM_RESIZE

META_FRAME_HAS_FOCUS

META_FRAME_SHADED

META_FRAME_STUCK

META_FRAME_MAXIMIZED

META_FRAME_ALLOWS_SHADE

META_FRAME_ALLOWS_MOVE

META_FRAME_FULLSCREEN

META_FRAME_IS_FLASHING

META_FRAME_ABOVE

META_FRAME_TILED_LEFT

META_FRAME_TILED_RIGHT

META_FRAME_ALLOWS_VERTICAL_RESIZE

META_FRAME_ALLOWS_HORIZONTAL_RESIZE


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,
  META_MENU_OP_MOVE_NEW    = 1 << 18
} MetaMenuOp;

META_MENU_OP_NONE

META_MENU_OP_DELETE

META_MENU_OP_MINIMIZE

META_MENU_OP_UNMAXIMIZE

META_MENU_OP_MAXIMIZE

META_MENU_OP_UNSHADE

META_MENU_OP_SHADE

META_MENU_OP_UNSTICK

META_MENU_OP_STICK

META_MENU_OP_WORKSPACES

META_MENU_OP_MOVE

META_MENU_OP_RESIZE

META_MENU_OP_ABOVE

META_MENU_OP_UNABOVE

META_MENU_OP_MOVE_LEFT

META_MENU_OP_MOVE_RIGHT

META_MENU_OP_MOVE_UP

META_MENU_OP_MOVE_DOWN

META_MENU_OP_RECOVER

META_MENU_OP_MOVE_NEW


MetaWindowMenuFunc ()

void                (*MetaWindowMenuFunc)               (MetaWindowMenu *menu,
                                                         Display *xdisplay,
                                                         Window client_xwindow,
                                                         guint32 timestamp,
                                                         MetaMenuOp op,
                                                         int workspace,
                                                         gpointer 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

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

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

META_GRAB_OP_KEYBOARD_TABBING_NORMAL

META_GRAB_OP_KEYBOARD_TABBING_DOCK

META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL

META_GRAB_OP_KEYBOARD_ESCAPING_DOCK

META_GRAB_OP_KEYBOARD_ESCAPING_GROUP

META_GRAB_OP_KEYBOARD_TABBING_GROUP

META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING

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

META_GRAB_OP_COMPOSITOR


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
} MetaCursor;

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


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

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


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

META_VIRTUAL_CONTROL_MASK

META_VIRTUAL_ALT_MASK

META_VIRTUAL_META_MASK

META_VIRTUAL_SUPER_MASK

META_VIRTUAL_HYPER_MASK

META_VIRTUAL_MOD2_MASK

META_VIRTUAL_MOD3_MASK

META_VIRTUAL_MOD4_MASK

META_VIRTUAL_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

META_DIRECTION_RIGHT

META_DIRECTION_TOP

META_DIRECTION_BOTTOM

META_DIRECTION_UP

META_DIRECTION_DOWN

META_DIRECTION_HORIZONTAL

META_DIRECTION_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,
  META_MOTION_NOT_EXIST_YET = -30
} MetaMotionDirection;

META_MOTION_UP

META_MOTION_DOWN

META_MOTION_LEFT

META_MOTION_RIGHT

META_MOTION_UP_LEFT

META_MOTION_UP_RIGHT

META_MOTION_DOWN_LEFT

META_MOTION_DOWN_RIGHT

META_MOTION_NOT_EXIST_YET


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

META_SIDE_RIGHT

META_SIDE_TOP

META_SIDE_BOTTOM


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;

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


enum MetaTileMode

typedef enum {
  META_TILE_NONE,
  META_TILE_LEFT,
  META_TILE_RIGHT,
  META_TILE_ULC,
  META_TILE_LLC,
  META_TILE_URC,
  META_TILE_LRC,
  META_TILE_TOP,
  META_TILE_BOTTOM,
  META_TILE_MAXIMIZE
} MetaTileMode;

META_TILE_NONE

META_TILE_LEFT

META_TILE_RIGHT

META_TILE_ULC

META_TILE_LLC

META_TILE_URC

META_TILE_LRC

META_TILE_TOP

META_TILE_BOTTOM

META_TILE_MAXIMIZE


enum MetaWindowTileType

typedef enum {
    META_WINDOW_TILE_TYPE_NONE,
    META_WINDOW_TILE_TYPE_TILED,
    META_WINDOW_TILE_TYPE_SNAPPED
} MetaWindowTileType;

META_WINDOW_TILE_TYPE_NONE

META_WINDOW_TILE_TYPE_TILED

META_WINDOW_TILE_TYPE_SNAPPED


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];
};

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;
};

meta_frame_borders_clear ()

void                meta_frame_borders_clear            (MetaFrameBorders *self);

META_ICON_WIDTH

#define META_ICON_WIDTH 32

META_ICON_HEIGHT

#define META_ICON_HEIGHT 32

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;

META_LAYER_DESKTOP

META_LAYER_BOTTOM

META_LAYER_NORMAL

META_LAYER_TOP

META_LAYER_DOCK

META_LAYER_FULLSCREEN

META_LAYER_FOCUSED_WINDOW

META_LAYER_OVERRIDE_REDIRECT

META_LAYER_LAST


enum MetaPlacementMode

typedef enum {
  META_PLACEMENT_MODE_AUTOMATIC,
  META_PLACEMENT_MODE_POINTER,
  META_PLACEMENT_MODE_MANUAL,
  META_PLACEMENT_MODE_CENTER
} MetaPlacementMode;

META_PLACEMENT_MODE_AUTOMATIC

META_PLACEMENT_MODE_POINTER

META_PLACEMENT_MODE_MANUAL

META_PLACEMENT_MODE_CENTER


MetaWindowMenu

typedef struct {
  MetaFrames *frames;
  Window client_xwindow;
  GtkWidget *menu;
  MetaWindowMenuFunc func;
  gpointer data;
  MetaMenuOp ops;
  MetaMenuOp insensitive;
} MetaWindowMenu;

MetaResizePopup

typedef struct _MetaResizePopup MetaResizePopup;