/* xygadget_plugin: part of the EasyPLUGINs package */ OPT MODULE, OSVERSION=37 MODULE 'tools/easygui', 'intuition/intuition', 'graphics/text', 'intuition/gadgetclass', 'gadtools', 'libraries/gadtools' EXPORT OBJECT xygadget_plugin OF plugin PRIVATE gad:PTR TO gadget text:PTR TO CHAR id ENDOBJECT PROC setup(text:PTR TO CHAR, id) OF xygadget_plugin self.text:=text self.id:=id ENDPROC PROC min_size(ta:PTR TO textattr, fh) OF xygadget_plugin ENDPROC (IntuiTextLength([1, 0, NIL, 0, 0, ta, self.text, NIL]:intuitext)+16), (fh+12) PROC will_resize() OF xygadget_plugin IS (RESIZEX OR RESIZEY) PROC gtrender(gl, vis, ta:PTR TO textattr, x, y, xs, ys, w:PTR TO window) OF xygadget_plugin self.gad:=CreateGadgetA(BUTTON_KIND, gl, [x, y, xs, ys, self.text, ta, self.id, 0, vis, 0]:newgadget, NIL) ENDPROC self.gad PROC message_test(imsg:PTR TO intuimessage, win:PTR TO window) OF xygadget_plugin IF imsg.class=IDCMP_GADGETUP THEN RETURN (imsg.iaddress=self.gad) ENDPROC FALSE -> this ensures that the defined action in the EasyGUI layout is called PROC message_action(class, qual, code, win:PTR TO window) OF xygadget_plugin IS TRUE /* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */ ->> attributes PROC set_text(text:PTR TO CHAR) OF xygadget_plugin IF self.gad AND self.gh.wnd SetGadgetAttrsA(self.gad, self.gh.wnd, NIL, [GA_TEXT, text, NIL]) RETURN TRUE ENDIF ENDPROC FALSE PROC set_disabled(disabled=TRUE) OF xygadget_plugin IF self.gad AND self.gh.wnd SetGadgetAttrsA(self.gad, self.gh.wnd, NIL, [GA_DISABLED, disabled, NIL]) RETURN TRUE ENDIF ENDPROC FALSE -><