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
1.5.5