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

  1. OPT MODULE
  2.  
  3. MODULE 'tools/EasyGUI', 'tools/textlen',
  4.        'intuition/intuition', 'intuition/gadgetclass',
  5.        'gadgets/button'
  6.  
  7. EXPORT OBJECT button OF plugin
  8.   selected
  9.   disabled
  10. PRIVATE
  11.   button:PTR TO gadget
  12.   buttonbase
  13.   text
  14.   toggle, push, resize
  15. ENDOBJECT
  16.  
  17. PROC button(text,resizex=FALSE,resizey=FALSE,disabled=FALSE) OF button
  18.   self.buttonbase:=OpenLibrary('gadgets/button.gadget',37)
  19.   IF self.buttonbase=NIL THEN Raise("butt")
  20.   self.text:=text
  21.   self.toggle:=FALSE
  22.   self.push:=FALSE
  23.   self.selected:=FALSE
  24.   self.resize:=(IF resizex THEN RESIZEX ELSE 0) OR
  25.                (IF resizey THEN RESIZEY ELSE 0)
  26.   self.disabled:=disabled
  27. ENDPROC
  28.  
  29. PROC togglebutton(text,selected=FALSE,resizex=FALSE,resizey=FALSE,disabled=FALSE) OF button
  30.   self.button(text,resizex,resizey)
  31.   self.toggle:=TRUE
  32.   self.selected:=selected
  33. ENDPROC
  34.  
  35. PROC pushbutton(text,selected=FALSE,resizex=FALSE,resizey=FALSE,disabled=FALSE) OF button
  36.   self.button(text,resizex,resizey)
  37.   self.push:=TRUE
  38.   self.selected:=selected
  39. ENDPROC
  40.  
  41. PROC end() OF button
  42.   IF self.buttonbase THEN CloseLibrary(self.buttonbase)
  43. ENDPROC
  44.  
  45. PROC min_size(ta,fh) OF button
  46. ENDPROC textlen(self.text,ta)+16,fh+6
  47.  
  48. PROC will_resize() OF button IS self.resize
  49.  
  50. PROC render(ta,x,y,xs,ys,w) OF button
  51.   self.button:=NewObjectA(NIL,'button.gadget',
  52.                          [GA_TOP,y, GA_LEFT,x, GA_WIDTH,xs, GA_HEIGHT,ys,
  53.                           GA_TEXT,self.text, GA_TOGGLESELECT,self.toggle,
  54.                           BUTTON_PUSHBUTTON,self.push, GA_TEXTATTR,ta,
  55.                           GA_DISABLED,self.disabled, GA_SELECTED,self.selected,
  56.                           GA_RELVERIFY,TRUE, NIL])
  57.   IF self.button=NIL THEN Raise("butt")
  58.   AddGList(w,self.button,-1,1,NIL)
  59.   RefreshGList(self.button,w,NIL,1)
  60. ENDPROC
  61.  
  62. PROC clear_render(win:PTR TO window) OF button
  63.   IF self.button
  64.     RemoveGList(win,self.button,1)
  65.     DisposeObject(self.button)
  66.   ENDIF
  67. ENDPROC
  68.  
  69. PROC message_test(imsg:PTR TO intuimessage,win:PTR TO window) OF button
  70.   IF imsg.class=IDCMP_GADGETUP THEN RETURN imsg.iaddress=self.button
  71. ENDPROC FALSE
  72.  
  73. PROC message_action(class,qual,code,win:PTR TO window) OF button
  74.   self.selected:=code
  75. ENDPROC TRUE
  76.  
  77. PROC setselected(selected=TRUE) OF button
  78.   IF self.toggle OR self.push
  79.     SetGadgetAttrsA(self.button,self.gh.wnd,NIL,[GA_SELECTED,selected,NIL])
  80.     self.selected:=selected
  81.   ENDIF
  82. ENDPROC
  83.  
  84. PROC settext(text) OF button
  85.   SetGadgetAttrsA(self.button,self.gh.wnd,NIL,[GA_TEXT,text,NIL])
  86.   self.text:=text
  87. ENDPROC
  88.  
  89. PROC setdisabled(disabled=TRUE) OF button
  90.   SetGadgetAttrsA(self.button,self.gh.wnd,NIL,[GA_DISABLED,disabled,NIL])
  91.   self.disabled:=disabled
  92. ENDPROC
  93.