home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / e / EasyGUI_v33b2.lha / Src / Plugins / gradient.e < prev    next >
Text File  |  1997-02-02  |  2KB  |  87 lines

  1. OPT MODULE
  2.  
  3. MODULE 'tools/EasyGUI', 'tools/ghost',
  4.        'intuition/gadgetclass', 'intuition/intuition',
  5.        'gadgets/gradientslider'
  6.  
  7. EXPORT OBJECT gradient OF plugin
  8.   curval
  9.   pens:PTR TO INT
  10.   disabled
  11. PRIVATE
  12.   grad:PTR TO gadget
  13.   gradbase
  14.   vert
  15.   rel
  16. ENDOBJECT
  17.  
  18. PROC gradient(vert=FALSE,curval=0,rel=5,pens=NIL,disabled=FALSE) OF gradient
  19.   self.gradbase:=OpenLibrary('gadgets/gradientslider.gadget',39)
  20.   IF self.gradbase=NIL THEN Raise("grad")
  21.   self.curval:=curval
  22.   self.vert:=vert
  23.   self.rel:=rel
  24.   self.pens:=pens
  25.   self.disabled:=disabled
  26. ENDPROC
  27.  
  28. PROC end() OF gradient
  29.   IF self.gradbase THEN CloseLibrary(self.gradbase)
  30. ENDPROC
  31.  
  32. PROC min_size(ta,fh) OF gradient IS
  33.   IF self.vert THEN (fh+6) ELSE (fh*self.rel),
  34.   IF self.vert THEN (fh*self.rel) ELSE (fh+6)
  35.  
  36. PROC will_resize() OF gradient IS IF self.vert THEN RESIZEY ELSE RESIZEX
  37.  
  38. PROC render(ta,x,y,xs,ys,w) OF gradient
  39.   self.grad:=NewObjectA(NIL,'gradientslider.gadget',
  40.                        [GA_TOP,y, GA_LEFT,x, GA_WIDTH,xs, GA_HEIGHT,ys,
  41.                         GRAD_CURVAL,self.curval, GRAD_PENARRAY,self.pens,
  42.                         PGA_FREEDOM,IF self.vert THEN LORIENT_VERT ELSE LORIENT_HORIZ,
  43.                         GA_RELVERIFY,TRUE, GA_DISABLED,self.disabled, NIL])
  44.   IF self.grad=NIL THEN Raise("grad")
  45.   AddGList(w,self.grad,-1,1,NIL)
  46.   RefreshGList(self.grad,w,NIL,1)
  47.   IF self.disabled THEN ghost(w,self.x,self.y,self.xs,self.ys)
  48. ENDPROC
  49.  
  50. PROC clear_render(win:PTR TO window) OF gradient
  51.   IF self.grad
  52.     RemoveGList(win,self.grad,1)
  53.     DisposeObject(self.grad)
  54.   ENDIF
  55. ENDPROC
  56.  
  57. PROC message_test(imsg:PTR TO intuimessage,win:PTR TO window) OF gradient
  58.   IF imsg.class=IDCMP_GADGETUP THEN RETURN imsg.iaddress=self.grad
  59. ENDPROC FALSE
  60.  
  61. PROC message_action(class,qual,code,win:PTR TO window) OF gradient
  62.   DEF val=0
  63.   GetAttr(GRAD_CURVAL,self.grad,{val})
  64.   self.curval:=val
  65. ENDPROC TRUE
  66.  
  67. PROC setcurval(x) OF gradient
  68.   self.curval:=x
  69.   SetGadgetAttrsA(self.grad,self.gh.wnd,NIL,[GRAD_CURVAL,x,NIL])
  70. ENDPROC
  71.  
  72. PROC setpens(pens=NIL) OF gradient
  73.   IF pens THEN self.pens:=pens
  74.   self.clear_render(self.gh.wnd)
  75.   self.render(NIL,self.x,self.y,self.xs,self.ys,self.gh.wnd)
  76. ENDPROC
  77.  
  78. PROC setdisabled(disabled=TRUE) OF gradient
  79.   SetGadgetAttrsA(self.grad,self.gh.wnd,NIL,[GA_DISABLED,disabled,NIL])
  80.   IF disabled
  81.     ghost(self.gh.wnd,self.x,self.y,self.xs,self.ys)
  82.   ELSE
  83.     unghost(self.grad,self.gh.wnd)
  84.   ENDIF
  85.   self.disabled:=disabled
  86. ENDPROC
  87.