struct _ObMenuFrame
{
/* stuff to be an ObWindow */
- ObWindow type;
+ ObWindow obwin;
Window window;
struct _ObMenu *menu;
GList *entries;
ObMenuEntryFrame *selected;
+ /* if a submenu was selected, then this holds the entry for that submenu
+ until it is closed */
+ ObMenuEntryFrame *open_submenu;
/* show entries from the menu starting at this index */
guint show_from;
gint monitor; /* monitor on which to show the menu in xinerama */
- RrAppearance *a_title;
+ /* We make a copy of this for each menu, so that we don't have to re-render
+ the background of the entire menu each time we render an item inside it.
+ */
RrAppearance *a_items;
gboolean got_press; /* don't allow a KeyRelease event to run things in the
Window icon;
Window text;
Window bullet;
-
- RrAppearance *a_normal;
- RrAppearance *a_selected;
- RrAppearance *a_disabled;
- RrAppearance *a_disabled_selected;
-
- RrAppearance *a_icon;
- RrAppearance *a_mask;
- RrAppearance *a_bullet_normal;
- RrAppearance *a_bullet_selected;
- RrAppearance *a_separator;
- RrAppearance *a_text_normal;
- RrAppearance *a_text_selected;
- RrAppearance *a_text_disabled;
- RrAppearance *a_text_disabled_selected;
- RrAppearance *a_text_title;
};
extern GHashTable *menu_frame_map;
gboolean menu_frame_show_submenu(ObMenuFrame *self, ObMenuFrame *parent,
ObMenuEntryFrame *parent_entry);
-void menu_frame_hide_all();
+void menu_frame_hide_all(void);
void menu_frame_hide_all_client(struct _ObClient *client);
void menu_frame_render(ObMenuFrame *self);