summaryrefslogtreecommitdiff
path: root/src/menus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/menus.h')
-rw-r--r--src/menus.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/menus.h b/src/menus.h
index 9dcd315..f39aa5b 100644
--- a/src/menus.h
+++ b/src/menus.h
@@ -46,9 +46,13 @@
#define MENU_HGAP 4
#define MENU_VGAP 4
#define MENU_CLICK_TIME 20
+#define NO_CURRENT_ITEM ((unsigned short) -1)
-#define menu_is_pixmapped() ((images[image_menu].current->iml->im) && (images[image_menu].mode & MODE_MASK))
-#define menu_submenu_is_pixmapped() ((images[image_submenu].current->iml->im) && (images[image_submenu].mode & MODE_MASK))
+#define menu_is_pixmapped() ((images[image_menu].current->iml->im) && (images[image_menu].mode & MODE_MASK))
+#define menu_submenu_is_pixmapped() ((images[image_submenu].current->iml->im) && (images[image_submenu].mode & MODE_MASK))
+#define menuitem_get_current(m) (((m)->curitem != NO_CURRENT_ITEM) ? ((m)->items[(m)->curitem]) : (NULL))
+#define menuitem_set_current(m, i) ((m)->curitem = (i))
+#define menuitem_clear_current(m) ((m)->curitem = NO_CURRENT_ITEM)
/************ Structures ************/
typedef struct menu_t_struct menu_t;
@@ -121,8 +125,8 @@ extern void menu_reset(menu_t *);
extern void menu_reset_all(menulist_t *);
extern void menu_reset_tree(menu_t *);
extern void menu_reset_submenus(menu_t *);
-extern void menuitem_select(menu_t *, menuitem_t *);
-extern void menuitem_deselect(menu_t *, menuitem_t *);
+extern void menuitem_select(menu_t *);
+extern void menuitem_deselect(menu_t *);
extern void menu_display_submenu(menu_t *, menuitem_t *);
extern void menu_draw(menu_t *);
extern void menu_display(int, int, menu_t *);