]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.h
adding trunk
[chaz/openbox] / openbox / frame.h
index b1ed8183243b791ea220cb11d16b56825fcab7d9..edf75b059ffee51033d385505b1e4f88253945e4 100644 (file)
@@ -77,7 +77,6 @@ struct _ObFrame
     struct _ObClient *client;
 
     Window    window;
-    Window    plate;
 
     Strut     size;
     Rect      area;
@@ -85,9 +84,7 @@ struct _ObFrame
 
     guint     functions;
     guint     decorations;
-    gboolean  max_horz;
 
-    Window    inner;  /*!< The window for drawing the inner client border */
     Window    title;
     Window    label;
     Window    max;
@@ -119,6 +116,13 @@ struct _ObFrame
     Window    rgriptop;
     Window    rgripright;
     Window    rgripbottom;
+    Window    innerleft;    /*!< For drawing the inner client border */
+    Window    innertop;     /*!< For drawing the inner client border */
+    Window    innerright;   /*!< For drawing the inner client border */
+    Window    innerbottom;  /*!< For drawing the inner client border */
+    Window    backback;     /*!< A colored window shown while resizing */
+    Window    backfront;    /*!< An undrawn-in window, to prevent flashing on
+                                 unmap */
 
     /* These are resize handles inside the titlebar */
     Window    topresize;
@@ -157,11 +161,13 @@ struct _ObFrame
     gint      max_x;         /* x-position of the window maximize button */
     gint      close_x;       /* x-position of the window close button */
     gint      bwidth;        /* border width */
-    gint      rbwidth;       /* border width between the title and client */
-    gint      cbwidth_x;     /* client border width */
-    gint      cbwidth_y;     /* client border width */
-    gboolean  leftb;         /* is there a border to the left of the client? */
-    gboolean  rightb;        /* is there a border to the right of the client?*/
+    gint      cbwidth_l;     /* client border width */
+    gint      cbwidth_t;     /* client border width */
+    gint      cbwidth_r;     /* client border width */
+    gint      cbwidth_b;     /* client border width */
+    gboolean  max_horz;      /* when maxed some decorations are hidden */
+    gboolean  max_vert;      /* when maxed some decorations are hidden */
+    gboolean  shaded;        /* decorations adjust when shaded */
 
     /* the leftmost and rightmost elements in the titlebar */
     ObFrameContext leftmost;
@@ -179,6 +185,7 @@ struct _ObFrame
     gboolean  iconify_hover;
 
     gboolean  focused;
+    gboolean  need_render;
 
     gboolean  flashing;
     gboolean  flash_on;
@@ -218,13 +225,17 @@ ObFrameContext frame_context(struct _ObClient *self, Window win,
   be positioned.
   @return The proper coordinates for the frame, based on the client.
 */
-void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h);
+void frame_client_gravity(ObFrame *self, gint *x, gint *y);
 
 /*! Reversly applies gravity to the frame's position to find where the client
   should be positioned.
     @return The proper coordinates for the client, based on the frame.
 */
-void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h);
+void frame_frame_gravity(ObFrame *self, gint *x, gint *y);
+
+/*! Convert a rectangle in client coordinates/sizes to what it would be
+  for the frame, given its current decorations sizes */
+void frame_rect_to_frame(ObFrame *self, Rect *r);
 
 void frame_flash_start(ObFrame *self);
 void frame_flash_stop(ObFrame *self);
This page took 0.022035 seconds and 4 git commands to generate.