+
+void menu_entry_render(MenuEntry *self)
+{
+ Menu *menu = self->parent;
+ RrAppearance *a;
+
+ switch (self->render_type) {
+ case MenuEntryRenderType_Submenu:
+ /* TODO: submenu mask */
+ case MenuEntryRenderType_Boolean:
+ /* TODO: boolean check */
+ a = self->enabled ? (self->hilite ? self->a_hilite : self->a_item)
+ : self->a_disabled;
+ break;
+ case MenuEntryRenderType_None:
+ a = self->enabled ? (self->hilite ? self->a_hilite : self->a_item )
+ : self->a_disabled;
+ break;
+ case MenuEntryRenderType_Separator:
+ a = self->a_item;
+ break;
+
+ default:
+ g_message("unhandled render_type");
+ a = !self->enabled ? self->a_disabled :
+ (self->hilite &&
+ (self->action || self->render_type == MenuEntryRenderType_Submenu) ?
+ self->a_hilite : self->a_item);
+ break;
+ }
+ g_message ("%s %d", self->label, self->hilite);
+
+ XMoveResizeWindow(ob_display, self->item, 0, self->y,
+ menu->size.width, menu->item_h);
+
+ a->surface.parent = menu->a_items;
+ a->surface.parentx = 0;
+ a->surface.parenty = self->y;
+
+ RrPaint(a, self->item, menu->size.width, menu->item_h);
+}