home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / printer / graphpaper / src / src.lha / buttons.c < prev    next >
C/C++ Source or Header  |  1993-04-06  |  2KB  |  103 lines

  1. #include "graph.h"
  2.  
  3. struct Gadget *MinorMode;
  4.  
  5. static void EnableGad(struct Gadget *gad)
  6. {
  7.     SnipAllBut(gad);
  8.     OnGadget(gad, wG, NULL);  /* does a refresh */
  9.     RestoreGads();
  10. }
  11.  
  12. static void DisableGad(struct Gadget *gad)
  13. {
  14.     SnipAllBut(gad);
  15.     OffGadget(gad, wG, NULL);  /* does a refresh */
  16.     RestoreGads();
  17. }
  18.  
  19. void enable_minor_grid(void)
  20. {
  21.     EnableGad(&Minor_Thickness);
  22.     EnableGad(&minor_x);
  23.     EnableGad(&minor_y);
  24.     EnableGad(&minor_slider_left);
  25.     EnableGad(&minor_slider_middle);
  26.     EnableGad(&minor_slider_right);
  27. }
  28.  
  29. void disable_minor_grid(void)
  30. {
  31.     DisableGad(&Minor_Thickness);
  32.     DisableGad(&minor_x);
  33.     DisableGad(&minor_y);
  34.     DisableGad(&minor_slider_left);
  35.     DisableGad(&minor_slider_middle);
  36.     DisableGad(&minor_slider_right);
  37. }
  38.  
  39. static void turn_off(struct Gadget *gad)
  40. {
  41.     gad->Flags &= ~SELECTED;
  42.     RefreshOneGad(gad);
  43. }
  44.  
  45. void turnoff_others(struct Gadget *which)
  46. {
  47.    if (which != &None  ) turn_off(&None);
  48.    if (which != &Linear) turn_off(&Linear);
  49.    if (which != &LogX  ) turn_off(&LogX);
  50.    if (which != &LogY  ) turn_off(&LogY);
  51.    if (which != &LogLog) turn_off(&LogLog);
  52. }
  53.  
  54. void enter(struct Gadget *gad, char *name)
  55. {
  56.     MinorMode = gad;
  57.     if (!(gad->Flags & SELECTED)) {
  58.         /* was on - don't allow direct turn off */
  59.         /* turn it back on */
  60.         gad->Flags |= SELECTED;
  61.     }
  62.     sprintf(messagebuf, "Minor Grid: %s", name);
  63.     message(messagebuf);
  64.     turnoff_others(gad);
  65. }
  66.  
  67. void MG_None(APTR object)
  68. {
  69.   enter(&None, "None");
  70.   disable_minor_grid();
  71. }
  72.  
  73. void MG_Linear(APTR object)
  74. {
  75.   enter(&Linear, "Linear");
  76.   enable_minor_grid();
  77. }
  78.  
  79. void MG_LogX(APTR object)
  80. {
  81.   enter(&LogX, "LogX");
  82.   enable_minor_grid();
  83. }
  84.  
  85. void MG_LogY(APTR object)
  86. {
  87.   enter(&LogY, "LogY");
  88.   enable_minor_grid();
  89. }
  90.  
  91. void MG_LogLog(APTR object)
  92. {
  93.   enter(&LogLog, "LogLog");
  94.   enable_minor_grid();
  95. }
  96.  
  97.  
  98. /* initialize - enable only the Linear button */
  99. void button_init(void)
  100. {
  101.    MG_Linear(NULL);
  102. }
  103.