merge r6089 from trunk. also this adds a menu.items.activedisabled.text.color theme...
authorDana Jansens <danakj@orodu.net>
Sat, 5 May 2007 22:51:53 +0000 (22:51 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 5 May 2007 22:51:53 +0000 (22:51 +0000)
12 files changed:
Makefile.am
data/themerc.xsd
openbox/client_menu.c
openbox/event.c
openbox/menu.c
openbox/menu.h
openbox/menuframe.c
openbox/menuframe.h
render/theme.c
render/theme.h
themes/Artwiz-boxed/openbox-3/bullet.xbm [deleted file]
themes/Clearlooks-Olive/openbox-3/themerc

index 01882a6..665b52f 100644 (file)
@@ -274,7 +274,6 @@ dist_natura_theme_DATA= \
 
 artwizboxed_themedir = $(themedir)/Artwiz-boxed/openbox-3
 dist_artwizboxed_theme_DATA= \
-       themes/Artwiz-boxed/openbox-3/bullet.xbm \
        themes/Artwiz-boxed/openbox-3/close.xbm \
        themes/Artwiz-boxed/openbox-3/desk_toggled.xbm \
        themes/Artwiz-boxed/openbox-3/desk.xbm \
index 621f99c..a3c331e 100755 (executable)
       <xs:element name="inactive" type="obt:text" minOccurs="0"/>
       <xs:element name="active" type="obt:textarea" minOccurs="0"/>
       <xs:element name="disabled" type="obt:text" minOccurs="0"/>
+      <xs:element name="activedisabled" type="obt:textarea" minOccurs="0"/>
     </xs:all>
   </xs:complexType>
 
index 011e3ec..da6ac2d 100644 (file)
@@ -41,9 +41,8 @@ enum {
     CLIENT_SEND_TO,
     CLIENT_LAYER,
     CLIENT_ICONIFY,
+    CLIENT_RESTORE,
     CLIENT_MAXIMIZE,
-    CLIENT_RAISE,
-    CLIENT_LOWER,
     CLIENT_SHADE,
     CLIENT_DECORATE,
     CLIENT_MOVE,
@@ -69,15 +68,15 @@ static gboolean client_update(ObMenuFrame *frame, gpointer data)
     e = menu_find_entry_id(menu, CLIENT_ICONIFY);
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_ICONIFY;
 
+    e = menu_find_entry_id(menu, CLIENT_RESTORE);
+    e->data.normal.enabled =frame->client->max_horz || frame->client->max_vert;
+
     e = menu_find_entry_id(menu, CLIENT_MAXIMIZE);
-    menu_entry_set_label(e,
-                         (frame->client->max_vert || frame->client->max_horz ?
-                          _("Restor&e") : _("Maximiz&e")), TRUE);
-    e->data.normal.enabled =frame->client->functions & OB_CLIENT_FUNC_MAXIMIZE;
+    e->data.normal.enabled =
+        (frame->client->functions & OB_CLIENT_FUNC_MAXIMIZE) &&
+        !frame->client->max_horz && !frame->client->max_vert;
 
     e = menu_find_entry_id(menu, CLIENT_SHADE);
-    menu_entry_set_label(e, (frame->client->shaded ?
-                             _("&Roll down") : _("&Roll up")), TRUE);
     e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_SHADE;
 
     e = menu_find_entry_id(menu, CLIENT_MOVE);
@@ -153,6 +152,16 @@ static gboolean send_to_update(ObMenuFrame *frame, gpointer data)
         act->data.sendto.follow = FALSE;
         acts = g_slist_prepend(NULL, act);
         e = menu_add_normal(menu, desk, name, acts, FALSE);
+        if (desk == DESKTOP_ALL) {
+            e->data.normal.mask = ob_rr_theme->desk_mask;
+            e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
+            e->data.normal.mask_selected_color =
+                ob_rr_theme->menu_selected_color;
+            e->data.normal.mask_disabled_color =
+                ob_rr_theme->menu_disabled_color;
+            e->data.normal.mask_disabled_selected_color =
+                ob_rr_theme->menu_disabled_selected_color;
+        }
 
         if (frame->client->desktop == desk)
             e->data.normal.enabled = FALSE;
@@ -257,57 +266,66 @@ void client_menu_startup()
     menu_set_update_func(menu, client_update);
     menu_set_place_func(menu, client_menu_place);
 
-    menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("ToggleMaximizeFull",
+                            OB_USER_ACTION_MENU_SELECTION));
+    e = menu_add_normal(menu, CLIENT_RESTORE, _("R&estore"), acts, TRUE);
+    e->data.normal.mask = ob_rr_theme->max_toggled_mask; 
+    e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
+    e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
+    e->data.normal.mask_disabled_selected_color =
+        ob_rr_theme->menu_disabled_selected_color;
 
-    menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME);
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Move", OB_USER_ACTION_MENU_SELECTION));
+    menu_add_normal(menu, CLIENT_MOVE, _("&Move"), acts, TRUE);
+
+    acts = g_slist_prepend(NULL, action_from_string
+                           ("Resize", OB_USER_ACTION_MENU_SELECTION));
+    menu_add_normal(menu, CLIENT_RESIZE, _("Resi&ze"), acts, TRUE);
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("Iconify", OB_USER_ACTION_MENU_SELECTION));
     e = menu_add_normal(menu, CLIENT_ICONIFY, _("Ico&nify"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->iconify_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
-    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
     e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
+    e->data.normal.mask_disabled_selected_color =
+        ob_rr_theme->menu_disabled_selected_color;
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleMaximizeFull",
                             OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_MAXIMIZE, _("Maximiz&e"), acts, TRUE);
+    e = menu_add_normal(menu, CLIENT_MAXIMIZE, _("Ma&ximize"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->max_mask; 
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
-    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
     e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
-
-    acts = g_slist_prepend(NULL, action_from_string
-                           ("Raise", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_RAISE, _("Raise to &top"), acts, TRUE);
-
-    acts = g_slist_prepend(NULL, action_from_string
-                           ("Lower", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_LOWER, _("Lower to &bottom"),acts, TRUE);
+    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
+    e->data.normal.mask_disabled_selected_color =
+        ob_rr_theme->menu_disabled_selected_color;
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleShade", OB_USER_ACTION_MENU_SELECTION));
-    e = menu_add_normal(menu, CLIENT_SHADE, _("&Roll up"), acts, TRUE);
+    e = menu_add_normal(menu, CLIENT_SHADE, _("&Roll up/down"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->shade_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
-    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
     e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
+    e->data.normal.mask_disabled_selected_color =
+        ob_rr_theme->menu_disabled_selected_color;
 
     acts = g_slist_prepend(NULL, action_from_string
                            ("ToggleDecorations",
                             OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_DECORATE, _("&Decorate"), acts, TRUE);
+    menu_add_normal(menu, CLIENT_DECORATE, _("Un/&Decorate"), acts, TRUE);
 
     menu_add_separator(menu, -1, NULL);
 
-    acts = g_slist_prepend(NULL, action_from_string
-                           ("Move", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_MOVE, _("&Move"), acts, TRUE);
+    menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME);
 
-    acts = g_slist_prepend(NULL, action_from_string
-                           ("Resize", OB_USER_ACTION_MENU_SELECTION));
-    menu_add_normal(menu, CLIENT_RESIZE, _("Resi&ze"), acts, TRUE);
+    menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME);
 
     menu_add_separator(menu, -1, NULL);
 
@@ -316,6 +334,8 @@ void client_menu_startup()
     e = menu_add_normal(menu, CLIENT_CLOSE, _("&Close"), acts, TRUE);
     e->data.normal.mask = ob_rr_theme->close_mask;
     e->data.normal.mask_normal_color = ob_rr_theme->menu_color;
-    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
     e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color;
+    e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color;
+    e->data.normal.mask_disabled_selected_color =
+        ob_rr_theme->menu_disabled_selected_color;
 }
index 61aea44..25460a7 100644 (file)
@@ -1288,8 +1288,7 @@ static gboolean event_handle_menu_keyboard(XEvent *ev)
             ObMenuEntryFrame *e = it->data;
             gunichar entrykey = 0;
 
-            if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-                e->entry->data.normal.enabled)
+            if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL)
                 entrykey = e->entry->data.normal.shortcut;
             else if (e->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU)
                 entrykey = e->entry->data.submenu.submenu->shortcut;
@@ -1309,7 +1308,8 @@ static gboolean event_handle_menu_keyboard(XEvent *ev)
                 num_found == 1)
             {
                 menu_frame_select(frame, found, TRUE);
-                usleep(50000);
+                usleep(50000); /* highlight the item for a short bit so the
+                                  user can see what happened */
                 menu_entry_frame_execute(found, state, ev->xkey.time);
             } else {
                 menu_frame_select(frame, found, TRUE);
index 9aed40a..741e27c 100644 (file)
@@ -382,10 +382,10 @@ void menu_show(gchar *name, gint x, gint y, gint button, ObClient *client)
     if (!menu_frame_show_topmenu(frame, x, y, button))
         menu_frame_free(frame);
     else if (frame->entries) {
+        /* select the first entry if it's not a submenu */
         ObMenuEntryFrame *e = frame->entries->data;
-        if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-            e->entry->data.normal.enabled)
-                menu_frame_select(frame, e, FALSE);
+        if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL)
+            menu_frame_select(frame, e, FALSE);
     }
 }
 
index b08f7c9..64cbbd6 100644 (file)
@@ -112,8 +112,9 @@ struct _ObNormalMenuEntry {
     /* Mask icon */
     RrPixmapMask *mask;
     RrColor *mask_normal_color;
-    RrColor *mask_disabled_color;
     RrColor *mask_selected_color;
+    RrColor *mask_disabled_color;
+    RrColor *mask_disabled_selected_color;
 };
 
 struct _ObSubmenuMenuEntry {
index a95e46f..f87c3c0 100644 (file)
@@ -140,8 +140,10 @@ static ObMenuEntryFrame* menu_entry_frame_new(ObMenuEntry *entry,
     XMapWindow(ob_display, self->text);
 
     self->a_normal = RrAppearanceCopy(ob_rr_theme->a_menu_normal);
-    self->a_disabled = RrAppearanceCopy(ob_rr_theme->a_menu_disabled);
     self->a_selected = RrAppearanceCopy(ob_rr_theme->a_menu_selected);
+    self->a_disabled = RrAppearanceCopy(ob_rr_theme->a_menu_disabled);
+    self->a_disabled_selected =
+        RrAppearanceCopy(ob_rr_theme->a_menu_disabled_selected);
 
     if (entry->type == OB_MENU_ENTRY_TYPE_SEPARATOR) {
         self->a_separator = RrAppearanceCopy(ob_rr_theme->a_clear_tex);
@@ -159,10 +161,12 @@ static ObMenuEntryFrame* menu_entry_frame_new(ObMenuEntry *entry,
 
     self->a_text_normal =
         RrAppearanceCopy(ob_rr_theme->a_menu_text_normal);
-    self->a_text_disabled =
-        RrAppearanceCopy(ob_rr_theme->a_menu_text_disabled);
     self->a_text_selected =
         RrAppearanceCopy(ob_rr_theme->a_menu_text_selected);
+    self->a_text_disabled =
+        RrAppearanceCopy(ob_rr_theme->a_menu_text_disabled);
+    self->a_text_disabled_selected =
+        RrAppearanceCopy(ob_rr_theme->a_menu_text_disabled_selected);
     self->a_text_title =
         RrAppearanceCopy(ob_rr_theme->a_menu_text_title);
 
@@ -186,15 +190,17 @@ static void menu_entry_frame_free(ObMenuEntryFrame *self)
         }
 
         RrAppearanceFree(self->a_normal);
-        RrAppearanceFree(self->a_disabled);
         RrAppearanceFree(self->a_selected);
+        RrAppearanceFree(self->a_disabled);
+        RrAppearanceFree(self->a_disabled_selected);
 
         RrAppearanceFree(self->a_separator);
         RrAppearanceFree(self->a_icon);
         RrAppearanceFree(self->a_mask);
         RrAppearanceFree(self->a_text_normal);
-        RrAppearanceFree(self->a_text_disabled);
         RrAppearanceFree(self->a_text_selected);
+        RrAppearanceFree(self->a_text_disabled);
+        RrAppearanceFree(self->a_text_disabled_selected);
         RrAppearanceFree(self->a_text_title);
         RrAppearanceFree(self->a_bullet_normal);
         RrAppearanceFree(self->a_bullet_selected);
@@ -338,12 +344,14 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
     switch (self->entry->type) {
     case OB_MENU_ENTRY_TYPE_NORMAL:
     case OB_MENU_ENTRY_TYPE_SUBMENU:
-        item_a = ((self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-                   !self->entry->data.normal.enabled) ?
-                  self->a_disabled :
+        item_a = (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
+                  !self->entry->data.normal.enabled ?
+                  /* disabled */
                   (self == self->frame->selected ?
-                   self->a_selected :
-                   self->a_normal));
+                   self->a_disabled_selected : self->a_disabled) :
+                  /* enabled */
+                  (self == self->frame->selected ?
+                   self->a_selected : self->a_normal));
         th = self->frame->item_h;
         break;
     case OB_MENU_ENTRY_TYPE_SEPARATOR:
@@ -368,11 +376,14 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
 
     switch (self->entry->type) {
     case OB_MENU_ENTRY_TYPE_NORMAL:
-        text_a = (!self->entry->data.normal.enabled ?
-                  self->a_text_disabled :
+        text_a = (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
+                  !self->entry->data.normal.enabled ?
+                  /* disabled */
+                  (self == self->frame->selected ?
+                   self->a_text_disabled_selected : self->a_text_disabled) :
+                  /* enabled */
                   (self == self->frame->selected ?
-                   self->a_text_selected :
-                   self->a_text_normal));
+                   self->a_text_selected : self->a_text_normal));
         text_a->texture[0].data.text.string = self->entry->data.normal.label;
         if (self->entry->data.normal.shortcut &&
             (self->frame->menu->show_all_shortcuts ||
@@ -502,9 +513,13 @@ static void menu_entry_frame_render(ObMenuEntryFrame *self)
         self->a_mask->texture[0].data.mask.mask =
             self->entry->data.normal.mask;
 
-        c = ((self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-              !self->entry->data.normal.enabled) ?
-             self->entry->data.normal.mask_disabled_color :
+        c = (self->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
+             !self->entry->data.normal.enabled ?
+             /* disabled */
+             (self == self->frame->selected ?
+              self->entry->data.normal.mask_disabled_selected_color :
+              self->entry->data.normal.mask_disabled_color) :
+             /* enabled */
              (self == self->frame->selected ?
               self->entry->data.normal.mask_selected_color :
               self->entry->data.normal.mask_normal_color));
@@ -592,6 +607,12 @@ static void menu_frame_render(ObMenuFrame *self)
                   MAX(self->item_margin.top, t),
                   MAX(self->item_margin.right, r),
                   MAX(self->item_margin.bottom, b));
+        RrMargins(e->a_disabled_selected, &l, &t, &r, &b);
+        STRUT_SET(self->item_margin,
+                  MAX(self->item_margin.left, l),
+                  MAX(self->item_margin.top, t),
+                  MAX(self->item_margin.right, r),
+                  MAX(self->item_margin.bottom, b));
     } else
         self->item_h = 0;
 
@@ -622,12 +643,15 @@ static void menu_frame_render(ObMenuFrame *self)
         XSetWindowBorder(ob_display, e->window,
                          RrColorPixel(ob_rr_theme->menu_b_color));
 
-        text_a = ((e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-                   !e->entry->data.normal.enabled) ?
-                  e->a_text_disabled :
+
+        text_a = (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
+                  !e->entry->data.normal.enabled ?
+                  /* disabled */
+                  (e == self->selected ?
+                   e->a_text_disabled_selected : e->a_text_disabled) :
+                  /* enabled */
                   (e == self->selected ?
-                   e->a_text_selected :
-                   e->a_text_normal));
+                   e->a_text_selected : e->a_text_normal));
         switch (e->entry->type) {
         case OB_MENU_ENTRY_TYPE_NORMAL:
             text_a->texture[0].data.text.string = e->entry->data.normal.label;
@@ -1045,8 +1069,7 @@ void menu_frame_select_previous(ObMenuFrame *self)
                 e = it->data;
                 if (e->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU)
                     break;
-                if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-                    e->entry->data.normal.enabled)
+                if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL)
                     break;
             }
         }
@@ -1071,8 +1094,7 @@ void menu_frame_select_next(ObMenuFrame *self)
                 e = it->data;
                 if (e->entry->type == OB_MENU_ENTRY_TYPE_SUBMENU)
                     break;
-                if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL &&
-                    e->entry->data.normal.enabled)
+                if (e->entry->type == OB_MENU_ENTRY_TYPE_NORMAL)
                     break;
             }
         }
index 5c87683..15bae66 100644 (file)
@@ -88,8 +88,9 @@ struct _ObMenuEntryFrame
     Window bullet;
 
     RrAppearance *a_normal;
-    RrAppearance *a_disabled;
     RrAppearance *a_selected;
+    RrAppearance *a_disabled;
+    RrAppearance *a_disabled_selected;
 
     RrAppearance *a_icon;
     RrAppearance *a_mask;
@@ -97,8 +98,9 @@ struct _ObMenuEntryFrame
     RrAppearance *a_bullet_selected;
     RrAppearance *a_separator;
     RrAppearance *a_text_normal;
-    RrAppearance *a_text_disabled;
     RrAppearance *a_text_selected;
+    RrAppearance *a_text_disabled;
+    RrAppearance *a_text_disabled_selected;
     RrAppearance *a_text_title;
 };
 
index 37b2334..45896c0 100644 (file)
@@ -84,11 +84,13 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
     theme->a_menu_title = RrAppearanceNew(inst, 0);
     theme->a_menu_text_title = RrAppearanceNew(inst, 1);
     theme->a_menu_normal = RrAppearanceNew(inst, 0);
-    theme->a_menu_disabled = RrAppearanceNew(inst, 0);
     theme->a_menu_selected = RrAppearanceNew(inst, 0);
+    theme->a_menu_disabled = RrAppearanceNew(inst, 0);
+    theme->a_menu_disabled_selected = RrAppearanceNew(inst, 0);
     theme->a_menu_text_normal = RrAppearanceNew(inst, 1);
-    theme->a_menu_text_disabled = RrAppearanceNew(inst, 1);
     theme->a_menu_text_selected = RrAppearanceNew(inst, 1);
+    theme->a_menu_text_disabled = RrAppearanceNew(inst, 1);
+    theme->a_menu_text_disabled_selected = RrAppearanceNew(inst, 1);
     theme->a_menu_bullet_normal = RrAppearanceNew(inst, 1);
     theme->a_menu_bullet_selected = RrAppearanceNew(inst, 1);
     theme->a_clear = RrAppearanceNew(inst, 0);
@@ -282,6 +284,14 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
                     &theme->menu_disabled_color))
         theme->menu_disabled_color = RrColorNew(inst, 0, 0, 0);
     if (!read_color(db, inst,
+                    "menu.items.activedisabled.text.color",
+                    &theme->menu_disabled_selected_color))
+        theme->menu_disabled_selected_color =
+            RrColorNew(inst,
+                       theme->menu_disabled_color->r,
+                       theme->menu_disabled_color->g,
+                       theme->menu_disabled_color->b);
+    if (!read_color(db, inst,
                     "menu.items.active.text.color",
                     &theme->menu_selected_color))
         theme->menu_selected_color = RrColorNew(inst, 0, 0, 0);
@@ -487,6 +497,8 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
                          "menu.items.active.bg", theme->a_menu_selected,
                          TRUE))
         set_default_appearance(theme->a_menu_selected);
+    theme->a_menu_disabled_selected =
+        RrAppearanceCopy(theme->a_menu_selected);
 
     /* read the appearances for rendering non-decorations */
     theme->osd_hilite_bg = RrAppearanceCopy(theme->a_focused_title);
@@ -648,8 +660,9 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
         theme->a_menu_normal->surface.grad =
         theme->a_menu_disabled->surface.grad =
         theme->a_menu_text_normal->surface.grad =
-        theme->a_menu_text_disabled->surface.grad =
         theme->a_menu_text_selected->surface.grad =
+        theme->a_menu_text_disabled->surface.grad =
+        theme->a_menu_text_disabled_selected->surface.grad =
         theme->a_menu_bullet_normal->surface.grad =
         theme->a_menu_bullet_selected->surface.grad = RR_SURFACE_PARENTREL;
 
@@ -784,21 +797,27 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
         theme->menu_title_shadow_alpha;
 
     theme->a_menu_text_normal->texture[0].type =
+        theme->a_menu_text_selected->texture[0].type =
         theme->a_menu_text_disabled->texture[0].type = 
-        theme->a_menu_text_selected->texture[0].type = RR_TEXTURE_TEXT;
+        theme->a_menu_text_disabled_selected->texture[0].type = 
+        RR_TEXTURE_TEXT;
     theme->a_menu_text_normal->texture[0].data.text.justify = 
-        theme->a_menu_text_disabled->texture[0].data.text.justify = 
         theme->a_menu_text_selected->texture[0].data.text.justify =
+        theme->a_menu_text_disabled->texture[0].data.text.justify = 
+        theme->a_menu_text_disabled_selected->texture[0].data.text.justify = 
         RR_JUSTIFY_LEFT;
     theme->a_menu_text_normal->texture[0].data.text.font =
-        theme->a_menu_text_disabled->texture[0].data.text.font =
         theme->a_menu_text_selected->texture[0].data.text.font =
+        theme->a_menu_text_disabled->texture[0].data.text.font =
+        theme->a_menu_text_disabled_selected->texture[0].data.text.font =
         theme->menu_font;
     theme->a_menu_text_normal->texture[0].data.text.color = theme->menu_color;
-    theme->a_menu_text_disabled->texture[0].data.text.color =
-        theme->menu_disabled_color;
     theme->a_menu_text_selected->texture[0].data.text.color =
         theme->menu_selected_color;
+    theme->a_menu_text_disabled->texture[0].data.text.color =
+        theme->menu_disabled_color;
+    theme->a_menu_text_disabled_selected->texture[0].data.text.color =
+        theme->menu_disabled_selected_color;
 
     if (read_string(db, "menu.items.font", &str)) {
         char *p;
@@ -813,13 +832,17 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
                 texture[0].data.text.shadow_offset_x = i;
             theme->a_menu_text_normal->
                 texture[0].data.text.shadow_offset_y = i;
+            theme->a_menu_text_selected->
+                texture[0].data.text.shadow_offset_x = i;
+            theme->a_menu_text_selected->
+                texture[0].data.text.shadow_offset_y = i;
             theme->a_menu_text_disabled->
                 texture[0].data.text.shadow_offset_x = i;
             theme->a_menu_text_disabled->
                 texture[0].data.text.shadow_offset_y = i;
-            theme->a_menu_text_selected->
+            theme->a_menu_text_disabled_selected->
                 texture[0].data.text.shadow_offset_x = i;
-            theme->a_menu_text_selected->
+            theme->a_menu_text_disabled_selected->
                 texture[0].data.text.shadow_offset_y = i;
         }
         if ((p = strstr(str, "shadowtint=")))
@@ -834,13 +857,14 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
             theme->menu_text_normal_shadow_alpha = i;
             theme->menu_text_selected_shadow_alpha = i;
             theme->menu_text_disabled_shadow_alpha = i;
+            theme->menu_text_disabled_selected_shadow_alpha = i;
         } else {
             theme->menu_text_normal_shadow_color = RrColorNew(inst, 0, 0, 0);
             theme->menu_text_selected_shadow_color = RrColorNew(inst, 0, 0, 0);
             theme->menu_text_disabled_shadow_color = RrColorNew(inst, 0, 0, 0);
             theme->menu_text_normal_shadow_alpha = 50;
             theme->menu_text_selected_shadow_alpha = 50;
-            theme->menu_text_disabled_shadow_alpha = 50;
+            theme->menu_text_disabled_selected_shadow_alpha = 50;
         }
     }
 
@@ -856,6 +880,10 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name,
         theme->menu_text_disabled_shadow_color;
     theme->a_menu_text_disabled->texture[0].data.text.shadow_alpha =
         theme->menu_text_disabled_shadow_alpha;
+    theme->a_menu_text_disabled_selected->texture[0].data.text.shadow_color =
+        theme->menu_text_disabled_shadow_color;
+    theme->a_menu_text_disabled_selected->texture[0].data.text.shadow_alpha =
+        theme->menu_text_disabled_shadow_alpha;
 
     theme->a_disabled_focused_max->texture[0].type = 
         theme->a_disabled_unfocused_max->texture[0].type = 
@@ -1110,8 +1138,9 @@ void RrThemeFree(RrTheme *theme)
         RrColorFree(theme->titlebut_unfocused_unpressed_color);
         RrColorFree(theme->menu_title_color);
         RrColorFree(theme->menu_color);
-        RrColorFree(theme->menu_disabled_color);
         RrColorFree(theme->menu_selected_color);
+        RrColorFree(theme->menu_disabled_color);
+        RrColorFree(theme->menu_disabled_selected_color);
         RrColorFree(theme->title_focused_shadow_color);
         RrColorFree(theme->title_unfocused_shadow_color);
         RrColorFree(theme->osd_color);
@@ -1120,6 +1149,7 @@ void RrThemeFree(RrTheme *theme)
         RrColorFree(theme->menu_text_normal_shadow_color);
         RrColorFree(theme->menu_text_selected_shadow_color);
         RrColorFree(theme->menu_text_disabled_shadow_color);
+        RrColorFree(theme->menu_text_disabled_selected_shadow_color);
 
         g_free(theme->def_win_icon);
 
@@ -1212,11 +1242,13 @@ void RrThemeFree(RrTheme *theme)
         RrAppearanceFree(theme->a_menu_title);
         RrAppearanceFree(theme->a_menu_text_title);
         RrAppearanceFree(theme->a_menu_normal);
-        RrAppearanceFree(theme->a_menu_disabled);
         RrAppearanceFree(theme->a_menu_selected);
+        RrAppearanceFree(theme->a_menu_disabled);
+        RrAppearanceFree(theme->a_menu_disabled_selected);
         RrAppearanceFree(theme->a_menu_text_normal);
-        RrAppearanceFree(theme->a_menu_text_disabled);
         RrAppearanceFree(theme->a_menu_text_selected);
+        RrAppearanceFree(theme->a_menu_text_disabled);
+        RrAppearanceFree(theme->a_menu_text_disabled_selected);
         RrAppearanceFree(theme->a_menu_bullet_normal);
         RrAppearanceFree(theme->a_menu_bullet_selected);
         RrAppearanceFree(theme->a_clear);
index 0012336..44581dd 100644 (file)
@@ -74,8 +74,9 @@ struct _RrTheme {
     RrColor *titlebut_unfocused_unpressed_color;
     RrColor *menu_title_color;
     RrColor *menu_color;
-    RrColor *menu_disabled_color;
     RrColor *menu_selected_color;
+    RrColor *menu_disabled_color;
+    RrColor *menu_disabled_selected_color;
     RrColor *title_focused_shadow_color;
     gchar    title_focused_shadow_alpha;
     RrColor *title_unfocused_shadow_color;
@@ -91,6 +92,8 @@ struct _RrTheme {
     gchar    menu_text_selected_shadow_alpha;
     RrColor *menu_text_disabled_shadow_color;
     gchar    menu_text_disabled_shadow_alpha;
+    RrColor *menu_text_disabled_selected_shadow_color;
+    gchar    menu_text_disabled_selected_shadow_alpha;
 
     /* style settings - pics */
     RrPixel32 *def_win_icon; /* 48x48 RGBA */
@@ -184,10 +187,12 @@ struct _RrTheme {
     RrAppearance *a_menu_title;
     RrAppearance *a_menu;
     RrAppearance *a_menu_normal;
-    RrAppearance *a_menu_disabled;
     RrAppearance *a_menu_selected;
+    RrAppearance *a_menu_disabled;
+    RrAppearance *a_menu_disabled_selected;
     RrAppearance *a_menu_text_normal;
     RrAppearance *a_menu_text_disabled;
+    RrAppearance *a_menu_text_disabled_selected;
     RrAppearance *a_menu_text_selected;
     RrAppearance *a_menu_bullet_normal;
     RrAppearance *a_menu_bullet_selected;
diff --git a/themes/Artwiz-boxed/openbox-3/bullet.xbm b/themes/Artwiz-boxed/openbox-3/bullet.xbm
deleted file mode 100644 (file)
index 5bab764..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#define bullet_blank_width 7
-#define bullet_blank_height 7
-static unsigned char bullet_blank_bits[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
index 06daea2..64da87c 100644 (file)
@@ -13,6 +13,7 @@ menu.items.bg: Flat Solid
 menu.items.bg.color: #f1eee0
 menu.items.text.color: #444444
 menu.items.disabled.text.color: #aaaaaa
+menu.items.activedisabled.text.color: #969696
 
 menu.items.active.bg: Flat Gradient Vertical Border
 menu.items.active.bg.color: #b4c994