home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 601-625 / apd616 / dialog_procs.doc < prev    next >
Text File  |  1991-06-22  |  35KB  |  1,031 lines

  1.                        ==================================
  2.                        AMOS Dialog Procedures Version 2.1
  3.                        ==================================
  4.                            Written By John.A.Kinsella
  5.                            ==========================
  6.  
  7.                                   (User Manual)
  8.  
  9.  
  10. Introduction
  11. ------------
  12.  
  13. These procedures were written to add a Workbench 2 environment to your AMOS
  14. creations, also, to make programming easier for the user.  The procedures
  15. themselves, are like adding new commands onto AMOS.
  16.  
  17.  
  18. Variables & Strings
  19. -------------------
  20.  
  21. The following is a list of some of the variables and strings used by the
  22. dialog procedures.
  23.  
  24.         _DialogButton$ ________________ This is used to store all of the
  25.                                         zones created for the buttons.
  26.         _RadioButton$ _________________ This is used to store all of the
  27.                                         zones created for the radio buttons.
  28.         _Light ________________________ This contains the colour for the
  29.                                         light part of a button.
  30.         _Shadow _______________________ This contains the colour for the
  31.                                         Shaded part of a button.
  32.         _Back _________________________ This contains the colour for the
  33.                                         Background of a button, and also for
  34.                                         the background of the screen.
  35.         _Colour _______________________ This contains the colour for any
  36.                                         buttons or objects that have to be
  37.                                         highlighted or coloured.
  38.         _Text _________________________ This contains the colour for the
  39.                                         text on screen.
  40.         _FontName$ ____________________ This contains the name of the
  41.                                         current font being used.
  42.         _FontSize _____________________ This contains the point size of the
  43.                                         current font being used.
  44.  
  45.  
  46. Brief Rundown On The Procedures
  47. -------------------------------
  48.  
  49. All of the procedures that are used in the program listing, are explained
  50. below, plus, working examples are also given.  Run the examples by typing
  51. them into the main program.
  52.  
  53. Add-On procedures are also included in the manual, these are separate
  54. procedures that you merge onto the end of the main listing if you wish to
  55. use them.
  56.  
  57.  
  58. Open Dialog Screen Procedure
  59. ----------------------------
  60.  
  61. Description:    This procedure is used to open a screen for use with the
  62.                 dialog procedures, it automatically sets the colours,
  63.                 resolution, height and position of the screen.
  64.  
  65. Syntax:         _OpenDialogScreen[N,H,Y]
  66.  
  67. Variables:      N _____________________ This contains the number of the
  68.                                         screen to open.
  69.                 H _____________________ This contains the height of the
  70.                                         screen to open.
  71.                 Y _____________________ This contains the Y position of the
  72.                                         screen from the top (50 is the
  73.                                         default value).
  74.  
  75. Example
  76. -------
  77.  
  78. _OpenDialogScreen[0,100,50]
  79. '
  80. _Draw3DBox[10,5,634,94,"SMALL SCREEN!",0,2,3]
  81.  
  82.  
  83. 3D Box Procedure
  84. ----------------
  85.  
  86. Description:    This procedure draws a 3D box on the screen.
  87.  
  88. Syntax:         _Draw3DBox[X1,Y1,X2,Y2,T$,IN,FC,BC]
  89.  
  90. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's of the
  91.                                         box.
  92.                 T$ ____________________ This is the text displayed inside
  93.                                         the box (See Appendix 1 for more
  94.                                         information).
  95.                 IN ____________________ This defines the look of the 3D box,
  96.                                         0 is an inward facing box, 1 is an
  97.                                         outward facing box, and 2 displays
  98.                                         the text only.
  99.                 FC ____________________ This is the colour of the text.
  100.                 BC ____________________ This is the colour of the 3D box.
  101.  
  102. Examples
  103. --------
  104.  
  105. _Draw3DBox[50,50,100,100,"HI!",1,1,0]
  106. '
  107. X1=100: Y1=150: X2=200: Y2=80: _Draw3DBox[X1,Y1,X2,Y2,"Hi Folks",0,2,3]
  108. '
  109. _Draw3DBox[500,10,620,100,"This|'Is|^An|Example",2,3,0]
  110.  
  111.  
  112. Check Zone Procedure
  113. --------------------
  114.  
  115. Description:    This procedure checks a part of the screen for a mouse press.
  116.  
  117. Syntax:         _CheckZone[X1,Y1,X2,Y2,WT]
  118.  
  119. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's to check
  120.                                         for a mouse press.
  121.                 WT ____________________ This is the wait value, set to 0 for
  122.                                         a quick return, or set to 1 to wait
  123.                                         until the mouse key has been
  124.                                         released.
  125.                 PARAM _________________ This is the global variable which
  126.                                         contains the mouse button pressed
  127.                                         inside of a zone, 0 will be returned
  128.                                         if there has been no mouse button
  129.                                         pressed.
  130.  
  131. Example
  132. -------
  133.  
  134. _Draw3DBox[50,50,100,100,"No.|One",1,1,0]
  135. _Draw3DBox[150,50,200,100,"No.|Two",1,1,0]
  136. '
  137. DO
  138.    '
  139.    _CheckZone[50,50,100,100,1]
  140.    IF PARAM>0
  141.       BELL 96
  142.       _Draw3DBox[100,100,539,150,"Button 1 Pressed Using Key"+STR$(AN),0,1,3]
  143.    END IF
  144.    '
  145.    _CheckZone[150,50,200,100,0]
  146.    IF PARAM>0
  147.       BELL 80
  148.       _Draw3DBox[100,100,539,150,"Button 2 Pressed Using Key"+STR$(AN),0,1,3]
  149.    END IF
  150.    '
  151. LOOP
  152.  
  153.  
  154. Add Button Procedure
  155. --------------------
  156.  
  157. Description:    This procedure draws a button on screen which looks like a
  158.                 3D box, but does not have to be checked with the _CheckZone
  159.                 procedure, instead, the _CheckButtons procedure is used to
  160.                 determine whether this button and every other button created
  161.                 has been pressed or not.
  162.  
  163. Syntax:         _AddButton[X1,Y1,X2,Y2,T$,BZ]
  164.  
  165. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's of the
  166.                                         button.
  167.                 T$ ____________________ This string contains the text to be
  168.                                         placed inside the button.  (See
  169.                                         Appendix 1 for more information).
  170.                 BZ ____________________ This is the zone number of the
  171.                                         button.  Put 0 to simply draw the
  172.                                         button.
  173.  
  174. Example
  175. -------
  176.  
  177. _AddButton[50,50,100,100,"No.|1",1]
  178. _AddButton[150,50,200,100,"No.|2",-2]
  179. '
  180. DO
  181.    '
  182.    _CheckButtons : Rem Place this at the start of loop to check buttons.
  183.    _ButtonZone=Param
  184.    '
  185.    IF _ButtonZone=1
  186.       BELL 96
  187.       _Draw3DBox[400,100,600,150,"Button #1|Was Pressed",0,1,3]
  188.    END IF
  189.    '
  190.    IF _ButtonZone=2
  191.       BELL 80
  192.       _Draw3DBox[400,100,600,150,"Button #2|Was Pressed",0,1,3]
  193.    END IF
  194.    '
  195. LOOP
  196.  
  197.  
  198. Add Tick-Box Procedure
  199. ----------------------
  200.  
  201. Description:    This procedure draws a tick box, which can either be on or
  202.                 off, if it is on then a tick will appear inside the box.
  203.  
  204. Syntax:         _AddTickBox[X,Y,PO,BZ]
  205.  
  206. Variables:      X,Y ___________________ These are the co-ordinate's of the
  207.                                         tick box.
  208.                 PO ____________________ This is the position of the tick
  209.                                         box, 0 is off and 1 is on.
  210.                 BZ ____________________ This is the zone number of the tick
  211.                                         box.  Put 0 to simply draw the tick
  212.                                         box.
  213.                 PARAM _________________ This variable contains the new
  214.                                         position of the tick box after it
  215.                                         has been clicked.
  216.  
  217. Example
  218. -------
  219.  
  220. CHK1=0 : Rem Set check box to off.
  221. _AddTickBox[50,50,CHK1,1]
  222. '
  223. DO
  224.    '
  225.    _CheckButtons
  226.    _ButtonZone=Param
  227.    '
  228.    IF _ButtonZone=1
  229.       _AddTickBox[50,50,CHK1,0] : Rem Redraw check box.
  230.       CHK1=Param
  231.    END IF
  232.    '
  233.    IF CHK1=1
  234.       BELL 92
  235.    END IF
  236.    '
  237. LOOP
  238.  
  239.  
  240. Add Cycle Button Procedure
  241. --------------------------
  242.  
  243. Description:    This procedure draws a button with a cycle gadget which can
  244.                 cycle between different pieces of text placed inside the
  245.                 button.
  246.  
  247. Syntax:         _AddCycleButton[X1,Y1,X2,Y2,T$,PO,BZ]
  248.  
  249. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's of the
  250.                                         button.
  251.                 T$ ____________________ This is the text inside the button,
  252.                                         use the "|" character to separate
  253.                                         the different pieces of text you
  254.                                         wish to scroll through e.g.
  255.                                         "Text1|Text2|Text3|Text4".
  256.                 PO ____________________ This is the text position, this
  257.                                         tells the procedure which piece of
  258.                                         text to display inside the button
  259.                                         e.g. set to 3 for "Text3".
  260.                 BZ ____________________ This is the zone number of the
  261.                                         button.  Put 0 to simply draw the
  262.                                         cycle button.
  263.                 PARAM _________________ This contains the new text position
  264.                                         of the button.
  265.  
  266. Example
  267. -------
  268.  
  269. CYC1=1 : Rem Set the cycle text to 1, which is "THIS".
  270. _AddCycleButton[50,50,200,65,"THIS|IS|AN|EXAMPLE",CYC1,1]
  271. '
  272. CYC2=3 : Rem Set the cycle text to 3 which is "ANOTHER".
  273. TXT$="THIS|IS|ANOTHER|EXAMPLE|OF|CYCLE|BUTTONS"
  274. _AddCycleButton[50,100,200,70,TXT$,CYC2,2]
  275. '
  276. DO
  277.    '
  278.    _CheckButtons
  279.    _ButtonZone=Param
  280.    '
  281.    IF _ButtonZone=1
  282.       _AddCycleButton[50,50,200,65,"THIS|IS|AN|EXAMPLE",CYC1,0]
  283.       CYC1=Param
  284.    END IF
  285.    '
  286.    IF _ButtonZone=2
  287.       _AddCycleButton[50,100,200,70,TXT$,CYC2,0]
  288.       CYC2=Param
  289.    END IF
  290.    '
  291. LOOP
  292.  
  293.  
  294. Horizontal Slider Procedure
  295. ---------------------------
  296.  
  297. Description:    This procedure draws a horizontal slider.
  298.  
  299. Syntax:         _HorizontalSlider[X1,Y1,X2,Y2,NO,PO,T$]
  300.  
  301. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's to draw
  302.                                         the slider.
  303.                 NO ____________________ This is the number of items to
  304.                                         scroll through.
  305.                 PO ____________________ This is the position of the slider.
  306.                 T$ ____________________ This contains the slider routine
  307.                                         label to call when inside the
  308.                                         _SliderRoutine procedure, leave
  309.                                         blank for no routine.
  310.  
  311.                 NOTE:  When creating slider routines, place them inside the
  312.                        _SliderRoutine procedure, remember and make the last
  313.                        line of your routine GOTO FIN.  Use the P variable
  314.                        inside the slider routine, as it contains the
  315.                        position of the slider bar.
  316.  
  317. Example
  318. -------
  319.  
  320. SL1=50 : Rem Set number of items.
  321. SP1=1 : Rem Set position of scroll bar.
  322. _HorizontalSlider[50,50,400,70,SL1,SP1,"HSLIDE"]
  323. '
  324. _AddButton[410,40,430,60,"<",-1] : Rem These are scroll buttons.
  325. _AddButton[440,40,460,60,">",-2]
  326. '
  327. DO
  328.    '
  329.    _CheckButtons
  330.    _ButtonZone=Param
  331.    '
  332.    IF _ButtonZone=1 AND SP1>1 : Rem Make sure position is above 1.
  333.       DEC SP1
  334.       _HorizontalSlider[50,50,400,70,SL1,SP1,"HSLIDE"]
  335.    END IF
  336.    '
  337.    IF _ButtonZone=2 AND SP1<SL1 : Rem Make sure position is below items.
  338.       INC SP1
  339.       _HorizontalSlider[50,50,400,70,SL1,SP1,"HSLIDE"]
  340.    END IF
  341.    '
  342. LOOP
  343. '
  344. PROCEDURE _SliderRoutine[T$,P]
  345.    '
  346.    GOTO T$
  347.    '
  348.    HSLIDE:
  349.    _Draw3DBox[50,80,100,95,"POS:"+STR$(P),0,2,3]
  350.    GOTO FIN
  351.    '
  352. FIN:
  353.    '
  354. END PROC
  355.  
  356.  
  357. Vertical Slider Procedure
  358. -------------------------
  359.  
  360. Description:    This procedure draws a vertical slider.
  361.  
  362. Syntax:         _VerticalSlider[X1,Y1,X2,Y2,NO,PO,T$]
  363.  
  364. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's to draw
  365.                                         the slider.
  366.                 NO ____________________ This is the number of items to
  367.                                         scroll through.
  368.                 PO ____________________ This is the position of the slider.
  369.                 T$ ____________________ This contains the slider routine
  370.                                         label to call when inside the
  371.                                         _SliderRoutine procedure, leave
  372.                                         blank for no routine.
  373.  
  374.                 NOTE:  When creating slider routines, place them inside the
  375.                        _SliderRoutine procedure, remember and make the last
  376.                        line of your routine GOTO FIN.  Use the P variable
  377.                        inside the slider routine, as it contains the
  378.                        position of the slider bar.
  379.  
  380. Example
  381. -------
  382.  
  383. SL1=200 : Rem Set number of items.
  384. SP1=50 : Rem Set position of scroll bar.
  385. _VerticalSlider[100,10,130,190,SL1,SP1,"VSLIDE"]
  386. '
  387. _AddButton[140,40,160,60,"<",-1] : Rem These are scroll buttons.
  388. _AddButton[170,40,190,60,">",-2]
  389. '
  390. DO
  391.    '
  392.    _CheckButtons
  393.    _ButtonZone=Param
  394.    '
  395.    IF _ButtonZone=1 AND SP1>1 : Rem Make sure position is above 1.
  396.       DEC SP1
  397.       _VerticalSlider[100,10,130,190,SL1,SP1,"VSLIDE"]
  398.    END IF
  399.    '
  400.    IF _ButtonZone=2 AND SP1<SL1 : Rem Make sure position is below items.
  401.       INC SP1
  402.       _VerticalSlider[100,10,130,190,SL1,SP1,"VSLIDE"]
  403.    END IF
  404.    '
  405. LOOP
  406. '
  407. PROCEDURE _SliderRoutine[T$,P]
  408.    '
  409.    GOTO T$
  410.    '
  411.    VSLIDE:
  412.    _Draw3DBox[110,175,170,190,"POS:"+STR$(P),0,2,3]
  413.    GOTO FIN
  414.    '
  415. FIN:
  416.    '
  417. END PROC
  418.  
  419.  
  420. Grab Horizontal Slider Procedure
  421. --------------------------------
  422.  
  423. Description:    This procedure lets the user grab a horizontal slider on
  424.                 screen.
  425.  
  426. Syntax:         _GrabHorizontalSlider[X1,Y1,X2,Y2,NO,PO,T$]
  427.  
  428. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's to draw
  429.                                         the slider.
  430.                 NO ____________________ This is the number of items to
  431.                                         scroll through.
  432.                 PO ____________________ This is the position of the slider.
  433.                 T$ ____________________ This contains the slider routine
  434.                                         label to call when inside the
  435.                                         _SliderRoutine procedure, leave
  436.                                         blank for no routine.
  437.                 PARAM _________________ This variable will be set to 0 if
  438.                                         the slider has not been moved,
  439.                                         otherwise it will return the new
  440.                                         slider position.
  441.  
  442.                 NOTE:  When creating slider routines, place them inside the
  443.                        _SliderRoutine procedure, remember and make the last
  444.                        line of your routine GOTO FIN.  Use the P variable
  445.                        inside the slider routine, as it contains the
  446.                        position of the slider bar.
  447.  
  448. Example
  449. -------
  450.  
  451. SL1=200 : Rem Set number of items.
  452. SP1=1 : Rem Set position of scroll bar.
  453. _HorizontalSlider[100,10,130,190,SL1,SP1,"HSLIDE"]
  454. '
  455. _Draw3DBox[10,5,629,20,"GRAB THE SLIDER...!",0,2,3]
  456. '
  457. DO
  458.    '
  459.    _GrabHorizontalSlider[50,50,400,70,SL1,SP1,"HSLIDE"]
  460.    IF PARAM>0 : Rem Check if slider has been grabbed.
  461.       SP1=PARAM : Change variable to new slider position.
  462.    END IF
  463.    '
  464. LOOP
  465. '
  466. PROCEDURE _SliderRoutine[T$,P]
  467.    '
  468.    GOTO T$
  469.    '
  470.    HSLIDE:
  471.    _Draw3DBox[50,80,100,95,"POS:"+STR$(P),1,2,3]
  472.    GOTO FIN
  473.    '
  474. FIN:
  475.    '
  476. END PROC
  477.  
  478.  
  479. Grab Vertical Slider Procedure
  480. ------------------------------
  481.  
  482. Description:    This procedure lets the user grab a vertical scroll bar on
  483.                 screen.
  484.  
  485. Syntax:         _GrabVerticalSlider[X1,Y1,X2,Y2,NO,PO,T$]
  486.  
  487. Variables:      X1,Y1 To X2,Y2 ________ These are the co-ordinate's to draw
  488.                                         the slider.
  489.                 NO ____________________ This is the number of items to
  490.                                         scroll through.
  491.                 PO ____________________ This is the position of the slider.
  492.                 T$ ____________________ This contains the slider routine
  493.                                         label to call when inside the
  494.                                         _SliderRoutine procedure, leave
  495.                                         blank for no routine.
  496.                 PARAM _________________ This variable will be set to 0 if
  497.                                         the slider has not been moved,
  498.                                         otherwise it will return the new
  499.                                         slider position.
  500.  
  501.                 NOTE:  When creating slider routines, place them inside the
  502.                        _SliderRoutine procedure, remember and make the last
  503.                        line of your routine GOTO FIN.  Use the P variable
  504.                        inside the slider routine, as it contains the
  505.                        position of the slider bar.
  506.  
  507. Example
  508. -------
  509.  
  510. SL1=100 : Rem Set number of items.
  511. SP1=20 : Rem Set position of scroll bar.
  512. _VerticalSlider[100,10,130,190,SL1,SP1,"VSLIDE"]
  513. '
  514. _Draw3DBox[10,5,629,20,"GRAB THE SLIDER...!",0,2,3]
  515. '
  516. DO
  517.    '
  518.    _GrabVerticalSlider[100,10,130,190,SL1,SP1,"VSLIDE"]
  519.    IF PARAM>0 : Rem Check if slider has been grabbed.
  520.       SP1=PARAM : Rem Change variable to new slider position.
  521.    END IF
  522.    '
  523. LOOP
  524. '
  525. PROCEDURE _SliderRoutine[T$,P]
  526.    '
  527.    GOTO T$
  528.    '
  529.    VSLIDE:
  530.    _Draw3DBox[110,175,170,190,"POS:"+STR$(P),1,2,3]
  531.    GOTO FIN
  532.    '
  533. FIN:
  534.    '
  535. END PROC
  536.  
  537.  
  538. Slider Routine Procedure
  539. ------------------------
  540.  
  541. Description:    This procedure contains all of the slider routines for use
  542.                 with the slider procedures.  The procedure itself is not
  543.                 meant to be used on it's own, but you can do so if you wish.
  544.  
  545. Syntax:         _SliderRoutine[T$,P]
  546.  
  547. Variables:      T$ ____________________ This contains the slider routine
  548.                                         label to goto when the procedure is
  549.                                         called.
  550.                 P _____________________ This contains the position of the
  551.                                         slider for use with the routines.
  552.  
  553.  
  554. Check Buttons Procedure
  555. -----------------------
  556.  
  557. Description:    This procedure checks the status of every button zone
  558.                 created with the _AddButton, _AddTickBox, _AddCycleButton and
  559.                 _AddInputButton procedures.
  560.  
  561. Syntax:         _CheckButtons
  562.  
  563. Variables:      PARAM _________________ This is a global variable which
  564.                                         returns the zone number of the
  565.                                         button that has been clicked.
  566.                                         Store this variable under a
  567.                                         different name after the procedure
  568.                                         has been called, otherwise the
  569.                                         number might be overwritten by other
  570.                                         procedures e.g. _ButtonZone=Param.
  571.  
  572. Example
  573. -------
  574.  
  575. _AddButton[20,20,40,40,"A",1]
  576. _AddButton[50,50,70,70,"B",2]
  577. _AddButton[80,80,100,100,"C",3]
  578. '
  579. DO
  580.    '
  581.    _CheckButtons
  582.    _ButtonZone=Param
  583.    '
  584.    IF _ButtonZone=1
  585.       BELL 70
  586.    END IF
  587.    '
  588.    IF _ButtonZone=2
  589.       BELL 80
  590.    END IF
  591.    '
  592.    IF _ButtonZone=3
  593.       BELL 90
  594.    END IF
  595.    '
  596. LOOP
  597.  
  598.  
  599. Delete Button Procedure
  600. -----------------------
  601.  
  602. Description:    This procedure deletes a button from the _DialogButton$ and
  603.                 also from the screen.
  604.  
  605. Syntax:         _DeleteButton[NO,BC]
  606.  
  607. Variables:      NO ____________________ This is the zone number of the
  608.                                         button to be deleted.
  609.                 BC ____________________ This is the colour to erase the
  610.                                         screen button with, put -1 to leave
  611.                                         the button on screen.
  612.  
  613. Example
  614. -------
  615.  
  616. _AddButton[50,50,150,100,"KILL|ME",1]
  617. _AddButton[200,50,300,100,"TRY AND|KILL ME",2]
  618. '
  619. DO
  620.    '
  621.    _CheckButtons
  622.    _ButtonZone=Param
  623.    '
  624.    IF _ButtonZone=1
  625.       SHOOT
  626.       _DeleteButton[1,0]
  627.    END IF
  628.    '
  629.    IF _ButtonZone=2
  630.       BOOM
  631.       _DeleteButton[2,-1]
  632.    END IF
  633.    '
  634. LOOP
  635.  
  636.  
  637. Add Input Button Procedure
  638. --------------------------
  639.  
  640. Description:    This procedure places a text input button on screen, and
  641.                 when clicked on, you can enter text inside of it.
  642.  
  643. Syntax:         _AddInputButton[X,Y,TXT$,L,ML,BZ]
  644.  
  645. Variables:      X,Y ___________________ These are the text co-ordinate's to
  646.                                         place the text input button.
  647.                 TXT$ __________________ This is the text to place inside the
  648.                                         text input button.
  649.                 L _____________________ This is the length in characters of
  650.                                         the input button.
  651.                 ML ____________________ This is the maximum length in
  652.                                         characters of the input string.
  653.                 BZ ____________________ This is the zone number of input
  654.                                         button.  Put 0 to simply enter text
  655.                                         inside the button.
  656.                 PARAM$ ________________ This returns the text that has been
  657.                                         entered inside the input button.
  658.  
  659. Example
  660. -------
  661.  
  662. TXT$="This is a"
  663. _AddInputButton[5,5,TXT$,10,20,1]
  664. '
  665. _Draw3DBox[10,100,629,199,TXT$,0,1,0]
  666. '
  667. DO
  668.    '
  669.    _CheckButtons
  670.    _ButtonZone=Param
  671.    '
  672.    IF _ButtonZone=1
  673.       _AddInputButton[5,5,TXT1$,10,20,0]
  674.       TXT$=PARAM$
  675.       _Draw3DBox[10,100,629,199,TXT$,0,1,0]
  676.    END IF
  677.    '
  678. LOOP
  679.  
  680.  
  681. Set Font Procedure
  682. ------------------
  683.  
  684. Description:    This procedure looks through the fonts list until it has
  685.                 found the font name and size you have stated, then changes
  686.                 the font.
  687.  
  688. Syntax:         _SetFont[FT$,FS]
  689.  
  690. Variables:      FT$ ___________________ This is the name of the font to look
  691.                                         for e.g. "Diamond".
  692.                 FS ____________________ This is the size of the font in
  693.                                         pixels.
  694.                 PARAM _________________ If the font was successfully found,
  695.                                         then this variable will contain a 1,
  696.                                         otherwise 0 will be returned.
  697.  
  698. Example
  699. -------
  700.  
  701. _SetFont["Diamond",20]
  702. IF PARAM=1
  703.    TEXT 50,50,"Font Found!!!"
  704. ELSE
  705.    PRINT "Font Has Not been Found!"
  706. END IF
  707.  
  708.  
  709. Add Radio Button Procedure
  710. --------------------------
  711.  
  712. Description:    This procedure can place groups of radio buttons on screen.
  713.  
  714. Syntax:         _AddRadioButton[X,Y,GP,BN,PO,BZ]
  715.  
  716. Variables:      X,Y ___________________ These are the co-ordinate's to place
  717.                                         the radio button.
  718.                 GP ____________________ This is the group number the button
  719.                                         belongs to.
  720.                 BN ____________________ This is the number of the radio
  721.                                         button in a specific group.
  722.                 PO ____________________ This is the setting of the radio
  723.                                         button, 0 for in-active and 1 for
  724.                                         active.
  725.                 BZ ____________________ This is the zone number of the radio
  726.                                         button, put 0 to simply draw the button.
  727.  
  728.                 NOTE:  The zone number for the radio buttons are different
  729.                        from the zone numbers used to draw the other buttons,
  730.                        so you can use the same numbers e.g. you can create a
  731.                        tick box with zone number 1, and also a radio button
  732.                        with zone number 1.
  733.  
  734.  
  735. Check Radio Buttons Procedure
  736. -----------------------------
  737.  
  738. Description:    This procedure will check if any of the radio buttons have
  739.                 been selected.
  740.  
  741. Syntax:         _CheckRadioButtons
  742.  
  743. Variables:      PARAM _________________ This is a global variable which
  744.                                         returns the number of the radio
  745.                                         button pressed.  Store this variable
  746.                                         under a different name after the
  747.                                         procedure has been called, otherwise
  748.                                         the number might be overwritten by
  749.                                         other procedures e.g. _RadioZone=Param.
  750.  
  751.  
  752. Set Radio Procedure
  753. -------------------
  754.  
  755. Description:    This procedure resets the radio buttons in a specific group and activates the selected button.
  756.  
  757. Syntax:         _SetRadio[GN,BA]
  758.  
  759. Variables:      GN ____________________ This is the group number the button
  760.                                         belongs to.
  761.                 BA ____________________ This is the number of the button to
  762.                                         activate.
  763.  
  764. Example
  765. -------
  766.  
  767. GRP1=2 : Rem Make button 2 in group 1 active.
  768. _AddRadioButton[50,50,1,1,1,1]
  769. _AddRadioButton[50,60,1,2,1,2]
  770. _AddRadioButton[50,70,1,3,1,3]
  771. _SetRadio[1,GRP1] : Rem Redraw group & show active button.
  772. '
  773. GRP2=1 : Rem Make button 1 in group 2 active.
  774. _AddRadioButton[70,50,2,1,1,4]
  775. _AddRadioButton[70,60,2,2,1,5]
  776. _SetRadio[2,GRP2] : Rem Redraw group and show active button.
  777. '
  778. DO
  779.    '
  780.    _CheckRadioButtons : Rem This checks if a radio button has been clicked.
  781.    _RadioZone=Param
  782.    '
  783.    IF _RadioZone>=1 And _RadioZone<=3
  784.       GRP1=_RadioZone : Rem Set to new active radio button in group 1.
  785.       _SetRadio[1,GRP1]
  786.    END IF
  787.    '
  788.    IF _RadioZone=4 Or _RadioZone=5
  789.       GRP2=_RadioZone-3 : Rem Set to new active radio button in group 2.
  790.       _SetRadio[2,GRP2]
  791.    END IF
  792.    '
  793. LOOP
  794.  
  795.  
  796. Draw User Object Procedure
  797. --------------------------
  798.  
  799. Description:    This procedure is used to paste icons, bobs or draw user
  800.                 objects either on screen, or inside a button.
  801.  
  802. Syntax:         _DrawUserObject[X1,Y1,X2,Y2,T$]
  803.  
  804. Variables:      X1,Y1 _________________ These can be the co-ordinate's for a
  805.                                         bob or icon, or the top left-hand
  806.                                         corner for a user object.
  807.                 X2,Y2 _________________ These are used for the bottom
  808.                                         right-hand corner for a user object,
  809.                                         or the number of pixels to offset a
  810.                                         bob or icon from the top left hand
  811.                                         corner of the 3D box.
  812.                 T$ ____________________ This holds a 3 letter object code
  813.                                         for the object e.g. "BOB001" places
  814.                                         bob 1 on screen, "ICO100" places
  815.                                         icon 100 on screen or you can create
  816.                                         your own object codes by placing
  817.                                         them inside the procedure, like
  818.                                         "UAR", "DAR", "LAR" and "RAR" which
  819.                                         are used for drawing direction
  820.                                         arrows.
  821.  
  822. Example
  823. -------
  824.  
  825. _AddButton[50,50,100,100,"(S)UAR",1]
  826. _AddButton[50,150,100,200,"(S)DAR",2]
  827. '
  828. _Draw3DBox[200,10,300,100,"",0,0,_Back]
  829. _DrawUserObject[200,10,20,5,"BOB001"]
  830. '
  831. DO
  832.    '
  833.    _CheckButtons
  834.    _ButtonZone=Param
  835.    '
  836.    IF _ButtonZone=1 Or _ButtonZone=2
  837.       FADE 3
  838.       WAIT 45
  839.       END
  840.    END IF
  841.    '
  842. LOOP
  843.  
  844.  
  845. Additional Notes
  846. ----------------
  847.  
  848. Any time a new button or radio zone is created, it is stored inside of
  849. _DialogButton$ or _RadioButton$, so this means that the dialog procedures
  850. use little memory.  If you wish to clear the dialog zones, simply put
  851. _DialogButton$="" in your listing to clear the normal dialog buttons, or put
  852. _RadioButton$="" to clear the radio buttons.
  853.  
  854. The text input buttons are used like normal Workbench 2 input lines, they
  855. use the same keys, including SHIFT+LEFT to move the cursor to the start of
  856. the input line, SHIFT+RIGHT to move the cursor to the end of the input line,
  857. SHIFT+BACKSPACE to delete all the text before the cursor and SHIFT+DELETE to
  858. delete all of the text after the cursor.
  859.  
  860. When you have finished typing or inserting your program into the procedures
  861. listing, you can free some memory and disk space by deleting the unused
  862. procedures and also by removing the REM statements.
  863.  
  864.  
  865. Appendix 1
  866. ----------
  867.  
  868. When placing text inside this string, you can use the "|" character to
  869. separate the text onto different lines, you can also set the text
  870. justification by placing the "^" character at the start of your text for
  871. right justified text, or place the "'" character at the start of your text
  872. for left justified text, or if none of these characters are used, then the
  873. text will simply be centred e.g. "'This|Is An|^Example".
  874.  
  875. You can also use special codes to incorporate user objects, bobs and icons
  876. inside a button or box, to do this place "(S)" at the start of the string
  877. followed by the code e.g. "(S)BOB001" placed bob 1 inside a button or box,
  878. "(S)ICO100" places icon 100 inside a button or box, or you can use the user
  879. objects "(S)UAR", "(S)DAR", "(S)LAR" and "(S)RAR" to draw direction arrows.
  880.  
  881. NOTE:  You do not need "(S)" at the start of a string if you are using the
  882.        _DrawUserObject procedure, only when you are drawing a 3D box or
  883.        button.
  884.  
  885.  
  886. Alert Requester Procedure (Add-On)
  887. ----------------------------------
  888.  
  889. Description:    This procedure displays an alert requester, prompting you to
  890.                 press a button, or it can be used to simply display messages
  891.                 (Screen 7 is used for the requester).
  892.  
  893.                 NOTE:  This is an add-on procedure, it has to be merged into
  894.                        the main program before it can be used.
  895.  
  896. Syntax:         _AlertRequester[M$,B$]
  897.  
  898. Variables:      M$ ____________________ This contains the text to be
  899.                                         displayed inside the requester, use
  900.                                         the "|" character to split the text
  901.                                         onto separate lines.  Put "_Cc_"
  902.                                         inside of the string to close a
  903.                                         previously opened text requester.
  904.                 B$ ____________________ This contains the button text to be
  905.                                         used by the requester, use the "|"
  906.                                         character to separate the buttons
  907.                                         e.g. "Button 1|Button 2".  If you
  908.                                         leave this string blank, then a text
  909.                                         requester will be displayed without
  910.                                         any buttons.
  911.                 PARAM _________________ This variable contains the button
  912.                                         number pressed from the alert
  913.                                         requester.
  914.  
  915. Example
  916. -------
  917.  
  918. _AlertRequester["This Requester Is Great!||>>> Press A Mouse Key <<<",""]
  919. Repeat
  920. Until Mouse Key
  921. _AlertRequester["_Cc_",""]
  922. '
  923. _AddButton[50,50,200,100,"QUIT!",1]
  924. '
  925. Do
  926.    '
  927.    _CheckButtons
  928.    _ButtonZone=Param
  929.    '
  930.    IF _ButtonZone=1
  931.       _AlertRequester["Do You Really Wan't To Quit?","YES|NO"]
  932.       IF PARAM=1
  933.          END
  934.       END IF
  935.    END IF
  936.    '
  937. LOOP
  938.  
  939.  
  940. Palette Requester Procedure (Add-On)
  941. ------------------------------------
  942.  
  943. Description:    This procedure displays a palette requester, so the user can
  944.                 change the colours of the screen stated (Screens 6 & 7 are
  945.                 used for the requester).
  946.  
  947.                 NOTE:  This is an add-on procedure, it has to be merged into
  948.                        the main program before it can be used.
  949.  
  950. Syntax:         _PaletteRequester[S]
  951.  
  952. Variables:      S _____________________ This contains the screen number to
  953.                                         change the palette on.
  954.  
  955. Example
  956. -------
  957.  
  958. FOR L=0 To 15
  959.    Cls L,L*10,0 TO L*10+20,20
  960. NEXT L
  961. '
  962. _Draw3DBox[50,50,589,149,"WOW!|LIKE THE NEW COLOURS",0,2,3]
  963. '
  964. _PaletteRequester[0]
  965. '
  966. END
  967.  
  968.  
  969. File Requester Procedure (Add-On)
  970. ---------------------------------
  971.  
  972. Description:    This procedure displays a file requester, so the user can
  973.                 select a file for use inside their program (Screen 7 is used
  974.                 for the requester).
  975.  
  976.                 NOTE:  This is an add-on procedure, it has to be merged into
  977.                        the main program before it can be used.  Certain
  978.                        lines have to be cut and pasted, beside the global
  979.                        variables and also beside the set variables lines for
  980.                        this procedure to work.
  981.  
  982. Syntax:         _FileRequester[T$]
  983.  
  984. Variables:      T$ ____________________ This contains the title to display
  985.                                         at the top of the file requester.
  986.                 PARAM$ ________________ This contains the file selected from
  987.                                         the file requester.
  988.  
  989. Example
  990. -------
  991.  
  992. _FileRequester["Please Select A File"]
  993. _File$=Param$
  994. '
  995. Print "You Selected :-"
  996. print _File$
  997. '
  998. End
  999.  
  1000.  
  1001. Get WB Palette Procedure (Add-On)
  1002. ---------------------------------
  1003.  
  1004. Description:    This procedure will search for either the workbench
  1005.                 Palette.prefs or System-Configuration files, and then load
  1006.                 the colour palette from whatever one is found.
  1007.  
  1008.                 NOTE:  This is an add-on procedure, it has to be merged into
  1009.                        the main program before it can be used.
  1010.  
  1011. Syntax:         _GetWbPalette
  1012.  
  1013. Example
  1014. -------
  1015.  
  1016. For C=0 To 7
  1017.    Cls C,C*10,0 To X*10+8,8
  1018. Next C
  1019. '
  1020. Print At(0,5)+"Normal Palette.  >>> Press Key To Continue <<<"
  1021. '
  1022. Wait Key
  1023. '
  1024. _GetWbPalette
  1025. '
  1026. Locate 0,5
  1027. Cline
  1028. Print At(0,5)+"Workbench Palette."
  1029. '
  1030. End
  1031.