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

  1. /* ------------- menu.c ------------- */
  2.  
  3. #include <stdio.h>
  4. #include "dflat.h"
  5.  
  6. extern MENU *ActiveMenu;
  7.  
  8. struct PopDown *FindCmd(int cmd)
  9. {
  10.     MENU *mn = ActiveMenu;
  11.     while (mn->Title != NULL)    {
  12.         struct PopDown *pd = mn->Selections;
  13.         while (pd->SelectionTitle != NULL)    {
  14.             if (pd->ActionId == cmd)
  15.                 return pd;
  16.             pd++;
  17.         }
  18.         mn++;
  19.     }
  20.     return NULL;
  21. }
  22.  
  23. void ActivateCommand(int cmd)
  24. {
  25.     struct PopDown *pd = FindCmd(cmd);
  26.     if (pd != NULL)
  27.         pd->Attrib &= ~INACTIVE;
  28. }
  29.  
  30. void DeactivateCommand(int cmd)
  31. {
  32.     struct PopDown *pd = FindCmd(cmd);
  33.     if (pd != NULL)
  34.         pd->Attrib |= INACTIVE;
  35. }
  36.  
  37. int isActive(int cmd)
  38. {
  39.     struct PopDown *pd = FindCmd(cmd);
  40.     if (pd != NULL)
  41.         return !(pd->Attrib & INACTIVE);
  42.     return FALSE;
  43. }
  44.  
  45. int GetCommandToggle(int cmd)
  46. {
  47.     struct PopDown *pd = FindCmd(cmd);
  48.     if (pd != NULL)
  49.         return pd->Attrib & CHECKED;
  50.     return FALSE;
  51. }
  52.  
  53. void SetCommandToggle(int cmd)
  54. {
  55.     struct PopDown *pd = FindCmd(cmd);
  56.     if (pd != NULL)
  57.         pd->Attrib |= CHECKED;
  58. }
  59.  
  60. void ClearCommandToggle(int cmd)
  61. {
  62.     struct PopDown *pd = FindCmd(cmd);
  63.     if (pd != NULL)
  64.         pd->Attrib &= ~CHECKED;
  65. }
  66.  
  67. void InvertCommandToggle(int cmd)
  68. {
  69.     struct PopDown *pd = FindCmd(cmd);
  70.     if (pd != NULL)
  71.         pd->Attrib ^= CHECKED;
  72. }
  73.