diff options
author | Iain Holmes <iain@gnome.org> | 2008-05-19 00:00:09 +0000 |
---|---|---|
committer | Iain Holmes <iain@src.gnome.org> | 2008-05-19 00:00:09 +0000 |
commit | f141692ca241441ddf6b243782ac94a95c861cd3 (patch) | |
tree | b7ee1c400b5fface1a09c85e93bae7ef65fe9147 /src/core/frame-private.h | |
parent | fe292078fec8836dc6dd5e38829449e01c749714 (diff) | |
download | metacity-f141692ca241441ddf6b243782ac94a95c861cd3.tar.gz |
src/include/frame.h src/include/display.h src/include/xprops.h
2008-05-19 Iain Holmes <iain@gnome.org>
* src/include/frame.h
* src/include/display.h
* src/include/xprops.h
* src/include/compositor.h
* src/include/types.h
* src/include/window.h
* src/include/errors.h
* src/include/screen.h: New basic public API for compositor.
* src/compositor/*: Separate the compositor out into its own
separate
directory and set it up for backends. Initial XRender backend.
* src/core/compositor.[ch]: Remove
* src/core/frame.h
* src/core/screen.h
* src/core/display.h
* src/core/window.h: Rename to -private.h so as not to clash
with the
new files in include
* src/core/delete.c
* src/core/workspace.h
* src/core/stack.[ch]
* src/core/keybindings.[ch]
* src/core/errors.c
* src/core/effects.[ch]
* src/core/core.c
* src/core/group.h
* src/core/edge-resistance.[ch]
* src/core/window-props.[ch]
* src/core/constraints.h
* src/core/bell.[ch]
* src/core/iconcache.h
* src/core/session.[ch]
* src/core/main.c
* src/core/place.h
* src/core/xprops.c
* src/ui/tabpopup.c: Use the new -private headers
* src/core/display.c
* src/core/frame.c
* src/core/window.c
* src/core/screen.c: Add the API functions required by the
compositor
* src/Makefile.am: Relocate the new files
svn path=/trunk/; revision=3715
Diffstat (limited to 'src/core/frame-private.h')
-rw-r--r-- | src/core/frame-private.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/core/frame-private.h b/src/core/frame-private.h new file mode 100644 index 00000000..cba9b52a --- /dev/null +++ b/src/core/frame-private.h @@ -0,0 +1,88 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ + +/* Metacity X window decorations */ + +/* + * 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_FRAME_PRIVATE_H +#define META_FRAME_PRIVATE_H + +#include "frame.h" +#include "window-private.h" + +typedef struct _MetaFrameGeometry MetaFrameGeometry; + +struct _MetaFrameGeometry +{ + /* border sizes (space between frame and child) */ + int left_width; + int right_width; + int top_height; + int bottom_height; +}; + +struct _MetaFrame +{ + /* window we frame */ + MetaWindow *window; + + /* reparent window */ + Window xwindow; + + MetaCursor current_cursor; + + /* This rect is trusted info from where we put the + * frame, not the result of ConfigureNotify + */ + MetaRectangle rect; + + /* position of client, size of frame */ + int child_x; + int child_y; + int right_width; + int bottom_height; + + guint mapped : 1; + guint need_reapply_frame_shape : 1; + guint is_flashing : 1; /* used by the visual bell flash */ +}; + +void meta_window_ensure_frame (MetaWindow *window); +void meta_window_destroy_frame (MetaWindow *window); +void meta_frame_queue_draw (MetaFrame *frame); + +MetaFrameFlags meta_frame_get_flags (MetaFrame *frame); + +/* These should ONLY be called from meta_window_move_resize_internal */ +void meta_frame_calc_geometry (MetaFrame *frame, + MetaFrameGeometry *geomp); +void meta_frame_sync_to_window (MetaFrame *frame, + int gravity, + gboolean need_move, + gboolean need_resize); + +void meta_frame_set_screen_cursor (MetaFrame *frame, + MetaCursor cursor); + +#endif + + + + |