add a separate font config for onscreendisplays
authorDana Jansens <danakj@orodu.net>
Thu, 26 Apr 2007 13:10:36 +0000 (13:10 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 26 Apr 2007 13:10:36 +0000 (13:10 +0000)
change menutitle in the rc to menuheader
fix up the xsd for fonts

data/rc.xml.in
data/rc.xsd
openbox/config.c
openbox/config.h
openbox/openbox.c
render/theme.c
render/theme.h

index 6233c2e..d42c313 100644 (file)
   <keepBorder>yes</keepBorder>
   <hideDisabled>no</hideDisabled>
   <font place="ActiveWindow">
-    <name>arial,sans</name>
+    <name>sans</name>
     <size>7</size>
     <weight>bold</weight>
     <slant>normal</slant>
   </font>
   <font place="InactiveWindow">
-    <name>arial,sans</name>
+    <name>sans</name>
     <size>7</size>
     <weight>bold</weight>
     <slant>normal</slant>
   </font>
-  <font place="MenuTitle">
-    <name>arial,sans</name>
+  <font place="MenuHeader">
+    <name>sans</name>
     <size>8</size>
     <weight>bold</weight>
     <slant>normal</slant>
   </font>
   <font place="MenuItem">
-    <name>arial,sans</name>
-    <size>8</size>
+    <name>sans</name>
+    <size>9</size>
+    <weight>bold</weight>
+    <slant>normal</slant>
+  </font>
+  <font place="OnScreenDisplay">
+    <name>sans</name>
+    <size>9</size>
     <weight>bold</weight>
     <slant>normal</slant>
   </font>
index fdb98e7..4da392a 100644 (file)
          Removing font shadows - they are going back into the themerc
      Tue Apr 24 18:42:24 UTC 2007 - mikachu(a)openbox.org
          Removed fourCorners option.
-     Wed Apr 25 14:02:40 UTC 2007
+     Wed Apr 25 14:02:40 UTC 2007 - mikachu(a)openbox.org
          Fixed values for layer to be above/below, not top/bottom.
          Add chroot attribute and keybind element to keybind element.
          Remove xsd:sequence from everywhere, we don't care about order.
+     Thu Apr 26 09:11:03 EDT 2007 - danakj(a)orodu.net
+         Add the place attribute for fonts
 -->
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://openbox.org/"
         <xsd:element minOccurs="0" name="size" type="xsd:integer"/>
         <xsd:element minOccurs="0" name="weight" type="ob:fontweight"/>
         <xsd:element minOccurs="0" name="slant" type="ob:fontslant"/>
+        <xsd:attribute name="place" type="ob:fontplace" use="required"/>
     </xsd:complexType>
     <xsd:complexType name="desktops">
         <xsd:annotation>
             <xsd:enumeration value="off"/>
         </xsd:restriction>
     </xsd:simpleType>
+    <xsd:simpleType name="fontplace">
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="ActiveWindow"/>
+            <xsd:enumeration value="InactiveWindow"/>
+            <xsd:enumeration value="MenuHeader"/>
+            <xsd:enumeration value="MenuItem"/>
+            <xsd:enumeration value="OnScreenDisplay"/>
+        </xsd:restriction>
+    </xsd:simpleType>
     <xsd:simpleType name="fontweight">
         <xsd:restriction base="xsd:string">
             <xsd:enumeration value="normal"/>
index f8b3fd9..4e3f6f9 100644 (file)
@@ -46,6 +46,7 @@ RrFont *config_font_activewindow;
 RrFont *config_font_inactivewindow;
 RrFont *config_font_menuitem;
 RrFont *config_font_menutitle;
+RrFont *config_font_osd;
 
 gint    config_desktops_num;
 GSList *config_desktops_names;
@@ -467,10 +468,12 @@ static void parse_theme(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
             font = &config_font_activewindow;
         else if (parse_attr_contains("InactiveWindow", n, "place"))
             font = &config_font_inactivewindow;
-        else if (parse_attr_contains("MenuTitle", n, "place"))
+        else if (parse_attr_contains("MenuHeader", n, "place"))
             font = &config_font_menutitle;
         else if (parse_attr_contains("MenuItem", n, "place"))
             font = &config_font_menuitem;
+        else if (parse_attr_contains("OnScreenDisplay", n, "place"))
+            font = &config_font_osd;
         else
             goto next_font;
 
index 283fa99..e6a441b 100644 (file)
@@ -97,6 +97,8 @@ extern RrFont *config_font_inactivewindow;
 extern RrFont *config_font_menutitle;
 /*! The font for menu items */
 extern RrFont *config_font_menuitem;
+/*! The font for on-screen-displays/popups */
+extern RrFont *config_font_osd;
 
 /*! The number of desktops */
 extern gint config_desktops_num;
index fc2e78c..9de780d 100644 (file)
@@ -241,7 +241,8 @@ gint main(gint argc, gchar **argv)
                                         config_font_activewindow,
                                         config_font_inactivewindow,
                                         config_font_menutitle,
-                                        config_font_menuitem)))
+                                        config_font_menuitem,
+                                        config_font_osd)))
                 {
                     RrThemeFree(ob_rr_theme);
                     ob_rr_theme = theme;
index a80777b..cb50887 100644 (file)
@@ -66,7 +66,8 @@ static gboolean find_appearance(ParseState *ps, xmlNodePtr n, const gchar *names
 
 RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
                     RrFont *active_window_font, RrFont *inactive_window_font,
-                    RrFont *menu_title_font, RrFont *menu_item_font)
+                    RrFont *menu_title_font, RrFont *menu_item_font,
+                    RrFont *osd_font)
 {
     ParseState ps;
     xmlNodePtr root;
@@ -173,6 +174,12 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
     } else
         theme->menu_font = RrFontOpenDefault(inst);
 
+    if (osd_font) {
+        theme->osd_font = osd_font;
+        RrFontRef(osd_font);
+    } else
+        theme->osd_font = RrFontOpenDefault(inst);
+
     /* load direct dimensions */
     if (!FIND(int, L("menu","overlap"),
               &theme->menu_overlap, -100, 100))
@@ -771,8 +778,8 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
     theme->a_focused_label->texture[0].data.text.justify = winjust;
     theme->osd_hilite_label->texture[0].data.text.justify = RR_JUSTIFY_LEFT;
     theme->a_focused_label->texture[0].data.text.font =
-        theme->osd_hilite_label->texture[0].data.text.font =
         theme->win_font_focused;
+    theme->osd_hilite_label->texture[0].data.text.font = theme->osd_font;
     theme->a_focused_label->texture[0].data.text.color =
         theme->title_focused_color;
     theme->osd_hilite_label->texture[0].data.text.color =
index 62ff87d..b0caa17 100644 (file)
@@ -34,6 +34,7 @@ struct _RrTheme {
     RrFont *win_font_unfocused;
     RrFont *menu_title_font;
     RrFont *menu_font;
+    RrFont *osd_font;
 
     /* style settings - geometry */
     gint paddingx;
@@ -226,7 +227,8 @@ struct _RrTheme {
   the default font will be used. */
 RrTheme* RrThemeNew(const RrInstance *inst, gchar *theme,
                     RrFont *active_window_font, RrFont *inactive_window_font,
-                    RrFont *menu_title_font, RrFont *menu_item_font);
+                    RrFont *menu_title_font, RrFont *menu_item_font,
+                    RrFont *osd_font);
 void RrThemeFree(RrTheme *theme);
 
 G_END_DECLS