home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC7.DMS / in.adf / classsource.lha / ClassSource / BOOPSI / gadgetclass / gadgetclass.c
Encoding:
C/C++ Source or Header  |  1995-02-12  |  1.3 KB  |  62 lines

  1.  
  2. #include <classes/BOOPSI/gadgetclass.h>
  3.  
  4. #pragma -
  5. #include <pragma/intuition_lib.h>
  6. #pragma +
  7.  
  8. BGadgetC::BGadgetC(GadgetEventC *ev, struct IClass *c,
  9.         STRPTR pubclass, WindowC &w,struct TagItem *tattr)
  10.     : BoopsiRootC(c,pubclass,tattr), GadgetC(ev)
  11. {
  12.     bWindow = &w;
  13.     gadget_ob = (struct Gadget *) boopsi_object;
  14.     setAttrs(GA_UserData,(GadgetC *) this,TAG_END);
  15. }
  16.  
  17. BGadgetC::BGadgetC(GadgetEventC *ev, struct IClass *c,
  18.         STRPTR pubclass, WindowC &w, Tag tag1type, ...)
  19.     : BoopsiRootC(c,pubclass,(struct TagItem *) &tag1type), GadgetC(ev)
  20. {
  21.     bWindow = &w;
  22.     gadget_ob = (struct Gadget *) boopsi_object;
  23.     setAttrs(GA_UserData,(GadgetC *) this,TAG_END);
  24. }
  25.  
  26. VOID BGadgetC::setAttrs(Tag tag1type, ...)
  27. {
  28.     setAttrs((struct TagItem *) &tag1type);
  29. }
  30.  
  31. VOID BGadgetC::setAttrs(struct TagItem *tattr)
  32. {
  33.     if (bWindow->window())
  34.         SetGadgetAttrsA((struct Gadget *) boopsi_object,
  35.             bWindow->window(),NULL,tattr);
  36.     else
  37.         SetAttrsA((APTR) boopsi_object,tattr);
  38. }
  39.  
  40. struct Gadget *BGadgetC::rebuild(struct Gadget *prev)
  41. {
  42.     if (prev)
  43.     {
  44.         prev->NextGadget = (struct Gadget *) boopsi_object;
  45.         return (struct Gadget *) boopsi_object;
  46.     };
  47.     return NULL;
  48. }
  49.  
  50. BOOL BGadgetC::disable(BOOL value)
  51. {
  52.     setAttrs(GA_Disabled,value,TAG_END);
  53.     refresh(bWindow);
  54.     return TRUE;
  55. }
  56.  
  57. BOOL BGadgetC::isDisabled() const
  58. {
  59.     return (((struct Gadget *) boopsi_object)->Flags & GFLG_DISABLED) != 0;
  60. }
  61.  
  62.