core.h 7.71 KB
Newer Older
1 2
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */

rhp's avatar
...  
rhp committed
3 4 5 6
/* Metacity interface used by GTK+ UI to talk to core */

/* 
 * Copyright (C) 2001 Havoc Pennington
7
 * Copyright (C) 2005 Elijah Newren
rhp's avatar
...  
rhp committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
 * 
 * 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_CORE_H
#define META_CORE_H

/* Don't include core headers here */
#include <gdk/gdkx.h>
rhp's avatar
...  
rhp committed
30
#include "common.h"
rhp's avatar
...  
rhp committed
31

32 33 34 35
void meta_core_get_client_size (Display *xdisplay,
                                Window   frame_xwindow,
                                int     *width,
                                int     *height);
rhp's avatar
...  
rhp committed
36

37 38 39
gboolean meta_core_titlebar_is_onscreen (Display *xdisplay,
                                         Window   frame_xwindow);

40 41 42
Window meta_core_get_client_xwindow (Display *xdisplay,
                                     Window   frame_xwindow);

rhp's avatar
...  
rhp committed
43 44
MetaFrameFlags meta_core_get_frame_flags (Display *xdisplay,
                                          Window   frame_xwindow);
45 46
MetaFrameType  meta_core_get_frame_type   (Display *xdisplay,
                                           Window   frame_xwindow);
rhp's avatar
...  
rhp committed
47

48 49
GdkPixbuf* meta_core_get_mini_icon (Display *xdisplay,
                                    Window   frame_xwindow);
50 51
GdkPixbuf* meta_core_get_icon      (Display *xdisplay,
                                    Window   frame_xwindow);
52

rhp's avatar
...  
rhp committed
53 54
void meta_core_queue_frame_resize (Display *xdisplay,
                                   Window frame_xwindow);
rhp's avatar
...  
rhp committed
55

rhp's avatar
...  
rhp committed
56 57 58 59 60
/* Move as a result of user operation */
void meta_core_user_move    (Display *xdisplay,
                             Window   frame_xwindow,
                             int      x,
                             int      y);
rhp's avatar
...  
rhp committed
61 62
void meta_core_user_resize  (Display *xdisplay,
                             Window   frame_xwindow,
rhp's avatar
...  
rhp committed
63
                             int      gravity,
rhp's avatar
...  
rhp committed
64 65 66 67 68
                             int      width,
                             int      height);

void meta_core_user_raise   (Display *xdisplay,
                             Window   frame_xwindow);
69
void meta_core_user_lower_and_unfocus (Display *xdisplay,
70
                                       Window   frame_xwindow,
71
                                       guint32  timestamp);
rhp's avatar
...  
rhp committed
72

rhp's avatar
...  
rhp committed
73 74
void meta_core_user_focus   (Display *xdisplay,
                             Window   frame_xwindow,
75
                             guint32  timestamp);
rhp's avatar
...  
rhp committed
76

rhp's avatar
...  
rhp committed
77 78 79 80 81 82
/* get position of client, same coord space expected by move */
void meta_core_get_position (Display *xdisplay,
                             Window   frame_xwindow,
                             int     *x,
                             int     *y);

rhp's avatar
...  
rhp committed
83 84 85 86 87 88 89
void meta_core_get_size     (Display *xdisplay,
                             Window   frame_xwindow,
                             int     *width,
                             int     *height);

void meta_core_minimize         (Display *xdisplay,
                                 Window   frame_xwindow);
90 91
void meta_core_toggle_maximize  (Display *xdisplay,
                                 Window   frame_xwindow);
rhp's avatar
...  
rhp committed
92 93 94 95 96 97 98 99
void meta_core_unmaximize       (Display *xdisplay,
                                 Window   frame_xwindow);
void meta_core_maximize         (Display *xdisplay,
                                 Window   frame_xwindow);
void meta_core_delete           (Display *xdisplay,
                                 Window   frame_xwindow,
                                 guint32  timestamp);
void meta_core_unshade          (Display *xdisplay,
100 101
                                 Window   frame_xwindow,
                                 guint32  timestamp);
rhp's avatar
...  
rhp committed
102
void meta_core_shade            (Display *xdisplay,
103 104
                                 Window   frame_xwindow,
                                 guint32  timestamp);
rhp's avatar
...  
rhp committed
105 106 107 108 109 110 111 112
void meta_core_unstick          (Display *xdisplay,
                                 Window   frame_xwindow);
void meta_core_stick            (Display *xdisplay,
                                 Window   frame_xwindow);
void meta_core_change_workspace (Display *xdisplay,
                                 Window   frame_xwindow,
                                 int      new_workspace);

rhp's avatar
...  
rhp committed
113 114
int meta_core_get_num_workspaces (Screen  *xscreen);
int meta_core_get_active_workspace (Screen *xscreen);
rhp's avatar
...  
rhp committed
115 116
int meta_core_get_frame_workspace (Display *xdisplay,
                                   Window frame_xwindow);
117 118 119
const char* meta_core_get_workspace_name_with_index (Display *xdisplay,
                                                     Window xroot,
                                                     int    index);
rhp's avatar
...  
rhp committed
120

121 122 123 124 125 126 127 128
void  meta_core_get_frame_extents   (Display        *xdisplay,
                                     Window          frame_xwindow,
                                     int            *x,
                                     int            *y,
                                     int            *width,
                                     int            *height);


rhp's avatar
...  
rhp committed
129 130 131 132 133
void meta_core_show_window_menu (Display *xdisplay,
                                 Window   frame_xwindow,
                                 int      root_x,
                                 int      root_y,
                                 int      button,
134
                                 guint32  timestamp);
rhp's avatar
...  
rhp committed
135

136 137 138 139 140
void meta_core_get_menu_accelerator (MetaMenuOp           menu_op,
                                     int                  workspace,
                                     unsigned int        *keysym,
                                     MetaVirtualModifier *modifiers);

rhp's avatar
...  
rhp committed
141 142 143 144
gboolean   meta_core_begin_grab_op (Display    *xdisplay,
                                    Window      frame_xwindow,
                                    MetaGrabOp  op,
                                    gboolean    pointer_already_grabbed,
145
                                    int         event_serial,
rhp's avatar
...  
rhp committed
146 147
                                    int         button,
                                    gulong      modmask,
148
                                    guint32     timestamp,
rhp's avatar
...  
rhp committed
149 150 151
                                    int         root_x,
                                    int         root_y);
void       meta_core_end_grab_op   (Display    *xdisplay,
152
                                    guint32     timestamp);
rhp's avatar
...  
rhp committed
153 154 155 156 157 158 159 160 161 162 163 164
MetaGrabOp meta_core_get_grab_op     (Display    *xdisplay);
Window     meta_core_get_grab_frame  (Display   *xdisplay);
int        meta_core_get_grab_button (Display  *xdisplay);


void       meta_core_grab_buttons  (Display *xdisplay,
                                    Window   frame_xwindow);

void       meta_core_set_screen_cursor (Display *xdisplay,
                                        Window   frame_on_screen,
                                        MetaCursor cursor);

165 166 167 168 169
void       meta_core_get_screen_size (Display *xdisplay,
                                      Window   frame_on_screen,
                                      int     *width,
                                      int     *height);

170 171 172 173 174 175
/* Used because we ignore EnterNotify when a window is unmapped that
 * really shouldn't cause focus changes, by comparing the event serial
 * of the EnterNotify and the UnmapNotify.
 */
void meta_core_increment_event_serial (Display *display);

176 177
int meta_ui_get_last_event_serial (Display *xdisplay);

rhp's avatar
...  
rhp committed
178
#endif
rhp's avatar
...  
rhp committed
179 180


rhp's avatar
...  
rhp committed
181 182