LibMB  1.9
Typedefs | Enumerations | Functions
MBMenu - A simple popup menu widget

a simple independent popup menu widget, used mainly for application launchers etc. More...

Typedefs

typedef struct _menu MBMenuMenu
 Opaque type for a menu.
 
typedef struct _menuitem MBMenuItem
 Opaque type for a menu item.
 
typedef struct _mbmemu MBMenu
 Opaque type for a 'top level' menu.
 
typedef void(* MBMenuActivateCB) (MBMenuItem *item)
 Callback for an activated menu item.
 

Enumerations

enum  MBMenuColorElement
 Used to set various menu elements colours.
 
enum  MBMenuItemAddFlags
 Used to specify how an item is added to a menu.
 

Functions

MBMenumb_menu_new (Display *dpy, int screen)
 Creates a new toplevel mbmenu instance. More...
 
Bool mb_menu_set_font (MBMenu *mbmenu, char *font_desc)
 Sets the font used by the referenced menu. More...
 
Bool mb_menu_set_default_icons (MBMenu *mbmenu, char *folder, char *app)
 Sets the default icons to be uses when not supplied by an individual item. More...
 
void mb_menu_set_icon_size (MBMenu *mbmenu, int size)
 Sets the icon dimention in pixels used by the referenced menu instance. More...
 
void mb_menu_set_col (MBMenu *mbmenu, MBMenuColorElement element, char *col_spec)
 Sets the font used by the referenced menu instance. More...
 
void mb_menu_set_trans (MBMenu *mbmenu, int trans)
 Sets the menu's transparency level. More...
 
MBMenuMenumb_menu_get_root_menu (MBMenu *mbmenu)
 Gets the top level MBMenu menu. More...
 
Bool mb_menu_get_root_menu_size (MBMenu *mbmenu, int *width, int *height)
 Gets the top level MBMenu menu size. More...
 
void mb_menu_add_seperator_to_menu (MBMenu *mbmenu, MBMenuMenu *menu, int flags)
 Adds a seperator to a menu. More...
 
MBMenuMenumb_menu_add_path (MBMenu *mbmenu, char *path, char *icon_path, int flags)
 Adds single or multiple new menus to an mbmenu instance. More...
 
void mb_menu_remove_menu (MBMenu *mbmenu, MBMenuMenu *menu)
 Removes a menu and all of its sub menus. More...
 
void mb_menu_free (MBMenu *mbmenu)
 Free's a mbmenu toplevel instance. More...
 
Bool mb_menu_is_active (MBMenu *mbmenu)
 Checks to see if specified menu intance is active ( ie popped up ) More...
 
void mb_menu_activate (MBMenu *mbmenu, int x, int y)
 Checks to see if specified menu intance is active ( ie popped up ) More...
 
void mb_menu_deactivate (MBMenu *mbmenu)
 Deactivates ( hides ) a mbmenu instance. More...
 
void mb_menu_handle_xevent (MBMenu *mbmenu, XEvent *xevent)
 Processes an X Event. More...
 
MBMenuItemmb_menu_new_item (MBMenu *mbmenu, MBMenuMenu *menu, char *title, MBMenuActivateCB activate_callback, void *user_data, MBMenuItemAddFlags flags)
 Adds a new menu item to a menu. More...
 
void mb_menu_item_icon_set (MBMenu *mbmenu, MBMenuItem *item, MBPixbufImage *img)
 Adds a new menu item to a menu. More...
 
void * mb_menu_item_get_user_data (MBMenuItem *item)
 Gets any user data attatched to a menu item. More...
 
void mb_menu_item_remove (MBMenu *mbmenu, MBMenuMenu *menu, MBMenuItem *item)
 Removes a menu item. More...
 
void mb_menu_dump (MBMenu *mbmenu, MBMenuMenu *menu)
 Dumps an mbmenu menu structure to stdout. More...
 

Detailed Description

a simple independent popup menu widget, used mainly for application launchers etc.

NOTE: Its planned that one day in the future this will be superceded by matchbox-tk.

Function Documentation

void mb_menu_activate ( MBMenu mbmenu,
int  x,
int  y 
)

Checks to see if specified menu intance is active ( ie popped up )

Parameters
mbmenumb menu instance
xx co-ord ( relative to root window origin ) to activate menu
yy co-ord ( relative to root window origin ) to activate menu
MBMenuMenu* mb_menu_add_path ( MBMenu mbmenu,
char *  path,
char *  icon_path,
int  flags 
)

Adds single or multiple new menus to an mbmenu instance.

Parameters
mbmenuMBMenu instance
path
icon_path
flagscan be 0 or MBMENU_PREPEND to prepend the seperator rather than append the seperator to the menu.
Returns
new created menu
void mb_menu_add_seperator_to_menu ( MBMenu mbmenu,
MBMenuMenu menu,
int  flags 
)

Adds a seperator to a menu.

Parameters
mbmenuMBMenu instance
menuThe menu to add the seperator too.
flagscan be 0 or MBMENU_PREPEND to prepend the seperator rather than append the seperator to the menu.
void mb_menu_deactivate ( MBMenu mbmenu)

Deactivates ( hides ) a mbmenu instance.

Parameters
mbmenumb menu instance
void mb_menu_dump ( MBMenu mbmenu,
MBMenuMenu menu 
)

Dumps an mbmenu menu structure to stdout.

Parameters
mbmenumb menu instance
menumenu to dump
void mb_menu_free ( MBMenu mbmenu)

Free's a mbmenu toplevel instance.

Parameters
mbmenumbmenu instance
MBMenuMenu* mb_menu_get_root_menu ( MBMenu mbmenu)

Gets the top level MBMenu menu.

This menu is automatically created on initialisation

Parameters
mbmenumb menu instance
Returns
root menu instance.
Bool mb_menu_get_root_menu_size ( MBMenu mbmenu,
int *  width,
int *  height 
)

Gets the top level MBMenu menu size.

Parameters
mbmenumb menu instance
widthpointer to populate width int
heightpointer to populate height int
Returns
True on success, False on fail ( 0x0 menu ).
void mb_menu_handle_xevent ( MBMenu mbmenu,
XEvent *  xevent 
)

Processes an X Event.

Parameters
mbmenumb menu instance
xeventXevent to process
Bool mb_menu_is_active ( MBMenu mbmenu)

Checks to see if specified menu intance is active ( ie popped up )

Parameters
mbmenumb menu instance
Returns
True if menu is active, False otherwise
void* mb_menu_item_get_user_data ( MBMenuItem item)

Gets any user data attatched to a menu item.

Parameters
itemmenu item
Returns
void pointer to set user data.
void mb_menu_item_icon_set ( MBMenu mbmenu,
MBMenuItem item,
MBPixbufImage img 
)

Adds a new menu item to a menu.

Parameters
mbmenumb menu instance
itemmenu item
imgmbpixbuf image to set use as item image
void mb_menu_item_remove ( MBMenu mbmenu,
MBMenuMenu menu,
MBMenuItem item 
)

Removes a menu item.

Parameters
mbmenumbmenu instance
menuthe menu to remove from
itemthe menu item
MBMenu* mb_menu_new ( Display *  dpy,
int  screen 
)

Creates a new toplevel mbmenu instance.

Parameters
dpyX Display
screenX Screen
Returns
an mbmenu instance, NULL on failure.
MBMenuItem* mb_menu_new_item ( MBMenu mbmenu,
MBMenuMenu menu,
char *  title,
MBMenuActivateCB  activate_callback,
void *  user_data,
MBMenuItemAddFlags  flags 
)

Adds a new menu item to a menu.

Parameters
mbmenumb menu instance
menumenu to add the item too
titlemenu item title
activate_callbackfunction to call when menu is clicked.
user_datauser data to attach to item.
flagsspecify how the item is added to the menu
Returns
the created menu item or NULL on failiure.
void mb_menu_remove_menu ( MBMenu mbmenu,
MBMenuMenu menu 
)

Removes a menu and all of its sub menus.

Parameters
mbmenumb menu instance
menumenu to remove
void mb_menu_set_col ( MBMenu mbmenu,
MBMenuColorElement  element,
char *  col_spec 
)

Sets the font used by the referenced menu instance.

Parameters
mbmenumb menu instance
elementWhich part of the menu to set color
col_specColor specification in the form #RRGGBB
Bool mb_menu_set_default_icons ( MBMenu mbmenu,
char *  folder,
char *  app 
)

Sets the default icons to be uses when not supplied by an individual item.

Parameters
mbmenumb menu instance
foldericon filename for folders
appicon filename for items
Returns
True if icons loaded ok, False on failiure
Bool mb_menu_set_font ( MBMenu mbmenu,
char *  font_desc 
)

Sets the font used by the referenced menu.

Parameters
mbmenumb menu instance
font_descfont to load
Returns
True if font loaded, False on failiure
void mb_menu_set_icon_size ( MBMenu mbmenu,
int  size 
)

Sets the icon dimention in pixels used by the referenced menu instance.

If set to zero, icons will not be used by the menu.

Parameters
mbmenumb menu instance
sizeIcon dimention in pixels
void mb_menu_set_trans ( MBMenu mbmenu,
int  trans 
)

Sets the menu's transparency level.

The Transparency is a HACK!, use at your own risk, its unsupported.

Parameters
mbmenumb menu instance
transTransparency level