23 #include "libmb/mbconfig.h"
29 #include <sys/types.h>
35 #include <X11/Xutil.h>
36 #include <X11/Xatom.h>
38 #include <X11/Xresource.h>
39 #include <X11/extensions/shape.h>
40 #include <X11/Xatom.h>
41 #include <X11/keysymdef.h>
42 #include <X11/keysym.h>
46 #include <xsettings-client.h>
90 MBMENU_NO_SORT = (1<<1),
91 MBMENU_PREPEND = (1<<2)
101 #define MBMENU_FG_COL (1<<1)
102 #define MBMENU_BG_COL (1<<2)
103 #define MBMENU_HL_COL (1<<3)
104 #define MBMENU_BD_COL (1<<4)
105 #define MBMENU_FONT (1<<5)
106 #define MBMENU_BD_SZ (1<<6)
107 #define MBMENU_ICON_SZ (1<<7)
108 #define MBMENU_ICON_FN (1<<8)
109 #define MBMENU_ICON_FOLDER_FN (1<<9)
110 #define MBMENU_TRANS (1<<10)
111 #define MBMENU_BG_FN (1<<11)
112 #define MBMENU_BEVEL (1<<12)
114 typedef struct _menu_options
117 char *foreground_col_spec;
118 char *background_col_spec;
119 char *highlight_col_spec;
120 char *border_col_spec;
123 char *default_icon_filename;
124 char *default_folder_icon_filename;
125 char *bg_img_filename;
126 int transparency_level;
149 struct _menuitem *items;
150 struct _menuitem *active_item;
151 struct _menuitem *too_big_start_item;
152 struct _menuitem *too_big_end_item;
153 struct _menuitem *parent_item;
178 typedef struct _menuitem
183 void (* cb)(
struct _menuitem *item );
191 struct _menuitem *next_item;
204 typedef struct _mbmemu
236 Bool have_highlight_col;
241 int inner_border_width;
242 XColor border_cols[3];
252 Pixmap arrow_icon, arrow_mask;
253 Pixmap bg_pixmap, bg_pixmap_mask;
255 struct _menu *rootmenu;
256 Bool xmenu_is_active;
257 struct _menu *active[10];
262 struct _menu *keyboard_focus_menu;
265 XSettingsClient *xsettings_client;
470 mb_menu_add_item_to_menu(
MBMenu *mbmenu,