home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / e / EasyGUI_v33b2.lha / Src / Plugins / animcontrol.e next >
Text File  |  1997-02-02  |  3KB  |  101 lines

  1. OPT MODULE, PREPROCESS
  2.  
  3. MODULE 'tools/EasyGUI', 'tools/ghost',
  4.        'intuition/intuition', 'intuition/gadgetclass',
  5.        'gadgets/tapedeck'
  6.  
  7. EXPORT OBJECT animcontrol OF plugin
  8.   frame
  9.   mode
  10.   disabled
  11. PRIVATE
  12.   animcontrol:PTR TO gadget
  13.   animcontrolbase
  14.   frames
  15.   downmode
  16. ENDOBJECT
  17.  
  18. PROC animcontrol(frame=0,frames=8,play=FALSE,disabled=FALSE) OF animcontrol
  19.   self.animcontrolbase:=OpenLibrary('gadgets/tapedeck.gadget',39)
  20.   IF self.animcontrolbase=NIL THEN Raise("anim")
  21.   self.frame:=frame
  22.   self.frames:=frames
  23.   self.mode:=IF play THEN BUT_PLAY ELSE BUT_STOP
  24.   self.disabled:=disabled
  25. ENDPROC
  26.  
  27. PROC end() OF animcontrol
  28.   IF self.animcontrolbase THEN CloseLibrary(self.animcontrolbase)
  29. ENDPROC
  30.  
  31. PROC min_size(ta,fh) OF animcontrol
  32. ENDPROC 203,15
  33.  
  34. PROC will_resize() OF animcontrol IS 0
  35.  
  36. PROC render(ta,x,y,xs,ys,w) OF animcontrol
  37.   self.animcontrol:=NewObjectA(NIL,'tapedeck.gadget',
  38.                      [GA_TOP,y, GA_LEFT,x, GA_WIDTH,xs, GA_HEIGHT,ys,
  39.                       TDECK_MODE,self.mode, TDECK_FRAMES,self.frames,
  40.                       TDECK_CURRENTFRAME,self.frame, TDECK_TAPE,FALSE,
  41.                       GA_DISABLED,self.disabled,
  42.                       GA_RELVERIFY,TRUE, GA_IMMEDIATE,TRUE, NIL])
  43.   IF self.animcontrol=NIL THEN Raise("anim")
  44.   AddGList(w,self.animcontrol,-1,1,NIL)
  45.   RefreshGList(self.animcontrol,w,NIL,1)
  46.   IF self.disabled THEN ghost(w,self.x,self.y,self.xs,self.ys)
  47. ENDPROC
  48.  
  49. PROC clear_render(win:PTR TO window) OF animcontrol
  50.   IF self.animcontrol
  51.     RemoveGList(win,self.animcontrol,1)
  52.     DisposeObject(self.animcontrol)
  53.   ENDIF
  54. ENDPROC
  55.  
  56. PROC message_test(imsg:PTR TO intuimessage,win:PTR TO window) OF animcontrol
  57.   IF imsg.class=IDCMP_GADGETUP THEN RETURN imsg.iaddress=self.animcontrol
  58.   IF imsg.class=IDCMP_GADGETDOWN THEN RETURN imsg.iaddress=self.animcontrol
  59. ENDPROC FALSE
  60.  
  61. PROC message_action(class,qual,code,win:PTR TO window) OF animcontrol
  62.   DEF mode, frame
  63.   GetAttr(TDECK_MODE,self.animcontrol,{mode})
  64.   GetAttr(TDECK_CURRENTFRAME,self.animcontrol,{frame})
  65.   IF class=IDCMP_GADGETDOWN
  66.     self.downmode:=mode
  67.     IF mode=BUT_FRAME THEN mode:=BUT_STOP
  68.     self.mode:=mode
  69.     IF (mode<>BUT_REWIND) AND (mode<>BUT_FORWARD) THEN RETURN FALSE
  70.   ELSE
  71.     IF self.downmode=BUT_FRAME
  72.       mode:=BUT_STOP
  73.       self.downmode:=BUT_STOP
  74.     ENDIF
  75.     self.mode:=mode
  76.   ENDIF
  77.   self.frame:=frame
  78. ENDPROC TRUE
  79.  
  80. PROC setframe(n) OF animcontrol
  81.   self.frame:=n
  82.   SetGadgetAttrsA(self.animcontrol,self.gh.wnd,NIL,[TDECK_CURRENTFRAME,n,NIL])
  83.   IF self.disabled THEN ghost(self.gh.wnd,self.x,self.y,self.xs,self.ys)
  84. ENDPROC
  85.  
  86. PROC setplay(play=TRUE) OF animcontrol
  87.   self.mode:=IF play THEN BUT_PLAY ELSE BUT_STOP
  88.   SetGadgetAttrsA(self.animcontrol,self.gh.wnd,NIL,[TDECK_MODE,self.mode,NIL])
  89.   IF self.disabled THEN ghost(self.gh.wnd,self.x,self.y,self.xs,self.ys)
  90. ENDPROC
  91.  
  92. PROC setdisabled(disabled=TRUE) OF animcontrol
  93.   SetGadgetAttrsA(self.animcontrol,self.gh.wnd,NIL,[GA_DISABLED,disabled,NIL])
  94.   IF disabled
  95.     ghost(self.gh.wnd,self.x,self.y,self.xs,self.ys)
  96.   ELSE
  97.     unghost(self.animcontrol,self.gh.wnd)
  98.   ENDIF
  99.   self.disabled:=disabled
  100. ENDPROC
  101.