From 76aeb9b231fdd82ffe7f3d39b515c468d2029c4c Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 22 Jun 2003 08:32:35 +0000 Subject: 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. --- openbox/menu_render.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'openbox/menu_render.c') 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); -- cgit v1.2.3