home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1991 / 05 / d_flat / menu.h < prev    next >
Text File  |  1991-02-08  |  1KB  |  48 lines

  1. /* ------------ menu.h ------------- */
  2.  
  3. #ifndef MENU_H
  4. #define MENU_H
  5.  
  6. struct PopDown {
  7.     char *SelectionTitle;
  8.     int ActionId;
  9.     int Accelerator;
  10.     int Attrib;
  11. };
  12.  
  13. typedef struct Menu {
  14.     char *Title;
  15.     void (*PrepMenu)(void *, struct Menu *);
  16.     struct PopDown Selections[23];
  17.     int Selection;
  18. } MENU;
  19.  
  20. #define SEPCHAR "\xc4"
  21. #define DEFMENU(m) MENU m[]= {
  22. #define POPDOWN(ttl,func)      {ttl,func,{
  23. #define SELECTION(stxt,acc,id,attr)     {stxt,acc,id,attr},
  24. #define SEPARATOR                          {SEPCHAR},
  25. #define ENDPOPDOWN                         {NULL},0}},
  26. #define ENDMENU                {NULL} };
  27.  
  28. #define INACTIVE    1
  29. #define CHECKED        2
  30. #define TOGGLE        4
  31.  
  32. int MenuHeight(struct PopDown *);
  33. int MenuWidth(struct PopDown *);
  34.  
  35. struct PopDown *FindCmd(int);
  36. int isActive(int);
  37. void ActivateCommand(int);
  38. void DeactivateCommand(int);
  39. int GetCommandToggle(int);
  40. void SetCommandToggle(int);
  41. void ClearCommandToggle(int);
  42. void InvertCommandToggle(int);
  43.  
  44. extern MENU *ActiveMenu;
  45.  
  46. #endif
  47.  
  48.