summaryrefslogtreecommitdiff
path: root/openbox/menu_render.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-06-22 08:32:35 +0000
committerDana Jansens <danakj@orodu.net>2003-06-22 08:32:35 +0000
commit76aeb9b231fdd82ffe7f3d39b515c468d2029c4c (patch)
treeb1f1ef086d57880a72e94e61b15871be47e699ed /openbox/menu_render.c
parent197988af674da27837f7a9e930e7a6d5c7a48c60 (diff)
add a simple menu parser.
while menu parsing, the theme does not exist so we can't do any theme stuff while creating menu stuff, so put that off for later, i.e when the menu is shown.
Diffstat (limited to 'openbox/menu_render.c')
-rw-r--r--openbox/menu_render.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/openbox/menu_render.c b/openbox/menu_render.c
index 2ca1c773..73a539e8 100644
--- a/openbox/menu_render.c
+++ b/openbox/menu_render.c
@@ -26,6 +26,18 @@ void menu_render_full(Menu *self) {
self->size.width = 1;
self->item_h = 1;
+ if (self->a_title == NULL) {
+ XSetWindowBorderWidth(ob_display, self->frame, ob_rr_theme->bwidth);
+ XSetWindowBackground(ob_display, self->frame,
+ ob_rr_theme->b_color->pixel);
+ XSetWindowBorderWidth(ob_display, self->title, ob_rr_theme->bwidth);
+ XSetWindowBorder(ob_display, self->frame, ob_rr_theme->b_color->pixel);
+ XSetWindowBorder(ob_display, self->title, ob_rr_theme->b_color->pixel);
+
+ self->a_title = RrAppearanceCopy(ob_rr_theme->a_menu_title);
+ self->a_items = RrAppearanceCopy(ob_rr_theme->a_menu);
+ }
+
/* set texture data and size them mofos out */
if (self->label) {
self->a_title->texture[0].data.text.string = self->label;
@@ -39,6 +51,12 @@ void menu_render_full(Menu *self) {
MenuEntry *e = it->data;
int h;
+ if (e->a_item == NULL) {
+ e->a_item = RrAppearanceCopy(ob_rr_theme->a_menu_item);
+ e->a_disabled = RrAppearanceCopy(ob_rr_theme->a_menu_disabled);
+ e->a_hilite = RrAppearanceCopy(ob_rr_theme->a_menu_hilite);
+ }
+
e->a_item->texture[0].data.text.string = e->label;
RrMinsize(e->a_item, &e->min_w, &self->item_h);
self->size.width = MAX(self->size.width, e->min_w);