home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / cdef-fjci-fb.hqx / CDEF-FJCI / Source of demo / control tester.bas next >
Encoding:
BASIC Source File  |  1994-10-02  |  5.1 KB  |  226 lines

  1. ' copyright 1994 Robert Schenk
  2. RESOURCES "Ctester.rsc","APPLyyXX"                'open resource file
  3.  
  4. COMPILE 0,_macsBugLabels                          '_dimmedVarsOnly
  5. _fiveButtonWnd=5
  6. _arrowWnd=4
  7. _splashWnd=21
  8. DIM pictid%
  9. END GLOBALS
  10.  
  11. LOCAL FN splash(id)
  12.   DIM rect;8
  13.   WINDOW CLOSE _splashWnd
  14.   WINDOW _splashWnd,"",(1,21)-(520,340),_dialogShadow,_splashWnd
  15.   Hndl&=    FN GETPICTURE(id)
  16.   LONG IF Hndl&
  17.     rect;8=[Hndl&]+_picFrame
  18.     v=rect.bottom-rect.top
  19.     offsetv=(280-v)/2
  20.     hor=rect.right-rect.left
  21.     offseth=(520-hor)/2
  22.     CALL OFFSETRECT(rect,offseth,offsetv)
  23.     CALL DRAWPICTURE(Hndl&, rect)
  24.   END IF
  25.   BUTTON 10,_activeBtn,"1050", (200,280)-(400,312),321
  26. END FN
  27.  
  28. LOCAL FN handleSplash(evnt,id)
  29.   SELECT CASE evnt
  30.       d%=0
  31.     CASE _btnClick
  32.       theControl&=BUTTON&(10)
  33.       LONG IF theControl&
  34.         d%    =    FN GETCTLVALUE(theControl&)
  35.       END IF
  36.       LONG IF d%<3 
  37.         pictid%=pictid%-1
  38.         IF pictid%<252 THEN pictid%=254
  39.         FN splash(pictid%)
  40.       XELSE
  41.         LONG IF d%>5
  42.           WINDOW CLOSE _splashWnd
  43.         END IF
  44.       END IF
  45.   END SELECT
  46. END FN
  47.  
  48. LOCAL FN intialize
  49.   WINDOW OFF
  50.   pictid%=252
  51.   FN splash(pictid%)
  52.   COORDINATE WINDOW
  53. END FN
  54.  
  55.  
  56. LOCAL FN readContolRec(id)
  57.   DIM rect;8
  58.   theControl&=BUTTON&(id)
  59.   LONG IF theControl&
  60.     PRINT theControl&
  61.     
  62.     cp&=PEEK LONG(theControl&)
  63.     cnext&=cp&+_nextControl
  64.     nextc&=PEEK LONG(cnext&)
  65.     PRINT "Next Button;";nextc&
  66.     
  67.     owner&=cp&+_contrlOwner
  68.     oc&=PEEK LONG(owner&)
  69.     PRINT "Window Pointer:";oc&
  70.     
  71.     rt&=cp&+_contrlRect
  72.     rect;8=[theControl&]+_contrlRect
  73.     PRINT "rectangle:";rect.left;rect.top;rect.right;rect.bottom
  74.     
  75.     ad&=cp&+_contrlVis
  76.     v%=PEEK(ad&)
  77.     PRINT "visible:";v%
  78.     ad&=cp&+_contrlHilite
  79.     v%=PEEK(ad&)
  80.     PRINT "Highlight:";v%
  81.     
  82.     valu&=cp&+_contrlValue
  83.     v%=PEEK WORD(valu&)
  84.     PRINT "current value:";v%
  85.     valu&=cp&+_contrlMin
  86.     v%=PEEK WORD(valu&)
  87.     PRINT "Minimum:";v%
  88.     valu&=cp&+_contrlMax
  89.     v%=PEEK WORD(valu&)
  90.     PRINT "Maximum:";v%
  91.     owner&=cp&+_contrlDefHandle
  92.     oc&=PEEK LONG(owner&)
  93.     PRINT "CDEF:";oc&
  94.     owner&=cp&+_contrlData
  95.     oc&=PEEK LONG(owner&)
  96.     PRINT "data hndl:";oc&
  97.     owner&=cp&+_contrlAction
  98.     oc&=PEEK LONG(owner&)
  99.     PRINT "Action Handle:";oc&
  100.     owner&=cp&+_contrlRfCon
  101.     oc&=PEEK LONG(owner&)
  102.     PRINT "FB REF:";oc&
  103.     
  104.     'ctlTitle$=PSTR$([theControl&]+_contrltitle)
  105.     ctlTitle$=PSTR$(cp&+_contrltitle)
  106.     PRINT "Title;";ctlTitle$
  107.     PRINT
  108.   END IF
  109. END FN
  110.  
  111. LOCAL FN fivebutton
  112.   WINDOW CLOSE _fiveButtonWnd
  113.   WINDOW CLOSE _splashWnd
  114.   ' if we have this open, and reopen it, we have the buttons scroll off the screen.
  115.   'so we close it if it is open before we reopen it.
  116.   WINDOW _fiveButtonWnd,"five buttons",(1,40)-(500,310),_docNoGrow,_fiveButtonWnd
  117.   BUTTON 1,_activeBtn,"1000", (200,50)-(400,100),321
  118.   BUTTON 2,_grayBtn,"1000", (200,150)-(400,200),321
  119. END FN
  120. LOCAL FN handlefive(evnt,id)
  121.   SELECT CASE evnt
  122.     CASE _WndClose
  123.       WINDOW CLOSE _fiveButtonWnd
  124.     CASE _btnClick
  125.       FN readContolRec(id)
  126.   END SELECT
  127. END FN
  128.  
  129. LOCAL FN arrowtest
  130.   WINDOW CLOSE _arrowWnd
  131.   WINDOW CLOSE _splashWnd
  132.   WINDOW _arrowWnd,"arrow buttons",(1,40)-(500,310),_docNoGrow,_arrowWnd
  133.   BUTTON 4,_grayBtn,"975", (80,50)-(95,66),161
  134.   BUTTON 3,_activeBtn,"975", (80,90)-(95,106),161
  135.   theControl&=BUTTON&(3)
  136.   LONG IF theControl&
  137.     CALL SETCTLMIN(theControl&, -12)
  138.     d%    =    FN GETCTLVALUE(theControl&)
  139.     t$=STR$(d%)
  140.     EDIT FIELD 4, t$,  (30,90)-(70,106), _framedNoCr
  141.     EDIT TEXT _Geneva, 12
  142.     EDIT FIELD 111, "",  (2000,90)-(2070,106), _NoFramedNoCr
  143.     ' edit field 111 is a dummy edit field to prevent some of the blinking that would
  144.     'otherwise occur
  145.   END IF
  146. END FN
  147.  
  148. LOCAL FN handlearrow(evnt,id)
  149.   SELECT CASE evnt
  150.     CASE _WndClose
  151.       WINDOW CLOSE _arrowWnd
  152.     CASE _btnClick
  153.       theControl&=BUTTON&(3)
  154.       LONG IF theControl&
  155.         d%    =    FN GETCTLVALUE(theControl&)
  156.         t$=STR$(d%)
  157.         EDIT$(4)=t$
  158.       END IF
  159.     CASE _efReturn
  160.       max%=0:min%=0
  161.       t$=EDIT$(4)
  162.       EDIT FIELD 111
  163.       d%=VAL(t$)
  164.       theControl&=BUTTON&(3)
  165.       LONG IF theControl&<>0
  166.         max%    =    FN GETCTLMAX(theControl&)
  167.         min%    =    FN GETCTLMIN(theControl&)
  168.       END IF
  169.       LONG IF d%>=min% AND d%<=max% AND t$<>""
  170.         CALL SETCTLVALUE(theControl&, d%)
  171.         BEEP
  172.       END IF
  173.   END SELECT
  174. END FN
  175.  
  176. LOCAL FN doDialog
  177.   evnt = DIALOG(0)
  178.   id   = DIALOG(evnt)
  179.   SELECT WINDOW(_outputWClass)
  180.     CASE (_fiveButtonWnd)
  181.       FN handlefive(evnt,id)
  182.     CASE(_arrowWnd)
  183.       FN handlearrow(evnt,id)
  184.     CASE (_splashWnd)
  185.       FN handleSplash(evnt,id)
  186.   END SELECT
  187. END FN
  188.  
  189. LOCAL FN doquit
  190.   END
  191. END FN
  192.  
  193. LOCAL FN domenu
  194.   DIM menuid, menuitem
  195.   menuid=MENU(0)
  196.   menuitem=MENU(1)
  197.   SELECT CASE menuid
  198.     CASE 127
  199.       pictid%=252
  200.       FN splash(pictid%)
  201.       BEEP
  202.     CASE 1
  203.       SELECT CASE menuitem
  204.         CASE 1
  205.           FN arrowtest
  206.         CASE 2
  207.           FN fivebutton
  208.         CASE ELSE
  209.           FN doquit
  210.       END SELECT
  211.     CASE ELSE
  212.   END SELECT
  213.   CALL HILITEMENU(0)
  214. END FN
  215.  
  216. 'main program*******************************************
  217. FN intialize
  218. ON MENU FN domenu
  219. ON DIALOG FN doDialog
  220. ON BREAK FN doquit
  221. DO
  222.   HANDLEEVENTS
  223. UNTIL programends
  224.  
  225.  
  226.