2001-06-17 23:24:25 -04:00
|
|
|
/* Metacity common types shared by core.h and ui.h */
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) 2001 Havoc Pennington
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License as
|
|
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful, but
|
|
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
|
|
* 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef META_COMMON_H
|
|
|
|
#define META_COMMON_H
|
|
|
|
|
|
|
|
/* Don't include GTK or core headers here */
|
|
|
|
#include <X11/Xlib.h>
|
2001-06-23 01:49:35 -04:00
|
|
|
#include <glib.h>
|
2001-06-17 23:24:25 -04:00
|
|
|
|
2002-03-17 12:22:23 -05:00
|
|
|
typedef struct _MetaResizePopup MetaResizePopup;
|
|
|
|
|
2001-06-17 23:24:25 -04:00
|
|
|
typedef enum
|
|
|
|
{
|
2001-07-02 21:45:43 -04:00
|
|
|
META_FRAME_ALLOWS_DELETE = 1 << 0,
|
|
|
|
META_FRAME_ALLOWS_MENU = 1 << 1,
|
|
|
|
META_FRAME_ALLOWS_MINIMIZE = 1 << 2,
|
2001-09-10 23:54:54 -04:00
|
|
|
META_FRAME_ALLOWS_MAXIMIZE = 1 << 3,
|
2001-07-02 21:45:43 -04:00
|
|
|
META_FRAME_ALLOWS_VERTICAL_RESIZE = 1 << 4,
|
|
|
|
META_FRAME_ALLOWS_HORIZONTAL_RESIZE = 1 << 5,
|
2002-01-19 18:59:11 -05:00
|
|
|
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
|
2001-06-17 23:24:25 -04:00
|
|
|
} MetaFrameFlags;
|
|
|
|
|
2001-06-23 01:49:35 -04:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
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,
|
2001-07-11 02:22:00 -04:00
|
|
|
META_MENU_OP_WORKSPACES = 1 << 8,
|
|
|
|
META_MENU_OP_MOVE = 1 << 9,
|
|
|
|
META_MENU_OP_RESIZE = 1 << 10
|
2001-06-23 01:49:35 -04:00
|
|
|
} MetaMenuOp;
|
|
|
|
|
|
|
|
typedef struct _MetaWindowMenu MetaWindowMenu;
|
|
|
|
|
|
|
|
typedef void (* MetaWindowMenuFunc) (MetaWindowMenu *menu,
|
|
|
|
Display *xdisplay,
|
|
|
|
Window client_xwindow,
|
|
|
|
MetaMenuOp op,
|
|
|
|
int workspace,
|
|
|
|
gpointer data);
|
|
|
|
|
2001-08-19 14:09:10 -04:00
|
|
|
/* when changing this enum, there are various switch statements
|
|
|
|
* you have to update
|
|
|
|
*/
|
2001-07-11 02:22:00 -04:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
META_GRAB_OP_NONE,
|
2001-08-19 14:09:10 -04:00
|
|
|
|
2001-07-25 23:14:45 -04:00
|
|
|
/* Mouse ops */
|
2001-07-11 02:22:00 -04:00
|
|
|
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,
|
2001-08-19 14:09:10 -04:00
|
|
|
|
2001-07-25 23:14:45 -04:00
|
|
|
/* Keyboard ops */
|
2001-07-11 02:22:00 -04:00
|
|
|
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,
|
2001-07-25 23:14:45 -04:00
|
|
|
META_GRAB_OP_KEYBOARD_RESIZING_E,
|
2001-08-19 14:09:10 -04:00
|
|
|
META_GRAB_OP_KEYBOARD_RESIZING_SE,
|
|
|
|
META_GRAB_OP_KEYBOARD_RESIZING_NE,
|
|
|
|
META_GRAB_OP_KEYBOARD_RESIZING_SW,
|
|
|
|
META_GRAB_OP_KEYBOARD_RESIZING_NW,
|
|
|
|
|
2002-04-05 10:52:49 -05:00
|
|
|
META_GRAB_OP_KEYBOARD_TABBING_NORMAL,
|
|
|
|
META_GRAB_OP_KEYBOARD_TABBING_DOCK,
|
2001-08-19 14:09:10 -04:00
|
|
|
|
2001-07-25 23:14:45 -04:00
|
|
|
/* Frame button ops */
|
|
|
|
META_GRAB_OP_CLICKING_MINIMIZE,
|
|
|
|
META_GRAB_OP_CLICKING_MAXIMIZE,
|
2001-09-10 23:54:54 -04:00
|
|
|
META_GRAB_OP_CLICKING_UNMAXIMIZE,
|
2001-07-25 23:14:45 -04:00
|
|
|
META_GRAB_OP_CLICKING_DELETE,
|
|
|
|
META_GRAB_OP_CLICKING_MENU
|
2001-07-11 02:22:00 -04:00
|
|
|
} MetaGrabOp;
|
|
|
|
|
2001-07-25 23:14:45 -04:00
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
} MetaCursor;
|
|
|
|
|
2001-12-09 17:41:12 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
META_FOCUS_MODE_CLICK,
|
|
|
|
META_FOCUS_MODE_SLOPPY,
|
|
|
|
META_FOCUS_MODE_MOUSE
|
|
|
|
} MetaFocusMode;
|
|
|
|
|
2002-01-19 18:59:11 -05:00
|
|
|
typedef enum
|
|
|
|
{
|
2002-01-27 03:21:53 -05:00
|
|
|
META_FRAME_TYPE_NORMAL,
|
|
|
|
META_FRAME_TYPE_DIALOG,
|
|
|
|
META_FRAME_TYPE_MODAL_DIALOG,
|
|
|
|
META_FRAME_TYPE_UTILITY,
|
|
|
|
META_FRAME_TYPE_MENU,
|
2002-02-06 22:07:56 -05:00
|
|
|
/* META_FRAME_TYPE_TOOLBAR, */
|
2002-01-27 03:21:53 -05:00
|
|
|
META_FRAME_TYPE_LAST
|
|
|
|
} MetaFrameType;
|
2002-01-19 18:59:11 -05:00
|
|
|
|
2001-09-17 00:42:37 -04:00
|
|
|
/* should investigate changing these to whatever most apps use */
|
|
|
|
#define META_ICON_WIDTH 32
|
|
|
|
#define META_ICON_HEIGHT 32
|
|
|
|
#define META_MINI_ICON_WIDTH 16
|
|
|
|
#define META_MINI_ICON_HEIGHT 16
|
|
|
|
|
on unminimize, queue calc_showing on all transients
2002-05-05 Havoc Pennington <hp@pobox.com>
* src/window.c (meta_window_unminimize): on unminimize, queue
calc_showing on all transients
(meta_window_activate): on activate, unminimize all a window's
ancestors, not just the window itself.
* src/workspace.c (set_work_area_hint): don't increment "tmp" by
16 unsigned long, increment by 4
* src/window.c (meta_window_free): if a window isn't minimized,
restore its WM_STATE to NormalState instead of IconicState,
since IconicState on initial window map means that the window
should be minimized.
* src/workspace.c (meta_workspace_invalidate_work_area): queue an
idle to recompute the work area hint.
(set_work_area_hint): we need 4*num_workspaces ints, not just
num_workspaces.
* src/screen.c (meta_screen_new): add work_area_idle field,
handle it on screen shutdown
* src/common.h (META_PRIORITY_PREFS_NOTIFY,
META_PRIORITY_WORK_AREA_HINT): define some idle priorities
* src/window.c (meta_window_calc_showing): hide windows if
their parent window is minimized
(meta_window_minimize): also queue_calc_showing on all
transients of the window being minimized
* src/place.c (constrain_placement): function to apply
placement-time-only constraints, such as "not off the left of the
screen"
(meta_window_place): put dialogs down a bit over their parent,
not right at the top.
(meta_window_place): when centering a dialog, center it
on the current xinerama screen, rather than the entire
screen.
* src/screen.c (meta_screen_get_current_xinerama): new function,
but not implemented
2002-05-05 01:41:13 -04:00
|
|
|
#define META_PRIORITY_PREFS_NOTIFY (G_PRIORITY_DEFAULT_IDLE + 10)
|
|
|
|
#define META_PRIORITY_WORK_AREA_HINT (G_PRIORITY_DEFAULT_IDLE + 15)
|
|
|
|
|
2001-06-17 23:24:25 -04:00
|
|
|
#endif
|
2001-07-11 02:22:00 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|