frame-private.h

Go to the documentation of this file.
00001 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
00002 
00003 /* Metacity X window decorations */
00004 
00005 /* 
00006  * Copyright (C) 2001 Havoc Pennington
00007  * 
00008  * This program is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU General Public License as
00010  * published by the Free Software Foundation; either version 2 of the
00011  * License, or (at your option) any later version.
00012  *
00013  * This program is distributed in the hope that it will be useful, but
00014  * WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * General Public License for more details.
00017  * 
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00021  * 02111-1307, USA.
00022  */
00023 
00024 #ifndef META_FRAME_PRIVATE_H
00025 #define META_FRAME_PRIVATE_H
00026 
00027 #include "frame.h"
00028 #include "window-private.h"
00029 
00030 typedef struct _MetaFrameGeometry MetaFrameGeometry;
00031 
00032 struct _MetaFrameGeometry
00033 {  
00034   /* border sizes (space between frame and child) */
00035   int left_width;
00036   int right_width;
00037   int top_height;
00038   int bottom_height;
00039 };
00040 
00041 struct _MetaFrame
00042 {
00043   /* window we frame */
00044   MetaWindow *window;
00045 
00046   /* reparent window */
00047   Window xwindow;
00048 
00049   MetaCursor current_cursor;
00050 
00051   /* This rect is trusted info from where we put the
00052    * frame, not the result of ConfigureNotify
00053    */
00054   MetaRectangle rect;
00055 
00056   /* position of client, size of frame */
00057   int child_x;
00058   int child_y;
00059   int right_width;
00060   int bottom_height;
00061 
00062   guint mapped : 1;
00063   guint need_reapply_frame_shape : 1;
00064   guint is_flashing : 1; /* used by the visual bell flash */
00065 };
00066 
00067 void     meta_window_ensure_frame           (MetaWindow *window);
00068 void     meta_window_destroy_frame          (MetaWindow *window);
00069 void     meta_frame_queue_draw              (MetaFrame  *frame);
00070 
00071 MetaFrameFlags meta_frame_get_flags (MetaFrame *frame);
00072 
00073 /* These should ONLY be called from meta_window_move_resize_internal */
00074 void meta_frame_calc_geometry      (MetaFrame         *frame,
00075                                     MetaFrameGeometry *geomp);
00076 void meta_frame_sync_to_window     (MetaFrame         *frame,
00077                                     int                gravity,
00078                                     gboolean           need_move,
00079                                     gboolean           need_resize);
00080 
00081 void meta_frame_set_screen_cursor (MetaFrame    *frame,
00082                                    MetaCursor   cursor);
00083 
00084 #endif
00085 
00086 
00087 
00088 

Generated on Sat Aug 23 22:04:16 2008 for metacity by  doxygen 1.5.5