home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 600-699 / ff623.lha / AIB / Source / gadgets.c < prev    next >
C/C++ Source or Header  |  1992-03-21  |  2KB  |  109 lines

  1. /* gadget stuff */
  2.  
  3. #include "aib.h"
  4. #include "extern.h"
  5.  
  6. /* defines... */
  7.  
  8. /* prototypes */
  9. void gad_opts (struct Gadget *, UWORD);
  10. void prepare_newgad (void);
  11. void locate_gadget(int);
  12.  
  13. /* globals */
  14.  
  15.  
  16. /****************************************************************************/
  17.  
  18. void gad_opts (struct Gadget *gad, UWORD code)
  19. {
  20.      switch (gad->GadgetID) {
  21.  
  22. /** init menu... */
  23. case G1_user:
  24.     strcpy(currgad->name,((struct StringInfo*)gad->SpecialInfo)->Buffer);
  25.     break;
  26.  
  27. case G1_left:
  28.     currgad->l=((struct StringInfo *)gad->SpecialInfo)->LongInt;
  29.     break;
  30.  
  31. case G1_top:
  32.     currgad->t=((struct StringInfo *)gad->SpecialInfo)->LongInt;
  33.     break;
  34.  
  35. case G1_widt:
  36.     currgad->w=((struct StringInfo *)gad->SpecialInfo)->LongInt;
  37.     break;
  38.  
  39. case G1_height:
  40.     currgad->h=((struct StringInfo *)gad->SpecialInfo)->LongInt;
  41.     break;
  42.  
  43. case G1_text:
  44.     strcpy(currgad->text,((struct StringInfo*)gad->SpecialInfo)->Buffer);
  45.     break;    
  46.  
  47. case GA_disa:
  48.     currgad->dis = (currgad->dis)?FALSE:TRUE;
  49.     break;
  50.  
  51. case GT_Under:
  52.     strcpy(currgad->under,((struct StringInfo*)gad->SpecialInfo)->Buffer);
  53.     break;    
  54.  
  55. case G1_chfont:
  56.     currgad->cfont = (currgad->cfont)?FALSE:TRUE;
  57.     break;
  58.  
  59. case G1_type:    
  60.     currgad->type=code;
  61.     break;
  62.  
  63. /* parameters menu... */
  64.  
  65.   }
  66. }
  67.  
  68.  
  69. /***********************************************************************/
  70.  
  71.  
  72. void locate_gadget (int index)
  73. {
  74.  
  75.  struct maingad *temp = topgad;
  76.  
  77.  while (temp->id != index && temp->next) temp = temp->next;
  78.  currgad = temp;
  79.  
  80. }
  81.  
  82.  
  83. /************************************************************************/
  84.  
  85.  
  86. void prepare_newgad (void)
  87. {
  88.  struct maingad *temp=topgad; 
  89.  
  90.  if (!topgad) {
  91.       currgad=topgad=(struct maingad *)calloc(sizeof(struct maingad),1);
  92.     currgad->prev = NULL;
  93.      currgad->id = 0 ;
  94.     }
  95. else {
  96.      while(temp->next) temp=temp->next;
  97.     temp->next = (struct maingad *)calloc(sizeof(struct maingad),1);
  98.     currgad=temp->next;
  99.     currgad->id = temp->id+1;
  100.     currgad->prev = temp;
  101.       }
  102.  
  103. currgad->next = NULL;
  104. currgad->text[0] = NULL;
  105. currgad->name[0] = NULL;
  106. currgad->under = NULL;
  107. currgad->type = 0;
  108. }
  109.