home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / drdobbs / 1991 / 08 / dflat5 / menu.c < prev    next >
Text File  |  1991-04-22  |  1KB  |  70 lines

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