]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.h
Merge branch 'backport' into work
[chaz/openbox] / openbox / frame.h
index f7adbfd40b25317afe7cb7a4b4fbf116b3033abc..e1b787fe8040ab47d32064e4496ff5a9f6cab1b6 100644 (file)
@@ -56,6 +56,12 @@ typedef enum {
     OB_FRAME_NUM_CONTEXTS
 } ObFrameContext;
 
+#define FRAME_CONTEXT(co, cl) ((cl && cl->type != OB_CLIENT_TYPE_DESKTOP) ? \
+                               co == OB_FRAME_CONTEXT_FRAME : FALSE)
+#define CLIENT_CONTEXT(co, cl) ((cl && cl->type == OB_CLIENT_TYPE_DESKTOP) ? \
+                                co == OB_FRAME_CONTEXT_DESKTOP : \
+                                co == OB_FRAME_CONTEXT_CLIENT)
+
 /*! The decorations the client window wants to be displayed on it */
 typedef enum {
     OB_FRAME_DECOR_TITLEBAR    = 1 << 0, /*!< Display a titlebar */
@@ -78,10 +84,6 @@ struct _ObFrame
 
     Window    window;
 
-    Pixmap    pixmap;    /* Offscreen buffer of the frame window's contents
-                            when Composite is enabled */
-    gboolean  has_alpha;
-
     Strut     size;
     Rect      area;
     gboolean  visible;
@@ -124,6 +126,10 @@ struct _ObFrame
     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    innerblb;
+    Window    innerbll;
+    Window    innerbrb;
+    Window    innerbrr;
     Window    backback;     /*!< A colored window shown while resizing */
     Window    backfront;    /*!< An undrawn-in window, to prevent flashing on
                                  unmap */
@@ -137,16 +143,6 @@ struct _ObFrame
 
     Colormap  colormap;
 
-    RrAppearance *a_unfocused_title;
-    RrAppearance *a_focused_title;
-    RrAppearance *a_unfocused_label;
-    RrAppearance *a_focused_label;
-    RrAppearance *a_icon;
-    RrAppearance *a_unfocused_handle;
-    RrAppearance *a_focused_handle;
-
-    GSList   *clients;
-
     gint      icon_on;    /* if the window icon button is on */
     gint      label_on;   /* if the window title is on */
     gint      iconify_on; /* if the window iconify button is on */
@@ -209,6 +205,7 @@ void frame_free(ObFrame *self);
 void frame_show(ObFrame *self);
 void frame_hide(ObFrame *self);
 void frame_adjust_theme(ObFrame *self);
+void frame_adjust_shape(ObFrame *self);
 void frame_adjust_area(ObFrame *self, gboolean moved,
                        gboolean resized, gboolean fake);
 void frame_adjust_client_area(ObFrame *self);
@@ -240,6 +237,10 @@ void frame_frame_gravity(ObFrame *self, gint *x, gint *y);
   for the frame, given its current decorations sizes */
 void frame_rect_to_frame(ObFrame *self, Rect *r);
 
+/*! Convert a rectangle in frame coordinates/sizes to what it would be for the
+  client, given its current decorations sizes */
+void frame_rect_to_client(ObFrame *self, Rect *r);
+
 void frame_flash_start(ObFrame *self);
 void frame_flash_stop(ObFrame *self);
 
This page took 0.024857 seconds and 4 git commands to generate.