home *** CD-ROM | disk | FTP | other *** search
- /* ------------ menu.h ------------- */
-
- #ifndef MENU_H
- #define MENU_H
-
- #define MAXPULLDOWNS 15
- #define MAXSELECTIONS 20
- #define MAXCASCADES 3 /* nesting level of cascaded menus */
-
- /* ----------- popdown menu selection structure
- one for each selection on a popdown menu --------- */
- struct PopDown {
- unsigned char *SelectionTitle; /* title of the selection */
- int ActionId; /* the command executed */
- int Accelerator; /* the accelerator key */
- int Attrib; /* INACTIVE | CHECKED | TOGGLE | CASCADED*/
- char *help; /* Help mnemonic */
- };
-
- /* ----------- popdown menu structure
- one for each popdown menu on the menu bar -------- */
- typedef struct Menu {
- char *Title; /* title on the menu bar */
- void (*PrepMenu)(void *, struct Menu *); /* function */
- char *StatusText; /* text for the status bar */
- int CascadeId; /* command id of cascading selection */
- int Selection; /* most recent selection */
- struct PopDown Selections[MAXSELECTIONS+1];
- } MENU;
-
- /* ----- one for each menu bar ----- */
- typedef struct MenuBar {
- int ActiveSelection;
- MENU PullDown[MAXPULLDOWNS+1];
- } MBAR;
-
- /* --------- macros to define a menu bar with
- popdowns and selections ------------- */
- #define SEPCHAR "\xc4"
- #define DEFMENU(m) MBAR m = {-1,{
- #define POPDOWN(ttl,func,stat) {ttl,func,stat,-1,0,{
- #define CASCADED_POPDOWN(id,func) {NULL,func,NULL,id,0,{
- #define SELECTION(stxt,acc,id,attr) {stxt,acc,id,attr,#acc},
- #define SEPARATOR {SEPCHAR},
- #define ENDPOPDOWN {NULL}}},
- #define ENDMENU {(void *)-1} }};
-
- /* -------- menu selection attributes -------- */
- #define INACTIVE 1
- #define CHECKED 2
- #define TOGGLE 4
- #define CASCADED 8
-
- /* --------- the standard menus ---------- */
- extern MBAR MainMenu;
- extern MBAR SystemMenu;
- extern MBAR *ActiveMenuBar;
-
- int MenuHeight(struct PopDown *);
- int MenuWidth(struct PopDown *);
-
- #endif
-