home *** CD-ROM | disk | FTP | other *** search
- OPT OSVERSION=37
-
- MODULE '*rkmmodel',
- 'amigalib/boopsi',
- 'utility',
- 'intuition/classusr',
- 'intuition/gadgetclass',
- 'intuition/icclass',
- 'intuition/imageclass',
- 'intuition/intuition'
-
- ENUM ERR_NONE, ERR_DRAW, ERR_LIB, ERR_OBJ, ERR_WIN
-
- RAISE ERR_DRAW IF GetScreenDrawInfo()=NIL,
- ERR_LIB IF OpenLibrary()=NIL,
- ERR_OBJ IF NewObjectA()=NIL,
- ERR_WIN IF OpenWindowTagList()=NIL
-
- CONST PROPID=1, INTEGERID=2, RIGHTID=3, LEFTID=4, PROPWIDTH=80, PROPHEIGHT=10,
- INTWIDTH=50, INTHEIGHT=14, VISIBLE=10, TOTAL=100, INITIALVAL=25
- CONST MINWINDOWWIDTH=80, MINWINDOWHEIGHT=PROPHEIGHT+70, MAXCHARS=4
-
- DEF w=NIL:PTR TO window, mydrawinfo=NIL, rkmmodcl=NIL,
- rkmmodel=NIL, currval2int=NIL, currval2prop=NIL,
- prop=NIL:PTR TO gadget, integer=NIL:PTR TO gadget,
- leftbut=NIL:PTR TO gadget, rightbut=NIL:PTR TO gadget,
- rightimage=NIL, leftimage=NIL
-
- PROC main() HANDLE
- DEF qwe
- utilitybase:=OpenLibrary('utility.library', 37)
- w:=OpenWindowTagList(NIL,
- [WA_FLAGS, WFLG_DEPTHGADGET OR WFLG_DRAGBAR OR
- WFLG_CLOSEGADGET OR WFLG_SIZEGADGET,
- WA_IDCMP, IDCMP_CLOSEWINDOW,
- NIL])
- -> E-Note: we could have made initRKMModClass raise an exception
- IF rkmmodcl:=initRKMModClass()
- mydrawinfo:=GetScreenDrawInfo(w.wscreen)
- makeGadgetsAndRKMModel()
- doMethodA(rkmmodel, [OM_ADDMEMBER, currval2prop])
- currval2prop:=NIL -> E-Note: this is now part of the rkmmodel object
- doMethodA(rkmmodel, [OM_ADDMEMBER, currval2int])
- currval2int:=NIL -> E-Note: again, now part of the rkmmodel object
- WindowLimits(w,
- w.borderleft+w.borderright+integer.leftedge+integer.width+10,
- w.bordertop+w.borderbottom+prop.height+10,
- w.maxwidth,
- w.maxheight)
- AddGList(w, prop, -1, -1, NIL)
- RefreshGadgets(prop, w, NIL)
-
- GetAttr(RKMMOD_CURRVAL, rkmmodel, {qwe})
- WriteF('RKMMOD_CURRVAL = \d\n', qwe)
- Delay(200)
-
- IF SetAttrsA(rkmmodel, [RKMMOD_CURRVAL, 10, NIL])
- RefreshGadgets(prop, w, NIL)
- ENDIF
- GetAttr(RKMMOD_CURRVAL, rkmmodel, {qwe})
- WriteF('RKMMOD_CURRVAL = \d\n', qwe)
- Delay(200)
-
- IF SetAttrsA(rkmmodel, [RKMMOD_CURRVAL, 30, NIL])
- RefreshGadgets(prop, w, NIL)
- ENDIF
- GetAttr(RKMMOD_CURRVAL, rkmmodel, {qwe})
- WriteF('RKMMOD_CURRVAL = \d\n', qwe)
- Delay(200)
-
- IF SetAttrsA(rkmmodel, [RKMMOD_CURRVAL, 50, NIL])
- RefreshGadgets(prop, w, NIL)
- ENDIF
- GetAttr(RKMMOD_CURRVAL, rkmmodel, {qwe})
- WriteF('RKMMOD_CURRVAL = \d\n', qwe)
- Delay(200)
-
- IF SetAttrsA(rkmmodel, [RKMMOD_UP, 1, NIL])
- RefreshGadgets(prop, w, NIL)
- ENDIF
-
- -> Wait for the user to click window close gadget
- REPEAT
- UNTIL WaitIMessage(w)=IDCMP_CLOSEWINDOW
- RemoveGList(w, prop, -1)
- ENDIF
-
- EXCEPT DO
- IF currval2int THEN DisposeObject(currval2int)
- IF currval2prop THEN DisposeObject(currval2prop)
- IF rightbut THEN DisposeObject(rightbut)
- IF leftbut THEN DisposeObject(leftbut)
- IF integer THEN DisposeObject(integer)
- IF prop THEN DisposeObject(prop)
- IF rkmmodel THEN DisposeObject(rkmmodel)
- IF leftimage THEN DisposeObject(leftimage)
- IF rightimage THEN DisposeObject(rightimage)
-
- IF mydrawinfo THEN FreeScreenDrawInfo(w.wscreen, mydrawinfo)
- IF rkmmodcl THEN freeRKMModClass(rkmmodcl)
- IF w THEN CloseWindow(w)
- IF utilitybase THEN CloseLibrary(utilitybase)
- SELECT exception
- CASE ERR_DRAW; WriteF('Error: Failed to get screen DrawInfo\n')
- CASE ERR_LIB; WriteF('Error: Failed to open utility library\n')
- CASE ERR_OBJ; WriteF('Error: Failed to make new Object\n')
- CASE ERR_WIN; WriteF('Error: Failed to open window\n')
- ENDSELECT
- ENDPROC
-
- PROC makeGadgetsAndRKMModel() HANDLE
- rightimage:=NewObjectA(NIL, 'sysiclass',
- [SYSIA_WHICH, RIGHTIMAGE,
- SYSIA_DRAWINFO, mydrawinfo, NIL])
- leftimage:=NewObjectA(NIL, 'sysiclass',
- [SYSIA_WHICH, LEFTIMAGE,
- SYSIA_DRAWINFO, mydrawinfo, NIL])
- rkmmodel:=NewObjectA(rkmmodcl, NIL,
- [RKMMOD_CURRVAL, INITIALVAL,
- RKMMOD_LIMIT, TOTAL-VISIBLE, NIL])
- prop:=NewObjectA(NIL, 'propgclass',
- [GA_ID, PROPID,
- GA_TOP, w.bordertop+5,
- GA_LEFT, w.borderleft+5,
- GA_WIDTH, PROPWIDTH,
- GA_HEIGHT, PROPHEIGHT,
- ICA_MAP, [PGA_TOP, RKMMOD_CURRVAL,
- STRINGA_LONGVAL, RKMMOD_CURRVAL,
- NIL],
- ICA_TARGET, rkmmodel,
- PGA_FREEDOM, FREEHORIZ,
- PGA_TOTAL, TOTAL,
- PGA_TOP, INITIALVAL,
- PGA_VISIBLE, VISIBLE,
- PGA_NEWLOOK, TRUE,
- NIL])
- integer:=NewObjectA(NIL, 'strgclass',
- [GA_ID, INTEGERID,
- GA_TOP, w.bordertop+5,
- GA_LEFT, prop.leftedge+prop.width+48,
- GA_WIDTH, INTWIDTH,
- GA_HEIGHT, INTHEIGHT,
- ICA_MAP, [PGA_TOP, RKMMOD_CURRVAL,
- STRINGA_LONGVAL, RKMMOD_CURRVAL,
- NIL],
- ICA_TARGET, rkmmodel,
- GA_PREVIOUS, prop,
- STRINGA_LONGVAL, INITIALVAL,
- STRINGA_MAXCHARS, MAXCHARS,
- NIL])
- leftbut:=NewObjectA(NIL, 'buttongclass',
- [GA_ID, LEFTID,
- GA_IMAGE, leftimage,
- GA_TOP, w.bordertop+5,
- GA_LEFT, prop.leftedge+prop.width,
- ICA_MAP, [GA_ID, RKMMOD_DOWN, NIL],
- ICA_TARGET, rkmmodel,
- GA_PREVIOUS, integer,
- NIL])
- rightbut:=NewObjectA(NIL, 'buttongclass',
- [GA_ID, RIGHTID,
- GA_IMAGE, rightimage,
- GA_TOP, w.bordertop+5,
- GA_LEFT, prop.leftedge+prop.width+leftbut.width,
- ICA_MAP, [GA_ID, RKMMOD_UP, NIL],
- ICA_TARGET, rkmmodel,
- GA_PREVIOUS, leftbut,
- NIL])
- currval2prop:=NewObjectA(NIL, 'icclass',
- [ICA_MAP, [RKMMOD_CURRVAL, PGA_TOP, NIL],
- ICA_TARGET, prop,
- NIL])
- currval2int:=NewObjectA(NIL, 'icclass',
- [ICA_MAP, [RKMMOD_CURRVAL, STRINGA_LONGVAL, NIL],
- ICA_TARGET, integer,
- NIL])
- RETURN TRUE
- EXCEPT
- ReThrow() -> E-Note: pass on exception if it is an error
- ENDPROC
-
- vers: CHAR 0, '$VER: UseRKMModel 37.1', 0
-