]> Dogcows Code - chaz/openbox/commitdiff
add osd border stuff
authorDana Jansens <danakj@orodu.net>
Tue, 5 Jun 2007 15:57:27 +0000 (15:57 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 5 Jun 2007 15:57:27 +0000 (15:57 +0000)
data/themerc.xsd
openbox/focus_cycle_popup.c
openbox/popup.c
render/theme.c
render/theme.h
tools/themetoxml/themetoxml.c

index eb7bd7d0394320cebb53b1f32fc1a0cadef4ba43..40b036a5bdefae913d3b2930ed80ad17e60f08b1 100644 (file)
 
   <xs:complexType name="allosd">
     <xs:all>
+      <xs:element name="border" type="obt:color" minOccurs="0"/>
       <xs:element name="label" type="obt:textarea" minOccurs="0"/>
       <xs:element name="background" type="obt:area" minOccurs="0"/>
       <xs:element name="hilight" type="obt:area" minOccurs="0"/>
     </xs:all>
   </xs:complexType>
 
+  <xs:complexType name="osdDimensions">
+    <xs:all>
+      <xs:element name="borderwidth" type="xs:integer" minOccurs="0"/>
+    </xs:all>
+  </xs:complexType>
+
   <xs:complexType name="themeDimensions">
     <xs:all>
       <xs:element name="padding" type="obt:point" minOccurs="0"/>
       <xs:element name="handle" type="xs:integer" minOccurs="0"/>
       <xs:element name="window" type="obt:windowDimensions" minOccurs="0"/>
       <xs:element name="menu" type="obt:menuDimensions" minOccurs="0"/>
+      <xs:element name="osd" type="obt:osdDimensions" minOccurs="0"/>
     </xs:all>
   </xs:complexType>
 
index 015330bda32f2be41a9b25b972568f0b360ae349..8ae4e7e8ac78c3e6c6553fc3bdd1fe372879ea04 100644 (file)
@@ -112,9 +112,9 @@ void focus_cycle_popup_startup(gboolean reconfig)
     popup.a_bg->texture[0].type = RR_TEXTURE_RGBA;
 
     attrib.override_redirect = True;
-    attrib.border_pixel=RrColorPixel(ob_rr_theme->frame_focused_border_color);
+    attrib.border_pixel=RrColorPixel(ob_rr_theme->osd_border_color);
     popup.bg = create_window(RootWindow(ob_display, ob_screen),
-                             ob_rr_theme->fbwidth,
+                             ob_rr_theme->obwidth,
                              CWOverrideRedirect | CWBorderPixel, &attrib);
 
     popup.text = create_window(popup.bg, 0, 0, NULL);
@@ -298,9 +298,9 @@ static void popup_render(ObFocusCyclePopup *p, const ObClient *c)
 
     /* find the position for the popup (include the outer borders) */
     x = screen_area->x + (screen_area->width -
-                          (w + ob_rr_theme->fbwidth * 2)) / 2;
+                          (w + ob_rr_theme->obwidth * 2)) / 2;
     y = screen_area->y + (screen_area->height -
-                          (h + ob_rr_theme->fbwidth * 2)) / 2;
+                          (h + ob_rr_theme->obwidth * 2)) / 2;
 
     /* get the dimensions of the target hilite texture */
     rgbax = ml;
index 86d4fb4dec6bd01549542236fa5cb589a281e705..6099edcb2d237c5000c2e5e9db9b5c9a1aef6181 100644 (file)
@@ -51,9 +51,9 @@ ObPopup *popup_new()
                                0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
                                InputOutput, RrVisual(ob_rr_inst), 0, NULL);
 
-    XSetWindowBorderWidth(ob_display, self->bg, ob_rr_theme->fbwidth);
+    XSetWindowBorderWidth(ob_display, self->bg, ob_rr_theme->obwidth);
     XSetWindowBorder(ob_display, self->bg,
-                     RrColorPixel(ob_rr_theme->frame_focused_border_color));
+                     RrColorPixel(ob_rr_theme->osd_border_color));
 
     XMapWindow(ob_display, self->text);
 
@@ -355,7 +355,7 @@ static void pager_popup_draw_icon(gint px, gint py, gint w, gint h,
     gint eachw, eachh;
     const guint cols = screen_desktop_layout.columns;
     const guint rows = screen_desktop_layout.rows;
-    const gint linewidth = ob_rr_theme->fbwidth;
+    const gint linewidth = ob_rr_theme->obwidth;
 
     eachw = (w - ((cols + 1) * linewidth)) / cols;
     eachh = (h - ((rows + 1) * linewidth)) / rows;
@@ -500,9 +500,9 @@ void pager_popup_delay_show(ObPagerPopup *self, gulong usec,
             XSetWindowAttributes attr;
 
             attr.border_pixel = 
-                RrColorPixel(ob_rr_theme->frame_focused_border_color);
+                RrColorPixel(ob_rr_theme->osd_border_color);
             self->wins[i] = XCreateWindow(ob_display, self->popup->bg,
-                                          0, 0, 1, 1, ob_rr_theme->fbwidth,
+                                          0, 0, 1, 1, ob_rr_theme->obwidth,
                                           RrDepth(ob_rr_inst), InputOutput,
                                           RrVisual(ob_rr_inst), CWBorderPixel,
                                           &attr);
index 15b7e3c9357b11f1d13786f331bb77a86a79142e..4aef833f2edec3cc508b81bda4999e61bdf87bad 100644 (file)
@@ -213,10 +213,13 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
         theme->fbwidth = 1;
 
     /* menu border width inherits from frame border width */
-    if (!FIND(int, L("dimensions","menu","border"),
-              &theme->mbwidth, 0, 100))
+    if (!FIND(int, L("dimensions","menu","border"), &theme->mbwidth, 0, 100))
         theme->mbwidth = theme->fbwidth;
 
+    /* osd border width inherits from frame border width */
+    if (!FIND(int, L("dimensions","osd","border"), &theme->obwidth, 0, 100))
+        theme->obwidth = theme->fbwidth;
+
     if (!FIND(point, L("dimensions","window","clientpadding"),
               &theme->cbwidthx, &theme->cbwidthy, 0, 100, 0, 100))
         theme->cbwidthx = theme->cbwidthy = 1;
@@ -251,13 +254,19 @@ RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name,
                        theme->frame_unfocused_border_color->b);
 
     /* menu border color inherits from frame focused border color */
-    if (!FIND(color, L("menu","border"),
-              &theme->menu_border_color, NULL))
+    if (!FIND(color, L("menu","border"), &theme->menu_border_color, NULL))
         theme->menu_border_color =
             RrColorNew(inst,
                        theme->frame_focused_border_color->r,
                        theme->frame_focused_border_color->g,
                        theme->frame_focused_border_color->b);
+    /* osd border color inherits from frame focused border color */
+    if (!FIND(color, L("osd","border"), &theme->osd_border_color, NULL))
+        theme->osd_border_color =
+            RrColorNew(inst,
+                       theme->frame_focused_border_color->r,
+                       theme->frame_focused_border_color->g,
+                       theme->frame_focused_border_color->b);
     if (!FIND(color, L("window","active","clientpadding"),
               &theme->cb_focused_color, NULL))
         theme->cb_focused_color = RrColorNew(inst, 255, 255, 255);
@@ -1238,6 +1247,7 @@ void RrThemeFree(RrTheme *theme)
         g_free(theme->name);
 
         RrColorFree(theme->menu_border_color);
+        RrColorFree(theme->osd_border_color);
         RrColorFree(theme->frame_focused_border_color);
         RrColorFree(theme->frame_unfocused_border_color);
         RrColorFree(theme->title_separator_focused_color);
index e02a69e2a5a4a57cfdb50daed573f4b9823abefe..2c35284f466b50dba4855edffc75bd57cdf1f572 100644 (file)
@@ -42,6 +42,7 @@ struct _RrTheme {
     gint handle_height;
     gint fbwidth; /*!< frame border width */
     gint mbwidth; /*!< menu border width */
+    gint obwidth; /*!< osd border width */
     gint cbwidthx;
     gint cbwidthy;
     gint menu_overlap;
@@ -58,6 +59,7 @@ struct _RrTheme {
 
     /* style settings - colors */
     RrColor *menu_border_color;
+    RrColor *osd_border_color;
     RrColor *frame_focused_border_color;
     RrColor *frame_unfocused_border_color;
     RrColor *title_separator_focused_color;
index 8e3ce40c8fa3b193296a5300bb58d3e094d24a96..5c7ac8af56c95228f4115dfc3a1bbb4b803db38a 100644 (file)
@@ -342,12 +342,16 @@ int main(int argc, char **argv)
     if (read_int(db, "borderWidth", &i)) {
         CONT3("dimensions", "window", "border", NUM(i));
         CONT3("dimensions", "menu", "border", NUM(i));
+        CONT3("dimensions", "osd", "border", NUM(i));
     } else if (read_int(db, "border.width", &i)) {
         CONT3("dimensions", "window", "border", NUM(i));
         CONT3("dimensions", "menu", "border", NUM(i));
+        CONT3("dimensions", "osd", "border", NUM(i));
     }
     if (read_int(db, "menu.border.width", &i)) 
         CONT3("dimensions", "menu", "border", NUM(i));
+    if (read_int(db, "osd.border.width", &i)) 
+        CONT3("dimensions", "osd", "border", NUM(i));
 
     if (read_color(db, "border.color", &i, &j, &k)) {
         COLOR3("window", "active", "border", i, j, k, 255);
This page took 0.036809 seconds and 4 git commands to generate.