2 Header file for pulldown menu engine for Midnignt Commander
6 * \brief Header: pulldown menu code
9 #ifndef MC__WIDGET_MENU_H
10 #define MC__WIDGET_MENU_H
12 /*** typedefs(not structures) and defined constants **********************************************/
14 #define MENUBAR(x) ((WMenuBar *)(x))
16 #define menu_separator_create() NULL
18 /*** enums ***************************************************************************************/
20 /*** structures declarations (and typedefs of structures)*****************************************/
23 typedef struct menu_entry_t menu_entry_t
;
26 typedef struct menu_t menu_t
;
28 /* The button bar menu */
29 typedef struct WMenuBar
33 gboolean is_visible
; /* If the menubar is visible */
34 gboolean is_dropped
; /* If the menubar has dropped */
35 GList
*menu
; /* The actual menus */
36 guint selected
; /* Selected menu on the top bar */
37 unsigned long previous_widget
; /* Selected widget ID before activating menu */
40 /*** global variables defined in .c file *********************************************************/
42 /*** declarations of public functions ************************************************************/
44 menu_entry_t
*menu_entry_create (const char *name
, long command
);
45 void menu_entry_free (menu_entry_t
* me
);
47 menu_t
*create_menu (const char *name
, GList
* entries
, const char *help_node
);
48 void menu_set_name (menu_t
* menu
, const char *name
);
49 void destroy_menu (menu_t
* menu
);
51 WMenuBar
*menubar_new (int y
, int x
, int cols
, GList
* menu
, gboolean visible
);
52 void menubar_set_menu (WMenuBar
* menubar
, GList
* menu
);
53 void menubar_add_menu (WMenuBar
* menubar
, menu_t
* menu
);
54 void menubar_arrange (WMenuBar
* menubar
);
56 WMenuBar
*find_menubar (const WDialog
* h
);
58 void menubar_activate (WMenuBar
* menubar
, gboolean dropped
, int which
);
60 /*** inline functions ****************************************************************************/
63 menubar_set_visible (WMenuBar
* menubar
, gboolean visible
)
65 menubar
->is_visible
= visible
;
68 #endif /* MC__WIDGET_MENU_H */