1 | #ifndef MENUBAR_H_ |
1 | #ifndef MENUBAR_H_ |
2 | #define MENUBAR_H_ |
2 | #define MENUBAR_H_ |
3 | |
3 | |
4 | typedef struct { |
4 | typedef struct { |
5 | short type; /* must not be changed; first element */ |
5 | int type; /* must not be changed; first element */ |
6 | short len; /* strlen (str) */ |
6 | int len; /* strlen (str) */ |
7 | unsigned char *str; /* action to take */ |
7 | char *str; /* action to take */ |
8 | } action_t; |
8 | } action_t; |
9 | |
9 | |
10 | typedef struct { |
10 | typedef struct { |
11 | short type; /* must not be changed; first element */ |
11 | int type; /* must not be changed; first element */ |
12 | struct menu_t *menu; /* sub-menu */ |
12 | struct menu_t *menu; /* sub-menu */ |
13 | } submenu_t; |
13 | } submenu_t; |
14 | |
14 | |
15 | typedef struct menuitem_t { |
15 | typedef struct menuitem_t { |
16 | struct menuitem_t *prev; /* prev menu-item */ |
16 | struct menuitem_t *prev; /* prev menu-item */ |
… | |
… | |
18 | char *name; /* character string displayed */ |
18 | char *name; /* character string displayed */ |
19 | char *name2; /* character string displayed (right) */ |
19 | char *name2; /* character string displayed (right) */ |
20 | short len; /* strlen (name) */ |
20 | short len; /* strlen (name) */ |
21 | short len2; /* strlen (name) */ |
21 | short len2; /* strlen (name) */ |
22 | union { |
22 | union { |
23 | short type; /* must not be changed; first element */ |
23 | short type; /* must not be changed; first element */ |
24 | action_t action; |
24 | action_t action; |
25 | submenu_t submenu; |
25 | submenu_t submenu; |
26 | } entry; |
26 | } entry; |
27 | } menuitem_t; |
27 | } menuitem_t; |
28 | |
28 | |
29 | enum menuitem_t_action { |
29 | enum menuitem_t_action { |
30 | MenuLabel, |
30 | MenuLabel, |
… | |
… | |
66 | /* #define DEBUG_MENU_LAYOUT */ |
66 | /* #define DEBUG_MENU_LAYOUT */ |
67 | /* #define DEBUG_MENUBAR_STACKING */ |
67 | /* #define DEBUG_MENUBAR_STACKING */ |
68 | |
68 | |
69 | #define HSPACE 1 /* one space */ |
69 | #define HSPACE 1 /* one space */ |
70 | #define isSeparator(name) ((name)[0] == '\0') |
70 | #define isSeparator(name) ((name)[0] == '\0') |
71 | #define HEIGHT_SEPARATOR (SHADOW + 1) |
71 | #define HEIGHT_SEPARATOR (MENU_SHADOW + 1) |
72 | #define HEIGHT_TEXT (Height2Pixel(1) + 2) |
72 | #define HEIGHT_TEXT (Height2Pixel(1) + 2) |
73 | |
73 | |
74 | #define MENU_DELAY_USEC 0 /* no delay */ |
74 | #define MENU_DELAY_USEC 0 /* no delay */ |
75 | |
75 | |
76 | #define SEPARATOR_NAME "-" |
76 | #define SEPARATOR_NAME "-" |