]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.h
key input works for ObPrompt windows now
[chaz/openbox] / openbox / frame.h
index eb868dcbbbd83af8a956a23dd7d568921968a69f..02be17a004745f4ad69d22a52fc8d210ee81346d 100644 (file)
@@ -120,6 +120,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 */
@@ -133,16 +137,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 */
@@ -167,6 +161,7 @@ struct _ObFrame
     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;
@@ -184,6 +179,7 @@ struct _ObFrame
     gboolean  iconify_hover;
 
     gboolean  focused;
+    gboolean  need_render;
 
     gboolean  flashing;
     gboolean  flash_on;
@@ -223,13 +219,21 @@ 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);
+
+/*! 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.022692 seconds and 4 git commands to generate.