home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1991 / 08 / dflat5 / menu.h < prev    next >
Text File  |  1991-06-25  |  2KB  |  51 lines

  1. /* ------------ menu.h ------------- */
  2.  
  3. #ifndef MENU_H
  4. #define MENU_H
  5.  
  6. /* ----------- popdown menu selection structure
  7.        one for each selection on a popdown menu --------- */
  8. struct PopDown {
  9.     unsigned char *SelectionTitle; /* title of the selection */
  10.     int ActionId;          /* the command executed        */
  11.     int Accelerator;       /* the accelerator key         */
  12.     int Attrib;            /* INACTIVE | CHECKED | TOGGLE */
  13.     char *help;            /* Help mnemonic               */
  14. };
  15.  
  16. /* ----------- popdown menu structure
  17.        one for each popdown menu on the menu bar -------- */
  18. typedef struct Menu {
  19.     char *Title;           /* title on the menu bar       */
  20.     void (*PrepMenu)(void *, struct Menu *); /* function  */
  21.     char *StatusText;      /* text for the status bar     */
  22.     struct PopDown Selections[23]; /* up to 23 selections */
  23.     int Selection;         /* most recent selection       */
  24. } MENU;
  25.  
  26. /* --------- macros to define a menu bar with
  27.                  popdowns and selections ------------- */
  28. #define SEPCHAR "\xc4"
  29. #define DEFMENU(m) MENU m[]= {
  30. #define POPDOWN(ttl,func,stat)  {ttl,func,stat,{
  31. #define SELECTION(stxt,acc,id,attr)   {stxt,acc,id,attr,#acc},
  32. #define SEPARATOR                     {SEPCHAR},
  33. #define ENDPOPDOWN                    {NULL},0}},
  34. #define ENDMENU                {NULL} };
  35.  
  36. /* -------- menu selection attributes -------- */
  37. #define INACTIVE    1
  38. #define CHECKED     2
  39. #define TOGGLE      4
  40.  
  41. /* --------- the standard menus ---------- */
  42. extern MENU MainMenu[];
  43. extern MENU SystemMenu[];
  44. extern MENU *ActiveMenu;
  45.  
  46. int MenuHeight(struct PopDown *);
  47. int MenuWidth(struct PopDown *);
  48.  
  49. #endif
  50.  
  51.