home *** CD-ROM | disk | FTP | other *** search
/ The Education Master 1994 (4th Edition) / EDUCATIONS_MASTER_4TH_EDITION.bin / files / progasic / coditqb2 / ci.doc next >
Text File  |  1991-06-17  |  154KB  |  3,606 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                                 CODE-IT Menus & Windows
  13.  
  14.                 Copyright (C) 1991, Clear Software. All Rights Reserved
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.           Clear Software  14962 Bear Valley Rd. Ste. G, Victorville Ca. 92392
  50.                    Telephone (619)243-4749        FAX (619)241-3256
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                                       WARRANTIES
  59.  
  60.           This software is provided as-is. There are no warranties, 
  61.           expressed or implied.                    
  62.           CLEAR SOFTWARE DISCLAIMS ALL WARRANTIES RELATING TO THIS 
  63.           SOFTWARE, WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
  64.           TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
  65.           PARTICULAR PURPOSE, AND ALL SUCH WARRANTIES ARE EXPRESSLY AND 
  66.           SPECIFICALLY DISCLAIMED. NEITHER CLEAR SOFTWARE NOR ANYONE ELSE 
  67.           WHO HAS BEEN INVOLVED IN THE CREATION, PRODUCTION, OR DELIVERY OF 
  68.           THIS SOFTWARE SHALL BE LIABLE FOR ANY INDIRECT, CONSEQUENTIAL, OR 
  69.           INCIDENTAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE 
  70.           SUCH SOFTWARE EVEN IF CLEAR SOFTWARE AS BEEN ADVISED OF THE 
  71.           POSSIBILITY OF SUCH DAMAGES OR CLAIMS. IN NO EVENT SHALL CLEAR 
  72.           SOFTWARE's LIABILITY FOR ANY DAMAGES EVER EXCEED THE PRICE PAID 
  73.           FOR THE  LICENSE TO USE THE SOFTWARE, REGARDLESS OF THE FORM OF 
  74.           CLAIM. THE PERSON USING THE SOFTWARE BEARS ALL RISK AS TO THE 
  75.           QUALITY AND PERFORMANCE OF THE SOFTWARE. Some states do not allow 
  76.           the exclusion of the limit of liability for consequential or 
  77.           incidental damages, so the above limitation may not apply to you.
  78.  
  79.           This agreement shall be governed by the laws of the State of 
  80.           California and shall inure to the benefit of Clear Software and 
  81.           any successors, administrators, heirs and assigns. Any action or 
  82.           proceeding brought by either party against the other arising out 
  83.           of or related to this agreement shall be brought only in a STATE 
  84.           or FEDERAL COURT of competent jurisdiction located in San 
  85.           Bernadino County, California. The parties hereby consent to in 
  86.           personam jurisdiction of said courts.
  87.  
  88.           This software and the disk(s) in which it is contained are 
  89.           licensed to you, for your own use. This is copyrighted software. 
  90.           You are not obtaining title to the software or any copyright 
  91.           rights. You may not sublicense, rent, lease, convey, modify, 
  92.           translate, convert to another programming language, decompile, or 
  93.           disassemble the software for any purpose. 
  94.  
  95.           You may use this software on more than one computer, provided 
  96.           there is no chance it will be used simultaneously on more than 
  97.           one computer. If you need to use this software on more than one 
  98.           computer simultaneously, a multi site license must be obtained 
  99.           from Clear Software.
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.           Clear Software grants permission for this program disk(s) to be 
  107.           copied and distributed, if no fee is charged. UNDER NO 
  108.           CIRCUMSTANCES MAY THIS SOFTWARE BE DISTRIBUTED IF A FEE OF ANY 
  109.           KIND, INCLUDING FEES TO COVER SHIPPING, HANDLING AND DUPLICATING 
  110.           COSTS IS CHARGED, WITHOUT PRIOR WRITTEN PERMISSION FROM CLEAR 
  111.           SOFTWARE. This software may not be distributed via electronic 
  112.           information services or BBSs with express written permission from 
  113.           Clear Software. 
  114.  
  115.           If written permission to distribute this program and or files has 
  116.           been obtained from Clear Software, the maximum amount which can 
  117.           be charged is $10.00. 
  118.  
  119.           If you use this software for more than 90 days you are required 
  120.           to purchase a registered copy from Clear Software.
  121.  
  122.  
  123.                              MULTI SITE LICENSE AGREEMENT
  124.  
  125.           If you would like to use this software on more than one computer 
  126.           a site license is required. A site license is also required to 
  127.           use this software on a network. A site license allows you to copy 
  128.           and use this software within your organization on as many 
  129.           computers as you have contracted for. An unlimited site license 
  130.           allows unlimited copying of the software for internal use only. 
  131.           This is copyrighted software and any distribution or reselling of 
  132.           the software to third parties is prohibited. Use the MULTI SITE 
  133.           LICENSE AGREEMENT form, printed in this manual (also included in 
  134.           the REGFORM.DOC file included with the CITOOLS disk(s)), for 
  135.           registering multi site software.The MULTI SITE LICENSE AGREEMENT 
  136.           is a perpetual license for the use of the software within your 
  137.           organization, and is not transferable. 
  138.  
  139.           The MULTI SITE LICENSE AGREEMENT is distinct from shareware use. 
  140.           It does not authorize the continued use of shareware. If, in 
  141.           addition to the software used under this license, shareware is in 
  142.           use, that shareware must be registered with Clear Software. In 
  143.           addition Clear Software will provide technical support for one 
  144.           year from the date of this agreement to one person, designated as 
  145.           the key contact within your company or organization. 
  146.  
  147.           Clear Software warrants that it is the sole owner of the software 
  148.           and has full power and authority to grant the site license 
  149.           without the consent of any other party.
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.                                   SYSTEM REQUIREMENTS
  157.  
  158.           IBM XT, AT, PS2 or compatible computer running DOS 2.1 or higher. 
  159.           The CODE-IT tool box set is designed to work with Microsoft(r) 
  160.           QuickBASIC and BASIC PDS 7.x software on MS-DOS operating systems 
  161.           2.1 and higher.
  162.  
  163.           Optional equipment include a Microsoft■ or 100% compatible mouse 
  164.           and a color monitor.
  165.  
  166.                             MISC. COPYRIGHTS AND TRADEMARKS
  167.  
  168.           All Clear Software products are trademarks or registered 
  169.           trademarks of Clear Software. All other brand and product names 
  170.           are registered trademarks of their respective companies.
  171.  
  172.                                REGISTERING THIS SOFTWARE
  173.  
  174.           Clear Software distributes this software through shareware 
  175.           marketing, giving you the user a chance to try the software 
  176.           before you buy it. If you use the software for more than 90 days, 
  177.           or you wish to sell a program developed with the CODE-IT tool 
  178.           box, you are required to purchase a registered version from Clear 
  179.           Software. The cost to register is $59.00 for either the 
  180.           QuickBASIC or BASIC PDS versions, or $79.00 to register both at 
  181.           the same time. There are several benefits of becoming a 
  182.           registered  user such as:
  183.  
  184.                *    A printed manual
  185.                *    The most recent version of the program
  186.                *    2 free updates
  187.                *    1 year free tech support
  188.                *    Additional 90 day money back guarantee. If your not 
  189.                     completely satisfied with the Registered version of the 
  190.                     CODE-IT Tool Box Set, return it to us within 90 days 
  191.                     and we'll refund the purchase price - no questions 
  192.                     asked.
  193.  
  194.           The above guarantee applies to registered versions only.
  195.  
  196.           To become a registered user, fill out the REGISTRATION FORM from 
  197.           the REGFORM.DOC file included with the CITOOLS disk(s) set and 
  198.           send it in to Clear Software.
  199.  
  200.           If you have any questions about this agreement or our products 
  201.           please call or write us. Our hours are Monday - Friday 9 to 5 
  202.           pacific time. Our answering service and FAX is on all the time. 
  203.           You can call us or write us at:
  204.                               Clear Software
  205.                               14962 Bear Valley Rd. Ste. G
  206.                               Victorville, CA 92392
  207.                               Telephone (619)243-4749  FAX (619)241-3256
  208.  
  209.                            Copyright(C) 1991, Clear Software 
  210.                                  All Rights Reserved.
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.           About CODE-IT.................................................  1
  218.  
  219.           Getting Started...............................................  3
  220.                Installation.............................................  3
  221.                Creating Libraries.......................................  4
  222.                Using Libraries..........................................  6
  223.                INCLUDE Files............................................  6
  224.                Demo Programs............................................  7
  225.  
  226.           CITOOLS.LIB...................................................  9
  227.                AdapterSet...............................................  9
  228.                AdapterType..............................................  9
  229.                AltConvert...............................................  9
  230.                AttrChange............................................... 10
  231.                DrawBox.................................................. 11
  232.                ScreenPaint.............................................. 11
  233.                ScreenRestore............................................ 12
  234.                ScreenSave............................................... 13
  235.                ScrollArea............................................... 13
  236.                ShiftStateNow............................................ 14
  237.                WindowPut................................................ 15
  238.  
  239.           CIMOUSE.LIB................................................... 17
  240.                MouseDriver.............................................. 17
  241.                MouseHide................................................ 17
  242.                MouseInit................................................ 17
  243.                MouseLimit............................................... 18
  244.                MousePoll................................................ 18
  245.                MouseShow................................................ 19
  246.  
  247.           CIMENU1.LIB................................................... 20
  248.                Limits And Considerations................................ 20
  249.                PullDownActive........................................... 20
  250.                PullDownColors........................................... 20
  251.                PullDownDefine........................................... 21
  252.                PullDownDescript......................................... 22
  253.                PullDownDescriptArea..................................... 23
  254.                PullDownInfo............................................. 23
  255.                PullDownPaint............................................ 24
  256.                PullDownPoll............................................. 24
  257.                PullDownSoundSet......................................... 25
  258.                PullDownStateSet......................................... 25
  259.                PullDownTitleDescript.................................... 26
  260.                PullDownTitleOn.......................................... 26
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.           CIMENU2.LIB................................................... 27
  268.                Limits and Considerations................................ 27
  269.                PopUpActive.............................................. 27
  270.                PopUpChoiceDescript...................................... 28
  271.                PopUpColors.............................................. 28
  272.                PopUpDefine.............................................. 29
  273.                PopUpDescriptArea........................................ 30
  274.                PopUpExitKeySet.......................................... 31
  275.                PopUpGetItem............................................. 31
  276.                PopUpPaint............................................... 32
  277.                PopUpPlace............................................... 32
  278.                PopUpReset............................................... 32
  279.                PopUpSoundSet............................................ 33
  280.                PopUpStateSet............................................ 33
  281.  
  282.           CIMENU3.LIB................................................... 35
  283.                Limits and Considerations................................ 35
  284.                PopColors................................................ 35
  285.                PopDescript.............................................. 36
  286.                PopExitKeySet............................................ 37
  287.                PopMenu.................................................. 38
  288.                PopPaint................................................. 38
  289.                PopReset................................................. 39
  290.  
  291.           CIMENU4.LIB................................................... 40
  292.                Limits And Considerations................................ 40
  293.                RingActive............................................... 40
  294.                RingColors............................................... 41
  295.                RingDefine............................................... 41
  296.                RingDescript............................................. 42
  297.                RingOn................................................... 43
  298.                RingSound................................................ 43
  299.  
  300.           CIWIND1.LIB................................................... 44
  301.                Limits and Considerations................................ 44
  302.                ButtonDefine............................................. 44
  303.                ButtonGet................................................ 45
  304.                ButtonReset.............................................. 46
  305.                ButtonStateSet........................................... 46
  306.                uttonToggle.............................................. 46
  307.                EditFieldColors.......................................... 47
  308.                EditFieldDefine.......................................... 47
  309.                EditFieldGet............................................. 49
  310.                WindowActive............................................. 49
  311.                WindowColors............................................. 50
  312.                WindowDefine............................................. 51
  313.  
  314.  
  315.  
  316.  
  317.  
  318.                WindowDrawBox............................................ 52
  319.                WindowDrawLine........................................... 52
  320.                WindowEvent.............................................. 53
  321.                WindowOff................................................ 54
  322.                WindowOn................................................. 54
  323.                WindowPaint.............................................. 55
  324.                WindowPrint.............................................. 55
  325.                WindowSoundSet........................................... 56
  326.  
  327.           CIWIND2.LIB................................................... 57
  328.                Limits and Considerations................................ 57
  329.                AlertWindow.............................................. 57
  330.                ScrollWindow............................................. 58
  331.                TagWindow................................................ 59
  332.                TextWindow............................................... 61
  333.  
  334.                                                                           Page 1
  335.  
  336.  
  337.  
  338.  
  339.           About CODE-IT
  340.  
  341.           CODE-IT Menus & Windows 2.0 is a flexible user interface library 
  342.           set for use with the Microsoft(r) BASIC language. The libraries 
  343.           work with QuickBASIC 4.5 and BASIC PDS 7.x and above.
  344.  
  345.           CODE-IT 2.0 includes a combined library (CIALL.LIB and QLB) and 8 
  346.           separate library modules for building menus and windows. Menus 
  347.           can be pull down menus, pop up menus held in memory, stand alone 
  348.           pop up menus, even ring or vertical menus. Windows can have text, 
  349.           boxes, lines, edit fields with controlled keyboard input and 
  350.           output, and several types of buttons. All the menus and windows 
  351.           have complete mouse support built in. There's even a separate 
  352.           mouse routine library included for developing your own mouse 
  353.           supported programs.
  354.  
  355.           Also included is a library of specialty windows. Windows like 
  356.           auto sized text windows, scrolling windows, tag windows, and 
  357.           alert windows are complete and ready to use. A multi purpose 
  358.           library included with the set features screen saving and 
  359.           restoring, box and background drawing, video hardware detection 
  360.           and more.
  361.  
  362.           You can use the combined libraries for building your programs or 
  363.           the separate libraries can be mixed and matched in just about any 
  364.           way to create your own custom libraries. Since the compiler will 
  365.           only pull in the code from the library which your program needs, 
  366.           the size of your programs will be the same either way.
  367.  
  368.           No royaltee fees are charged for programs developed with the 
  369.           registered version of the CODE-IT Menus & Windows.
  370.  
  371.           The CODE-IT tool box set, or CITOOLS for short, is distributed 
  372.           through shareware marketing. Simply put, shareware is user 
  373.           supported software. Software which gives you the chance to try 
  374.           before you buy. Clear Software gives you permission to use the 
  375.           CODE-IT software for 90 days. If your still using the software 
  376.           after 90 days, or you wish to sell a program you have developed 
  377.           with the CODE-IT tool box set, you are required to purchase a 
  378.           registered copy from Clear Software. You may not sell a program 
  379.           developed with an unregistered version of CODE-IT. The benefits 
  380.           of becoming a registered user far outweigh the nominal cost. The 
  381.           benefits include:
  382.  
  383.                *    A printed manual.
  384.                *    The latest version of the tool box libraries.
  385.                *    1 year FREE tech support.
  386.                *    2 FREE updates.
  387.                *    A 90 day unconditional money back guarantee. If your 
  388.                     not happy with the registered version of the program, 
  389.                     return it to us within 90 days and we'll refund your 
  390.                     money in full, no questions asked.
  391.  
  392.           At Clear Software, your satisfaction is our number one priority.
  393.  
  394.                                                                           Page 2
  395.  
  396.  
  397.  
  398.  
  399.           The cost to purchase a registered version is $59.00 (U.S.) for either 
  400.           the QuickBASIC or the BASIC PDS system. Or you can register both      
  401.           versions at the same time for $79.00!
  402.  
  403.           Shipping and handling are free anywhere in the U.S.A., air 
  404.           service is available at an additional cost. To register, print a 
  405.           copy of the registration form file (REGFORM.DOC) which comes with 
  406.           the shareware version disk(s). Fill in the form and send it and a 
  407.           check or money order for $59.00 (California residents add 6.5% 
  408.           sales tax) to:
  409.  
  410.                Clear Software
  411.                14962 Bear Valley Rd. Ste. G
  412.                Victorville, Ca. 92392
  413.  
  414.           The CODE-IT tool box set is designed to leverage the programmers 
  415.           time. We feel that once you study and begin using the tools you 
  416.           will find them a useful and invaluable source for your programs. 
  417.  
  418.           As we mentiond before Clear Software charges no royalty fees for 
  419.           registered users of the CODE-IT set developing end user 
  420.           executable programs. Once your a registered user, all executable 
  421.           files developed with the CITOOLS set are yours to distribute as 
  422.           you wish. However, You may not develop libraries or object files 
  423.           which contain any part of the CITOOLS set for any form of 
  424.           distribution without compiling them into a running executable 
  425.           file. For more information on the license agreement for this 
  426.           software see the License Agreement section at the beginning of 
  427.           this document or manual.
  428.  
  429.           The tool box routines used are called like any other SUB or 
  430.           FUNCTION in the Microsoft(r) BASIC language. Depending on your 
  431.           level of programming knowledge and third party libraries, 
  432.           learning to use them could take some time. Usually we recommend 
  433.           sitting down with them for a session or two before you begin 
  434.           serious programming with them. Studying the sample source code 
  435.           files (DEMO*.BAS) included with the disk(s) also speed the 
  436.           understanding of the procedures. Also, use the tool box reference 
  437.           in this manual for detailed explanations of the routines in the 
  438.           CITOOLS set.
  439.  
  440.           At Clear Software it's extremely important to us that we know 
  441.           your feelings about our software. If you have any suggestions or 
  442.           comments about our software products please write to us and let 
  443.           us know.
  444.  
  445.  
  446.                                                                           Page 3
  447.  
  448.  
  449.  
  450.  
  451.           Getting Started
  452.  
  453.           Installation
  454.           Installation can be done in two ways. First you can just copy all 
  455.           the library files to your disk using the DOS copy command. 
  456.           Second, you can use the install program that comes on the disks 
  457.           to copy the needed files for you (this is the recommended way). 
  458.           The install program allows you to specify the directory to put 
  459.           the files in and will create the directory if needed. The 
  460.           following will help you in the installation of the CITOOLS set 
  461.           using the install program.
  462.  
  463.           First, make backup copies of the original disk or disks and use 
  464.           the copies to install the files. Consult your DOS manual for the 
  465.           disk copy procedure.
  466.  
  467.           1)   Put the disk (disk 1 if you have a multiple disk set) in 
  468.                drive A: or B: and at the "C:>" prompt type "A:CIINSTAL" and 
  469.                press the ENTER key. After a few seconds a menu will appear 
  470.                asking if you have a color or monochrome monitor. Use the 
  471.                ARROW keys to highlight the correct mode and press ENTER to 
  472.                select it.
  473.  
  474.           2)   The next screen to appear is the opening screen displaying 
  475.                information about the install program and CITOOLS. After 
  476.                reading the message press any key to continue.
  477.  
  478.           3)   Your now at the install control screen. The window at the 
  479.                top displays the default drive of the source or "from" drive 
  480.                (the drive that the installation disk is in) and the default 
  481.                drive and directory to install the library and document 
  482.                files to, the "to" path. Below that is the control menu. If 
  483.                the default selections are alright then skip to section 4, 
  484.                otherwise use the following to make any corrections needed.
  485.  
  486.                To change the "From" drive:
  487.                Use the ARROW keys to highlight the menu choice "Change 
  488.                Install From Drive" (or press the "T" quick access key) and 
  489.                press ENTER. Use the editing keys (backspace, del, ect...) 
  490.                to enter the correct drive and press ENTER.
  491.  
  492.                To change the "To" path:
  493.                Use the ARROW keys to highlight the menu choice "Change 
  494.                Install Form Path" (or press the "F" quick access key) and 
  495.                press ENTER. Use the editing keys (backspace, del, ect...) 
  496.                to enter the correct path and press ENTER.
  497.  
  498.           4)   Once all the path and drive are correct, use the ARROW keys 
  499.                to highlight the menu choice "Install With Current Options" 
  500.                (or press the "I" quick access key) and press ENTER. If the 
  501.                "To" drive you gave does not exist CIINSTAL will prompt you 
  502.                for a confirmation before creating it. The program prompts 
  503.                you to make sure the correct disk is in the install "From" 
  504.                drive. On multiple disk sets other windows will pop up and 
  505.                tell you which disk to put in the drive next. When the file 
  506.                installation is complete another window pops up to let you 
  507.                know. Press any key to continue.
  508.  
  509.                                                                           Page 4
  510.  
  511.  
  512.  
  513.  
  514.           5)   Once again you are at the control menu. Use the ARROW keys 
  515.                to highlight the menu choice "Exit" (or press the "x" quick 
  516.                access key) to end the installation program.
  517.  
  518.           That's It. The files are now installed and ready to use. The next 
  519.           section will help you build the libraries and decide which files 
  520.           you will want to include in them.
  521.  
  522.  
  523.           Creating Libraries
  524.           The tools are separated into several individual library files. 
  525.           This allows you to build custom run time and quick libraries for 
  526.           use with your programs without having to include unused code. 
  527.           This is helpfull if memory is a concern, and you need as small a 
  528.           quick library as posible. The following is a brief description of 
  529.           the tool box files and the necessary LIB files to include when 
  530.           building your libraries. For a more detailed description of the 
  531.           libraries see the toolbox references.
  532.  
  533.           Library File        Description and Related Files
  534.           _________________________________________________________________
  535.           CIALLQB.LIB -or-
  536.           CIALLB7.LIB         A combined library of all the CODE-IT tool 
  537.                               box libraries. (CIALLQB.LIB for QuickBASIC, 
  538.                               CIALLB7.LIB for BASIC PDS).
  539.  
  540.           CIALLQB.QLB -or-
  541.           CIALLB7.QLB         The quick library contaning all the CODE-IT 
  542.                               library routines. (CIALLQB.QLB for 
  543.                               QuickBASIC, CIALLB7.QLB for BASIC PDS). Load 
  544.                               them into the QB or QBX environment using the 
  545.                               /L command followed by the quick library name 
  546.                               (QB /L CIALLQB).
  547.  
  548.           CITOOLS.LIB         The main tool box file. All the other tool 
  549.                               box files use the routines in this library. 
  550.                               You must include this file when using any of 
  551.                               the libraries in the CITOOLS set. You can 
  552.                               however use this file alone if your program 
  553.                               only uses the routines in this library.
  554.  
  555.           CIMOUSE.LIB         The mouse routines for all the menu and 
  556.                               window tool box files. It must be included in 
  557.                               any combined libraries you create with the 
  558.                               CITOOL set, even if you don't plan to use 
  559.                               mouse routines with your program. This file 
  560.                               is separate from the CITOOLS.LIB incase you 
  561.                               want to use it to build mouse routines into 
  562.                               your programs without using any of the other 
  563.                               tool box files.
  564.  
  565.           CIMENU1.LIB         Routines for pull down menus. When creating a 
  566.                               combined or quick library the CITOOLS.LIB and 
  567.                               the CIMOUSE.LIB must be included also.
  568.  
  569.                                                                           Page 5
  570.  
  571.  
  572.  
  573.  
  574.           CIMENU2.LIB         The library for using in memory pop up menus. 
  575.                               When creating a combined or quick library the 
  576.                               CITOOLS.LIB and the CIMOUSE.LIB must be 
  577.                               included also.
  578.  
  579.           CIMENU3.LIB         Routines for pop up menus (not held in 
  580.  
  581.                               memory). When creating a combined or quick 
  582.                               library the CITOOLS.LIB and the CIMOUSE.LIB 
  583.                               must be included also.
  584.  
  585.  
  586.           CIMENU4.LIB         Routines for using ring or vertical menus. 
  587.                               When creating a combined or quick library the 
  588.                               CITOOLS.LIB and the CIMOUSE.LIB must be 
  589.                               included also.
  590.  
  591.           CIWIND1.LIB         Routines for creating text, button, and data 
  592.                               entry windows. When creating a combined or 
  593.                               quick library the CITOOLS.LIB and the 
  594.                               CIMOUSE.LIB must be included also.
  595.  
  596.           CIWIND2.LIB         Routines for specialty windows such as alert 
  597.                               and tag windows. When creating a combined or 
  598.                               quick library the CITOOLS.LIB and the 
  599.                               CIMOUSE.LIB must be included also.
  600.  
  601.           Creating combined or quick libraries with the CITOOLS set is just 
  602.           like creating any other library. If you have Clear Software's 
  603.           TRACK-IT Library Management System use it to create the libraries 
  604.           for you. The database of TRACK-IT will also help you keep track 
  605.           of the separate library modules you used to create the combined 
  606.           libraries. 
  607.  
  608.           If you don't have the TRACK-IT system, the following section is 
  609.           an example of creating stand alone and quick libraries from the 
  610.           DOS command line. (If you would like a copy of the TRACK-IT 
  611.           Library Management System, ask for it from your favorite 
  612.           shareware dealer. If unavailable you can also order it directly 
  613.           from Clear Software).
  614.  
  615.           Stand Alone Library:
  616.                LIB CINEW.LIB+CITOOLS.LIB+CIMOUSE.LIB+CIMENU1.LIB;
  617.  
  618.                Creates a stand alone or linkable library called CINEW.LIB 
  619.                which contains the CITOOLS, CIMOUSE, and CIMENU1 libraries.
  620.  
  621.           Quick Library - QuickBASIC
  622.                LINK /Q CITOOLS.LIB CIMOUSE.LIB CIMENU1.LIB, CINEW.QLB,, 
  623.                BQLB45.LIB;
  624.  
  625.                Creates a quick library for use with QuickBASIC 4.5 out of 
  626.                the CITOOLS, CIMOUSE, and the CIMENU1 libraries. 
  627.  
  628.                                                                           Page 6
  629.  
  630.  
  631.  
  632.  
  633.                 NOTE: BQLB45.LIB is for the QuickBASIC 4.5 system. If you 
  634.                have a different version of QuickBASIC use the correct 
  635.                library.
  636.  
  637.           Quick Library - BASIC 7.x
  638.                LINK /Q CITOOLS.LIB CIMOUSE.LIB CIMENU1.LIB, CINEW.QLB,, 
  639.                QBXQLB.LIB;
  640.  
  641.                Creates a quick library for use with the BASIC 7.x 
  642.                professional development system. The library contains the 
  643.                CITOOLS, CIMOUSE, and CIMENU1 libraries.
  644.  
  645.           For more information on stand alone and quick libraries see your 
  646.           BASIC reference manual.
  647.  
  648.           Using Libraries
  649.           This section gives a brief overview of third party libraries and 
  650.           their uses. If your familiar with these types of libraries you 
  651.           might just want to skim through this section to pick up hints on 
  652.           the CITOOLS set. For others who might be new to third party 
  653.           libraries this section will help you see how you can use the 
  654.           libraries to improve your program development.
  655.  
  656.           The term "Third party libraries" refers to computer language 
  657.           library files put out by companies other than the originator of 
  658.           the programming environment. In this case Microsoft(r). Their uses 
  659.           in computer programming have become very popular due to the great 
  660.           amount of time you save by using code already wrote and tested.
  661.  
  662.           There are different types of library sets. CODE-IT is a set of 
  663.           user interface libraries, libraries which allow you to design 
  664.           menus and windows to communicate with the end user of your 
  665.           programs. To write the code for these routines yourself could 
  666.           take you months or even years. But by registering with Clear 
  667.           Software and using the CODE-IT set, you'll spend that time on 
  668.           developing new projects and profiting from your finished ones.
  669.  
  670.           Using the libraries is the same as calling any other Microsoft(r) 
  671.           BASIC SUB or FUNCTION procedure. In fact, that's exactly what 
  672.           they are. Some of the procedures use languages such as C and 
  673.           Assembler to improve their speed and functionability. Others are 
  674.           written in BASIC. Your program does not need to know the 
  675.           language, just the correct calling procedure.
  676.  
  677.           INCLUDE Files
  678.           Included on the CITOOLS disk is a group of include files. If your 
  679.           not familiar with include files, they contain the definitions for 
  680.           the SUB's and FUNCTION's in the CITOOLS libraries. The include 
  681.           file name is the same as it's library file name except for the 
  682.           "BI" extension. The appropriate include file must be placed at 
  683.           the beginning of the main module in your program with an INCLUDE$ 
  684.           meta command such as:
  685.  
  686.           'INCLUDE$:'CIMENU1.BI'
  687.  
  688.           See your BASIC reference manual for more details.
  689.                                                                           Page 7
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.           If you used the install program included with the CODE-IT set, 
  697.           the files are already installed for you. If you copied the files 
  698.           from the disk yourself, and did not copy the "BI" files, you must 
  699.           do so before using the tool box libraries or demo programs. Make 
  700.           sure the include files are in the same directory as your program 
  701.           file, or that the path to them is included in the QB or QBX 
  702.           environment paths.
  703.  
  704.           Demo Programs
  705.           At Clear Software, we believe the best way to learn the CODE-IT 
  706.           set is to use it. For this reason we have included two things 
  707.           with the set, a tool box reference and demo programs. Later in 
  708.           this manual you will find the tool box reference, and the demo 
  709.           files are located on the CODE-IT disk. All the demo programs are 
  710.           source code files with an extension of "BAS".
  711.  
  712.           Each individual program demonstrates one of the menu or window 
  713.           tool box libraries in the CITOOLS set. The demo is broken up to 
  714.           make it easier to learn about any part of the tool box without 
  715.           having to wade through unwanted code. 
  716.  
  717.           NOTE: The demo programs are wrote for use with a color monitor. 
  718.           If your using them on a monochrome or black and white monitor you 
  719.           will need to change the color values in the SUB and FUNCTION 
  720.           calls as well as the COLOR statement values. After loading the 
  721.           programs into the QB or QBX environment, use the tool box 
  722.           reference section to locate the color parameters in the SUB's and 
  723.           FUNCTION's.
  724.  
  725.           To use the demo programs you first need to load the combined 
  726.           quick library CIALLQB.QLB into the QB environment or CIALLB7.QLB 
  727.           into the QBX environment using the /L command followed by the 
  728.           library name. An example would be QB /L CIALLQB for QuickBASIC or 
  729.           QBX /L CIALLB7 for BASIC PDS. If you need help, see Quick 
  730.           Libraries in your BASIC reference manual. Once you've loaded the 
  731.           quick library and are in QB or QBX, load any one of the demo 
  732.           programs with the "Load New" command from the QB or QBX "File" 
  733.           menu, just as you would any other BASIC source code file.
  734.  
  735.           Viewing the source code you'll notice plenty of comments. By 
  736.           reading the comments and using the tool box reference in this 
  737.           manual, you should get a feel for how the tool box works. Also, 
  738.           the programs are now ready to run by pressing F5. Run the 
  739.           programs and watch how they work. Change the program parameters 
  740.           of the SUB and FUNCTION calls to test new values and their 
  741.           actions. Keep your tool box reference section handy to review the 
  742.           parameter types. 
  743.  
  744.           If you have problems running the demo programs, and get errors 
  745.           such as "File not found" or "Procedure not defined", check to see 
  746.           if:
  747.  
  748.           1)   Your "BI" or include files are in the same directory as the   
  749.                "BAS" or source code files.
  750.  
  751.           2)   Your quick library is loaded properly. You might have to 
  752.                exit  and reload the quick library if your not sure.                                                                           Page 8
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.           Study and play with the demo programs.When you feel comfortable 
  761.           with using the libraries, develop an application of your own. The 
  762.           CITOOLS set provides a great deal of flexibility and power to the 
  763.           programmer. After you learn it, you'll be surprised at the 
  764.           development time it will save you over writing the code yourself.
  765.                                                                           Page 9
  766.  
  767.  
  768.  
  769.  
  770.           CITOOLS.LIB
  771.  
  772.           The CITOOLS library is the heart of the toolbox. All of the other 
  773.           libraries included with the CITOOLS set use it's SUB's and 
  774.           FUNCTION's to accomplish their work. The routines can also be 
  775.           used to create your own custom applications.
  776.  
  777.  
  778.           SUB and FUNCTION Reference
  779.           _________________________________________________________________
  780.           AdapterSet FUNCTION
  781.  
  782.           This FUNCTION is used internally by CITOOLS to set the video mode 
  783.           for the screen save and restore routines. There is no need to use 
  784.           this FUNCTION from your programs.
  785.  
  786.           _________________________________________________________________
  787.           AdapterType FUNCTION
  788.  
  789.           Action:
  790.                     Returns a string representing the type of video adapter 
  791.                     on the users system.
  792.  
  793.           Example Syntax:
  794.                     variable$ = AdapterType$
  795.  
  796.                     variable% Any BASIC variable of type string.
  797.  
  798.           Remarks:
  799.                     The following strings are returned....
  800.                     "MDPA"
  801.                     "CGA"
  802.                     "ColorEGA"
  803.                     "MonoVGA" 
  804.                     "ColorVGA"
  805.                     "MonoMCGA"
  806.                     "ColorMCGA"
  807.           _________________________________________________________________
  808.           AltConvert FUNCTION
  809.  
  810.           Action:
  811.                     Strips the "Alt" from an "Alt + ascii" key press 
  812.                     leaving the ascii key as if it were the only key 
  813.                     pressed and returns it to the calling procedure in the 
  814.                     form of a string.
  815.  
  816.                                                                          Page 10
  817.  
  818.  
  819.  
  820.  
  821.           Example Syntax:
  822.                     variable$ = AltConvert(kb$)
  823.  
  824.                     variable$ Any BASIC variable of type string.
  825.  
  826.                     kb$       The key press character of the "Alt + ascii" 
  827.                               keys pressed.
  828.  
  829.           Remarks:
  830.                     The AltConvert FUNCTION is an easy way to determine a 
  831.                     specific keypress if an alt key combination could be 
  832.                     used. Simply put, when a key press value is passed, the 
  833.                     value returned is as if the user never pressed the alt 
  834.                     key.
  835.  
  836.  
  837.           _________________________________________________________________
  838.           AttrChange SUB
  839.  
  840.           Action:
  841.                     Changes the color attributes of a given area of the 
  842.                     screen without altering the contents.
  843.  
  844.  
  845.           Example Syntax:
  846.                     AttrChange left%, right%, top%, bottom%, FG%, BG%
  847.  
  848.                     left%     The left column of the area to change.
  849.  
  850.                     right%    The right column of the area to change.
  851.  
  852.                     top%      The top row of the area to change.
  853.  
  854.                     bottom%   The bottom row of the area to change.
  855.  
  856.                     FG%       Foreground color to change to.(1 to 15)
  857.  
  858.                     BG%       Background color to change to. (1 to 7)
  859.  
  860.           Remarks:
  861.                     The AttrChange SUB is used by the windows and menus of 
  862.                     the CITOOLS package to place a shadow behind them. The 
  863.                     appearance of a shadow is accomplished by changing the 
  864.                     color of the screen area to gray on black (8,0). 
  865.                     Another use of this SUB is to place and update the 
  866.                     scrolling highlight on the menus. It's much faster to 
  867.                     change the attributes then to re-print the screen area.
  868.                                                                          Page 11
  869.  
  870.  
  871.  
  872.  
  873.  
  874.           _________________________________________________________________
  875.           DrawBox SUB
  876.  
  877.           Action:
  878.                     Draws a single, double, or solid line box around a 
  879.                     given area of the screen.
  880.  
  881.           Example Syntax:
  882.                     DrawBox left%, right%, top%, bottom%, boxType%
  883.  
  884.                     left%     The left column of the box.
  885.  
  886.                     right%    The right column of the box.
  887.  
  888.                     top%      The top row of the box.
  889.  
  890.                     bottom%   The bottom row of the box.
  891.  
  892.                     boxType%  The type of box to draw. Use the following   
  893.                               values:
  894.  
  895.  
  896.                     Value     Action
  897.                     _______________________________________________________   
  898.                      1        Draws a single line box.
  899.  
  900.                      2        Draws a double line box.
  901.  
  902.                      3        Draws a solid border box using the current 
  903.                               background color.
  904.  
  905.           Remarks:
  906.  
  907.                     Use a COLOR statement before calling DrawBox to set the 
  908.                     colors for the box. On a single (1) and double (2) line 
  909.                     box the foreground color is the color of the box 
  910.                     itself. On a solid (3) box the color of the background 
  911.                     will be the color of the solid border drawn. The 
  912.                     contents between the box area drawn is not changed.
  913.  
  914.           _________________________________________________________________
  915.           ScreenPaint SUB
  916.  
  917.           Action:
  918.                     Paints a given area of the screen with any printable 
  919.                     ascii character.
  920.  
  921.                                                                          Page 12
  922.  
  923.  
  924.  
  925.  
  926.           Example Syntax:
  927.                     ScreenPaint left%, right%, top%, bottom%, Ascii$
  928.  
  929.                     left%     The left column of the area to paint.
  930.  
  931.                     right%    The right column of the area to paint.
  932.  
  933.                     top%      The top row of the area to paint.
  934.  
  935.                     bottom%   The bottom area of the area to paint.
  936.  
  937.                     Ascii$    Any printable ascii character string (IE: 
  938.                               CHR$(42) or "*" for the star character). See 
  939.                               remarks below.
  940.  
  941.           Remarks:
  942.                     Use a COLOR statement before calling the ScreenPaint 
  943.                     SUB to set the colors for the area to be painted. There 
  944.                     are two ways to pass the Ascii$ variable to the SUB. 
  945.                     One way is to use a CHR$ string like CHR$(177) for a 
  946.                     hatch character, or you can hold down the Alt and Cntl 
  947.                     keys while typing the ascii character code 177 then 
  948.                     enclose the resulting character in quotes ("").
  949.  
  950.           _________________________________________________________________
  951.           ScreenRestore SUB
  952.  
  953.           Action:
  954.                     Restores an area of the screen previously saved by the 
  955.                     ScreenSave SUB.
  956.  
  957.           Example Syntax:
  958.                     ScreenRestore left%, right%, top%, bottom%, scrnNum%
  959.  
  960.                     left%     Left column of the area to be restored.
  961.  
  962.                     right%    Right column of the area to be restored.
  963.  
  964.                     top%      Top row of the area to be restored.
  965.  
  966.                     bottom%   Bottom row of the area to be restored.
  967.  
  968.                     scrnNum%  An integer number between 1 and 10 which is 
  969.                               unique to each area saved at one time. This 
  970.                               number must be the same used to save the 
  971.                               screen. (See the ScreenSave SUB description).
  972.  
  973.                                                                          Page 13
  974.  
  975.  
  976.  
  977.  
  978.           Remarks:
  979.                     Up to 10 areas of the screen can be stored in memory at 
  980.                     one time or as much as memory will allow. A full screen 
  981.                     takes about 4000 bytes of memory. The ScreenSave and 
  982.                     ScreenRestore SUB's use an assembly language routine to 
  983.                     do their work which makes the save and restore 
  984.                     extremely fast.
  985.  
  986.  
  987.           _________________________________________________________________
  988.           ScreenSave SUB
  989.  
  990.           Action:
  991.                     Saves an area of the screen in memory.
  992.  
  993.  
  994.           Example Syntax:
  995.                     ScreenSave left%, right%, top%, bottom%, scrnNum%
  996.  
  997.                     left%     Left column of the area to be saved.
  998.  
  999.                     right%    Right column of the area to be saved.
  1000.  
  1001.                     top%      Top row of the area to be saved.
  1002.  
  1003.                     bottom%   Bottom row of the area to be saved.
  1004.  
  1005.                     scrnNum%  An integer number between 1 and 10 used to 
  1006.                               identify the area of the screen saved. This 
  1007.                               number must be unique to each area of screen 
  1008.                               saved at one time.
  1009.  
  1010.           Remarks:
  1011.                     Use the ScreenRestore SUB to restore the area of screen 
  1012.                     saved. Make sure to use the same number to restore the 
  1013.                     screen as was used to save it. The ScreenSave and 
  1014.                     ScreenRestore SUB's us an assembly language routine to 
  1015.                     do their work making them extremely fast.
  1016.  
  1017.           _________________________________________________________________
  1018.           ScrollArea SUB
  1019.  
  1020.           Action:
  1021.                     Scrolls an area of the screen up or down a given number 
  1022.                     of columns leaving the remaining area of the screen in 
  1023.                     tact.
  1024.  
  1025.           Example Syntax:
  1026.                                                                          Page 14
  1027.  
  1028.  
  1029.  
  1030.  
  1031.                     ScrollArea left%, right%, top%, bottom%, lines%, 
  1032.                     newColorBG%
  1033.  
  1034.                     left%     Left column of the scroll area.
  1035.  
  1036.                     right%    Right column of the scroll area.
  1037.  
  1038.                     top%      Top row of the scroll area.
  1039.  
  1040.                     bottom%   Bottom row of the scroll area.
  1041.  
  1042.                     lines%    The number of columns to scroll up or down. 
  1043.                               Use a positive number to scroll the area up 
  1044.                               and a negative number to scroll the area 
  1045.                               down.
  1046.  
  1047.                     newColorBG%    The background color of the new area. 
  1048.                                    (See the Remarks below).
  1049.  
  1050.           Remarks:
  1051.                     When the screen is scrolled blank lines newly created 
  1052.                     are given the background color attribute of the 
  1053.                     newColorBG% variable.
  1054.  
  1055.           _________________________________________________________________
  1056.           ShiftStateNow FUNCTION
  1057.  
  1058.           Action:
  1059.                     Returns the state of the given extended key at the time 
  1060.                     of the call.
  1061.  
  1062.           Example Syntax:
  1063.                     variable% = ShiftStateNow(extKey%)
  1064.  
  1065.                     variable% Any variable of type integer. A value is 
  1066.                               passed back in the following form:
  1067.  
  1068.  
  1069.                     Value     Action
  1070.                     _______________________________________________________
  1071.                     0         The key polled is inactive (not pressed      
  1072.                               or not on).
  1073.  
  1074.                     -1        The key polled is active (pressed or on).
  1075.  
  1076.                     extKey%   An integer number between 0 and 7 which 
  1077.                               defines the extended key to be polled. Use 
  1078.                               the following values:
  1079.                                                                          Page 15
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.                     Value     Action
  1086.                     _______________________________________________________
  1087.                      0        Right Shift key.
  1088.  
  1089.                      1        Left Shift key.
  1090.  
  1091.                      2        Ctrl key.
  1092.  
  1093.                      3        Alt key.
  1094.  
  1095.                      4        Scroll Lock key.
  1096.  
  1097.                      5        Num Lock key.
  1098.  
  1099.                      6        Caps Lock key.
  1100.  
  1101.                      7        Insert key.
  1102.  
  1103.           Remarks:
  1104.                     Use the ShiftStateNow FUNCTION in a loop to continually 
  1105.                     check for the state of a certain key. This FUNCTION is 
  1106.                     used by the MENU1.LIB to poll for the Alt key which 
  1107.                     activates the pull down menu title bar.
  1108.  
  1109.  
  1110.           _________________________________________________________________
  1111.           WindowPut SUB
  1112.  
  1113.           Action:
  1114.                     Puts a window on the screen at a given location.
  1115.  
  1116.           Example Syntax:
  1117.                     WindowPut left%, right%, top%, bottom%, shad%, 
  1118.                     boxType%, FG%, BG%
  1119.  
  1120.                     left%     Left column of the window.
  1121.  
  1122.                     right%    Right column of the window.
  1123.  
  1124.                     top%      Top row of the window.
  1125.  
  1126.                     bottom%   Bottom row of the window.
  1127.  
  1128.                     shad%     An integer number telling the SUB to use a 
  1129.                               shadow for the window or not. 0 = no shadow, 
  1130.                               1 = use a shadow.
  1131.  
  1132.                                                                          Page 16
  1133.  
  1134.  
  1135.  
  1136.  
  1137.                     boxType%  An integer number which determines the type 
  1138.                               of border box the window will have. 0 = no 
  1139.                               box, 1 = a single line box, 2 = a            
  1140.                               double line box, 3 = a solid border box.
  1141.  
  1142.                     FG%       Foreground color for the window (1 to 15).
  1143.  
  1144.                     BG%       Background color for the window (1 to 7).
  1145.  
  1146.           Remarks:
  1147.                     Although the CITOOLS set contains several full featured 
  1148.                     window routines, this SUB was included to allow you 
  1149.                     greater flexability in designing your programs.
  1150.  
  1151.                                                                          Page 17
  1152.  
  1153.  
  1154.  
  1155.  
  1156.           CIMOUSE.LIB
  1157.  
  1158.           The CIMOUSE toolbox contains the mouse routines used by all the 
  1159.           libraries that come with the CODE-IT set except the CITOOLS.LIB 
  1160.           itself. For this reason it must be included with your program if 
  1161.           you plan to use any of the other libraries. The library senses if 
  1162.           the users computer has a mouse driver installed or not. If not 
  1163.           your programs run as usual. The CIMOUSE library works with the 
  1164.           Microsoft(r) Mouse and compatibles. The library is left separate 
  1165.           from the CITOOLS.LIB to allow you to use it with other programs 
  1166.           you might have already developed and give them mouse support. To 
  1167.           use the mouse routines place MouseInit at the beginning of your 
  1168.           program. See MouseInit, page 17,for more details.
  1169.  
  1170.  
  1171.           SUB and FUNCTION Reference
  1172.           _________________________________________________________________
  1173.           MouseDriver SUB
  1174.  
  1175.           This SUB is used by the other SUB's in CIMOUSE.LIB. There is no 
  1176.           reason for you to call this SUB because all the features needed 
  1177.           to call the mouse driver are handled internally for you by the 
  1178.           other procedures.
  1179.  
  1180.           _________________________________________________________________
  1181.           MouseHide SUB
  1182.  
  1183.           Action:
  1184.                     Hides the mouse cursor.
  1185.  
  1186.           Example Syntax:
  1187.                     MouseHide
  1188.  
  1189.           Remarks:
  1190.                     The CIMENUn and CIWINDn toolboxes automaticly handle 
  1191.                     the mouse for you. If you decide to create custom 
  1192.                     windows using CITOOLS.LIB or other procedures which do 
  1193.                     not control the mouse, you will need to hide the mouse 
  1194.                     before printing text or characters to the screen. This 
  1195.                     will keep the mouse cursor  from blocking the character 
  1196.                     attributes your program is attempting to put on the 
  1197.                     screen. 
  1198.  
  1199.           _________________________________________________________________
  1200.           MouseInit SUB
  1201.  
  1202.           Action:
  1203.                     Initializes the mouse driver so the other SUB's can 
  1204.                     access it's functions.
  1205.                                                                          Page 18
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.           Example Syntax:
  1213.                     MouseInit
  1214.  
  1215.  
  1216.           Remarks:
  1217.                     Place the MouseInit call at the beginning of your 
  1218.                     program. Along with initializing the mouse driver the 
  1219.                     MousInit SUB also tests for a mouse driver being 
  1220.                     present on the users system. If there is not a mouse 
  1221.                     present it sets an internal variable switch letting the 
  1222.                     mouse routines exit without trying to call the mouse 
  1223.                     driver. This allows your programs to run on systems 
  1224.                     with or without a mouse using the same code.
  1225.  
  1226.           _________________________________________________________________
  1227.           MouseLimit SUB
  1228.  
  1229.           Action:
  1230.                     Limits the area of the screen that the mouse cursor can 
  1231.                     move in.
  1232.  
  1233.           Example Syntax:
  1234.                     MouseLimit left%, right%, top%, bottom%
  1235.  
  1236.                     left%     The left column of the limit area.
  1237.  
  1238.                     right%    The right column of the limit area.
  1239.  
  1240.                     top%      The top row of the limit area.
  1241.  
  1242.                     bottom%   The bottom row of the limit area.
  1243.  
  1244.           Remarks:
  1245.                     Use the MouseLimit SUB whenever you want to restrict 
  1246.                     the movement of the mouse cursor to a given area such 
  1247.                     as a window or menu. Another use is to place the mouse 
  1248.                     cursor anywhere on the screen. To free the mouse call 
  1249.                     the SUB set to the full screen area.
  1250.  
  1251.           _________________________________________________________________
  1252.           MousePoll SUB
  1253.  
  1254.           Action:
  1255.                     Polls the mouse driver and returns the current row and 
  1256.                     column of the mouse and the states of the mouse 
  1257.                     buttons.
  1258.  
  1259.                                                                          Page 19
  1260.  
  1261.  
  1262.  
  1263.  
  1264.           Example Syntax:
  1265.                     MousePoll mRow%, mCol%, lButton%, rButton%
  1266.  
  1267.                     mRow%     Current row of the mouse cursor.
  1268.  
  1269.                     mCol%     Current column of the mouse cursor.
  1270.  
  1271.                     lButton%  Current state of the left mouse button. 0 = 
  1272.                               not active (not pressed), -1 = active 
  1273.                               (pressed).
  1274.  
  1275.                     rButton%  Current state of the right mouse button. 0 = 
  1276.                               not active (not pressed), -1 = active 
  1277.                               (pressed).
  1278.  
  1279.           Remarks:
  1280.                     Use the MousePoll SUB in a loop to continually poll for 
  1281.                     a mouse event. 
  1282.  
  1283.           _________________________________________________________________
  1284.           MouseShow SUB
  1285.  
  1286.           Action:
  1287.                     Makes the mouse cursor visible.
  1288.  
  1289.           Example Syntax:
  1290.                     MouseShow
  1291.  
  1292.           Remarks:
  1293.                     Use the MouseShow SUB at the beginning of your program 
  1294.                     after you have finished painting opening screens and 
  1295.                     backgrounds. If it is necessary to hide the mouse at 
  1296.                     any time use it to restore the mouse cursor to the 
  1297.                     screen (see MouseHide, page 17).
  1298.                                                                          Page 20
  1299.  
  1300.  
  1301.  
  1302.  
  1303.           CIMENU1.LIB
  1304.  
  1305.           This tool box allows you to build pull down menus into your 
  1306.           program similar to QB or QBX pull down menus. Up to 10 menu 
  1307.           titles can be defined and each title can hold up to 20 pull down 
  1308.           menu choices. The menus need only to be defined once by your 
  1309.           program and from that point on are held in memory. This makes 
  1310.           reusing the menus quick and easy.
  1311.  
  1312.           Limits And Considerations
  1313.  
  1314.                Maximum number of menu titles with sub menus 10
  1315.  
  1316.                Maximum number of menu choices on sub menus  20
  1317.  
  1318.                All arrays passed to any SUB or FUNCTION in the CITOOLS set 
  1319.                use a base of 1. An example would be DIM text$(1 TO n), 
  1320.                where n is either the required boundary limit of the array 
  1321.                or any number which meets your programs needs. The following 
  1322.                is a description of the arrays with required boundaries for 
  1323.                the CIMENU1.LIB tool box. The required DIM is the statement 
  1324.                your program must have to pass the array to the SUB or 
  1325.                FUNCTION.
  1326.  
  1327.                Array          SUB or FUNCTION          Required DIM
  1328.                ____________________________________________________________
  1329.  
  1330.                descript$()    PullDownDescript         (1 TO 20)
  1331.  
  1332.  
  1333.           SUB and FUNCTION Referance
  1334.           _________________________________________________________________
  1335.           PullDownActive SUB
  1336.  
  1337.           Once a menu event takes place (ie: Alt + access key or left mouse 
  1338.           button on row 1) control of the program is passed to this SUB 
  1339.           from the PullDownPoll SUB (see PullDownPoll, page 24). This SUB 
  1340.           is handled internally by the CIMENU1.LIB.
  1341.  
  1342.           _________________________________________________________________
  1343.           PullDownColors SUB
  1344.  
  1345.           Action:
  1346.                     Sets or changes the colors for the pull down menus.
  1347.  
  1348.           Example Syntax:
  1349.                     PullDownColors bordFGClr%, bordBGClr%, textFGClr%, 
  1350.                     textBGClr%,
  1351.                                                                          Page 21
  1352.  
  1353.  
  1354.  
  1355.  
  1356.                     titleFGClr%, titleBGClr%, hiFGClr%, hiBGClr%, 
  1357.                     disableFGClr%, disableHiFGClr%, hihiFGClr%, hiFGClr%
  1358.  
  1359.  
  1360.                     bordFGCLr%     Border foreground color for the menu (1 
  1361.                                    TO 15).
  1362.  
  1363.                     bordBGCLr%     Border background color for the menu (1 
  1364.                                    TO 7).
  1365.  
  1366.                     textFGClr%     Text foreground color for the menu (1 TO 
  1367.                                    15).
  1368.  
  1369.                     textBGClr%     Text background color for the menu (1 TO 
  1370.                                    7).
  1371.  
  1372.                     titleFGClr%    Title foreground color for the menu (1 
  1373.                                    TO 15).
  1374.  
  1375.                     titleBGClr%    Title background color for the menu (1 
  1376.                                    TO 7).
  1377.  
  1378.                     hiFGClr%       Foreground color for the menu highlight 
  1379.                                    bar (1 TO 15).
  1380.  
  1381.                     hiBGClr%       Foreground color for the menu highlight 
  1382.                                    bar (1 TO 7).
  1383.  
  1384.                     disableFGClr%  Foreground color for the disabled menu 
  1385.                                    choice (1 TO 15).
  1386.  
  1387.                     disableHiFGClr%Foreground color for the disabled menu 
  1388.                                    choice when the highlight bar is on it 
  1389.                                    (1 TO 15).
  1390.  
  1391.                     hihiFGCLr%     Foreground color for the menu choice 
  1392.                                    access key when the menu highlight bar 
  1393.                                    is on it (1 TO 15).
  1394.  
  1395.                     hihcarFGclr%   Foreground color for the menu access key 
  1396.                                    (1 TO 15).
  1397.  
  1398.           Remarks:
  1399.                     The menu colors ar passed in the form of integers, 1 to 
  1400.                     15 for foreground colors and 1 to 7 for background 
  1401.                     colors. The background colors for the access keys are 
  1402.                     the same as the text and highlight colors. For a 
  1403.                     description of the disabled menu choice see 
  1404.                     PullDownDefine, page 21.
  1405.  
  1406.           _________________________________________________________________
  1407.           PullDownDefine SUB
  1408.  
  1409.           Action:
  1410.                     Sets the pull down menu titles, choices, access 
  1411.                     characters, and initial states of choices or titles.
  1412.                                                                          Page 22
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.           Example Syntax:
  1419.                     PullDownDefine menu%, item%, state%, choice$, hichar%
  1420.  
  1421.                     menu%     An integer number describing the menu title 
  1422.                               being defined or the number of the menu title 
  1423.                               the choice should be                         
  1424.                               attached to.
  1425.  
  1426.                     item%An integer number defining the item being passed. 
  1427.                          Use the following values:
  1428.  
  1429.                     Value     Action
  1430.                     _______________________________________________________
  1431.                     0         The item being defined is a menu title. 
  1432.                               Titles are the text in the menu bar visible 
  1433.                               across the top of the screen.
  1434.  
  1435.                     1 - 10    The item being passed is a pull down menu 
  1436.                               choice and is to be attached to the menu 
  1437.                               title of this number (left to right on the 
  1438.                               menu title bar).
  1439.  
  1440.                     state%    The initial state of the menu item or title. 
  1441.                               0 = disabled, 1 = active.
  1442.  
  1443.                     choice$   A BASIC string of the menu title or choice to 
  1444.                               be printed on the screen.
  1445.  
  1446.                     hichar%   An integer number of the of the highlighted 
  1447.                               access key character in the choice$ string. 
  1448.                               (ie: 1 to highlight the "F" in "File").
  1449.  
  1450.           Remarks:
  1451.                     For an example of the PullDownDefine SUB see the source 
  1452.                     code examples later in this manual or the DEMMENU1.BAS 
  1453.                     souce code file on your disks.
  1454.  
  1455.           _________________________________________________________________
  1456.           PullDownDescript SUB
  1457.  
  1458.           Action:
  1459.                     Defines the description or help line for the pull down 
  1460.                     menu choices.
  1461.  
  1462.           Example Syntax:
  1463.                     PullDownDescript menu%, descript$()
  1464.  
  1465.                     menu%     An integer number describing the menu title 
  1466.                               to link the descriptions to.
  1467.                                                                          Page 23
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.                     descript$()A text array holding the descriptions for 
  1474.                               the individual menu choices of the pull down 
  1475.                               menu. Make sure the array is dimensioned in 
  1476.                               your program as DIM arrayname$(1 TO 20) where 
  1477.                               arrayname$ is any BASIC variable name of type 
  1478.                               string.
  1479.  
  1480.           Remarks:
  1481.                     The description, sometimes called help line, is a way 
  1482.                     to simplify your menu structure for the end user. It 
  1483.                     allows you to put a long description for each of your 
  1484.                     menu choices. A maximum of 1 line and 80 characters are 
  1485.                     allowed for the description. For information on the 
  1486.                     placement of the description area see 
  1487.                     PullDownDescriptArea, page  23.
  1488.  
  1489.           _________________________________________________________________
  1490.           PullDownDescriptArea SUB
  1491.  
  1492.           Action:
  1493.                     Defines the screen placement of the pull down menu 
  1494.                     title and choice descriptions.
  1495.  
  1496.           Example Syntax:
  1497.                     PullDownDescriptArea row%, col%, areaLength%, FG%, BG%
  1498.  
  1499.                     row%      Screen row of the description area.
  1500.  
  1501.                     col%      Left column of the description area.
  1502.  
  1503.                     areaLength%The length of the description area.
  1504.  
  1505.                     FG%       Foreground color for the description area and 
  1506.                               text.
  1507.  
  1508.                     BG%       Background color for the description area and 
  1509.                               text.
  1510.  
  1511.           Remarks:
  1512.                     The area for the menu descriptions is automaticly saved 
  1513.                     and restored on exit from the pull down menus. This 
  1514.                     allows you to choose if the description area is to be 
  1515.                     on the screen at all times or not. The menu descript 
  1516.                     area can contain 1 line up to 80 characters in length.
  1517.  
  1518.           _________________________________________________________________
  1519.           PullDownInfo FUNCTION
  1520.  
  1521.           Action:
  1522.                     Polls the pull down global variables to determine if a 
  1523.                     menu was chosen and if
  1524.                                                                          Page 24
  1525.  
  1526.  
  1527.  
  1528.  
  1529.                     so a second call can be made to determine which menu or 
  1530.                     item.
  1531.  
  1532.           Example Syntax:
  1533.                     variable% = PullDownInfo(switch%)
  1534.  
  1535.                     variable% Any BASIC variable of type integer.
  1536.  
  1537.                     switch%   An integer number between 0 and 2 with the 
  1538.                               following actions:
  1539.  
  1540.                     Value     Action
  1541.                     _______________________________________________________
  1542.  
  1543.                      0        Returns the value of 0 in variable% if no 
  1544.                               menu has been chosen or -1 if one has.
  1545.  
  1546.                      1        Returns number of the menu chosen.
  1547.  
  1548.                      2        Returns the menu item number chosen.
  1549.  
  1550.           Remarks:
  1551.                     The PullDownInfo FUNCTION is used whenever you want to 
  1552.                     see if a menu has been chosen, which menu, and finally 
  1553.                     to see what menu choice the user has selected. Using 
  1554.                     this format makes it very easy to put this in a LOOP 
  1555.                     followed by a SELECT CASE block to poll for menu events 
  1556.                     while your program is running. See program examples 
  1557.                     later in this manual or the demo source code files 
  1558.                     included with your disks (DEMMENU1.BAS).
  1559.  
  1560.           _________________________________________________________________
  1561.           PullDownPaint SUB
  1562.  
  1563.           This SUB is used internally by the CIMENU1 toolbox to paint and 
  1564.           display the pull down menus. It is not necessary for your 
  1565.           programs to call this SUB directly because it is handled 
  1566.           automaticly for you by the toolbox.
  1567.  
  1568.           _________________________________________________________________
  1569.           PullDownPoll FUNCTION
  1570.  
  1571.           Action:
  1572.                     Processes mouse or keyboard events. If a menu event 
  1573.                     took place, Alt + title access key or a left mouse 
  1574.                     button press while the mouse cursor is on row 1, then 
  1575.                     it passes control of the program to the PullDownActive 
  1576.                     SUB (See PullDownActive, page 20). If a key press took 
  1577.                     place which was not a menu event the character for the 
  1578.                     key press is passed back.
  1579.                                                                          Page 25
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.           Example Syntax:
  1586.                     variable$ = PullDownPoll$
  1587.  
  1588.                     variable$ Any BASIC variable of type string.
  1589.  
  1590.           Remarks:
  1591.                     The PullDownPoll FUNCTION acts like a BASIC INKEY$ 
  1592.                     statement but it also checks for menu events.
  1593.  
  1594.           _________________________________________________________________
  1595.           PullDownSoundSet SUB
  1596.  
  1597.           Action:
  1598.                     Sets the pull down menu sound which alerts the user of 
  1599.                     a wrong key press.
  1600.  
  1601.           Example Syntax:
  1602.                     PullDownSoundSet soundFreq%, soundLength%
  1603.  
  1604.                     soundFreq%     An integer between 1 and 10000 which is 
  1605.                                    the frequency or tone of the sound to 
  1606.                                    make. If 0 is passed then the sound 
  1607.                                    feature is turned off.
  1608.  
  1609.                     soundLength%   The length of the tone, a higher number 
  1610.                                    creates a longer tone.
  1611.  
  1612.           Remarks:
  1613.                     Sound frequency values of 50 or less usually are not 
  1614.                     heard. When determining the sound length make sure you 
  1615.                     allow for slower machines. What may seem to be a short 
  1616.                     tone on your computer may be a long an annoying sound 
  1617.                     on a slower machine.
  1618.  
  1619.           _________________________________________________________________
  1620.           PullDownStateSet SUB
  1621.  
  1622.           Action:
  1623.                     Toggles the state of a menu title or pull down menu 
  1624.                     choice between active and disabled.
  1625.  
  1626.  
  1627.           Example Syntax:
  1628.                     PullDownStateSet menu%, item%, state%
  1629.  
  1630.                     menu%     The number of the menu title to link the 
  1631.                               change to.
  1632.                                                                          Page 26
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.                     item%The number of the menu choice to link the change 
  1639.                          to. If the item is a menu title use 0 for this 
  1640.                          value.
  1641.  
  1642.                     state%    An integer number determining the state of 
  1643.                               the item. 0 = disabled, 1 = active.
  1644.  
  1645.           Remarks:
  1646.                     Use the same values for the menu% and item% variables 
  1647.                     as were originally defined with the PullDownDefine SUB 
  1648.                     (see PullDownDefine, page 21). Disabled titles will not 
  1649.                     display their pull down menu. Disabled items can not be 
  1650.                     selected.
  1651.  
  1652.           _________________________________________________________________
  1653.           PullDownTitleDescript SUB
  1654.  
  1655.           Action:
  1656.                     Sets the description (sometimes called help line) for 
  1657.                     the menu titles when no pull down menus are being 
  1658.                     shown.
  1659.  
  1660.           Example Syntax:
  1661.                     PullDownTitleDescript descript$
  1662.  
  1663.                     descript$ A string holding the descript line to be 
  1664.                               displayed.
  1665.  
  1666.           Remarks:
  1667.                     The description is displayed using the values set with 
  1668.                     the PullDownDescriptArea SUB (see PullDownDescriptArea, 
  1669.                     page 23). Use this option to display key descriptions 
  1670.                     for your menu title bar (ie: ENTER=Menu, ESC=Cancel, 
  1671.                     ect..).
  1672.  
  1673.           _________________________________________________________________
  1674.           PullDownTitleOn SUB
  1675.  
  1676.           Action:
  1677.                     Makes the defined menu title bar visible.
  1678.  
  1679.           Example Syntax:
  1680.                     PullDownTitleOn
  1681.  
  1682.           Remarks:
  1683.                     Use this SUB any time you need to display or re-display 
  1684.                     your menu title bar. The menu bar is always printed in 
  1685.                     row 1 of the screen.
  1686.  
  1687.                                                                          Page 27
  1688.  
  1689.  
  1690.  
  1691.  
  1692.           CIMENU2.LIB
  1693.  
  1694.           This library contains the procedures for using in memory pop up 
  1695.           menus. In memory pop up menus are defined similar to the pull 
  1696.           down menus in CIMENU1.LIB (see page 20). Once defined they stay in
  1697.           memory until your program ends.This allows you to define them 
  1698.           once and then show them on the screen at any time in your program 
  1699.           with very little code. If you want to use pop up menus but don't 
  1700.           want to keep them in memory see CIMENU3.LIB page 35. As with the 
  1701.           rest of the menus in the toolbox full mouse support is built in.
  1702.  
  1703.           Limits and Considerations
  1704.  
  1705.                Maximum number of menus in memory                 20
  1706.  
  1707.                Maximum number of menu choices on each menu       20
  1708.  
  1709.                Maximum number of user defined exit keys per menu  5
  1710.  
  1711.                All arrays passed to any SUB or FUNCTION in the CITOOLS set 
  1712.                use a base of 1. An example would be DIM text$(1 TO n), 
  1713.                where n is either the required boundary limit of the array 
  1714.                or any number which meets your programs needs. The following 
  1715.                is a description of the arrays with required boundaries for 
  1716.                the CIMENU2.LIB tool box. The required DIM is the statement 
  1717.                your program must have to pass the array to the SUB or 
  1718.                FUNCTION.
  1719.  
  1720.                Array          SUB or FUNCTION               Required DIM
  1721.                ____________________________________________________________
  1722.  
  1723.                descript$()    PopUpChoiceDescrpt            (1 TO 20)
  1724.  
  1725.  
  1726.           SUB and FUNCTION Reference
  1727.           _________________________________________________________________
  1728.           PopUpActive FUNCTION
  1729.  
  1730.           Action:
  1731.                     Takes control of the program and processes the menu 
  1732.                     events. When the menu is exited it passes back the menu 
  1733.                     choice selected or the key which caused the ext.
  1734.  
  1735.           Example Syntax:
  1736.                     variable% = PopUpActive(menu%)
  1737.  
  1738.                     variable% Any BASIC variable of type integer.
  1739.                                                                          Page 28
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.                     menu%     An integer number which is the menu to be 
  1746.                               used (defined in PopUpDefine page 28).
  1747.  
  1748.           Remarks:
  1749.                     This is the only call needed to activate the menus once 
  1750.                     they have been defined. For a complete example see the 
  1751.                     source code for DEMOM2.BAS.
  1752.  
  1753.           _________________________________________________________________
  1754.           PopUpChoiceDescript SUB
  1755.  
  1756.           Action:
  1757.                     Sets the pop up menu description or help line text for 
  1758.                     any given menu.
  1759.  
  1760.           Example Syntax:
  1761.                     PopUpChoiceDescript menu%, descript$()
  1762.  
  1763.                     menu%     An integer number of the menu to link the 
  1764.                               descriptions to.
  1765.  
  1766.                     descript$()A string array which should be defined as 
  1767.                               DIM descript$(1 TO 20) in your program which 
  1768.                               holds the descriptions.
  1769.  
  1770.           Remarks:
  1771.                     Note that the array your program is passing to this SUB 
  1772.                     must be defined as (1 TO 20). Each description member 
  1773.                     of the array given should correspond with the menu 
  1774.                     choice. For example the 3rd member of the descript$() 
  1775.                     array will be displayed when the menu highlight is on 
  1776.                     the 3rd menu choice. If descriptions are not needed in 
  1777.                     your program, it is not necessary to use this SUB. For 
  1778.                     information on the placement and colors of the 
  1779.                     description area see PopUpDescriptArea page 30.
  1780.  
  1781.           _________________________________________________________________
  1782.           PopUpColors SUB
  1783.  
  1784.           Action:
  1785.                     Sets the colors for the pop up menus.
  1786.  
  1787.           Example Syntax:
  1788.                     PopUpColors menu%, bordFGClr%, bordBGClr%, textFGClr%, 
  1789.                     textBGClr%, titleFGClr%, titleBGClr%, hiFGClr%, 
  1790.                     hiBGClr%, disableFGClr%, disableHiFGClr%, 
  1791.                     hihiFGClr%,hiCharFGClr%
  1792.  
  1793.                     menu%          The number of the menu to link the color 
  1794.                                    definitions to.
  1795.  
  1796.                                                                          Page 29
  1797.  
  1798.  
  1799.  
  1800.  
  1801.                     bordFGClr%     Foreground color for the menu border (0 
  1802.                                    to 15).
  1803.  
  1804.                     bordBGClr%     Background color for the menu border (0 
  1805.                                    to 7).
  1806.  
  1807.                     textFGClr%     Foreground color for the menu choices (0 
  1808.                                    to 15).
  1809.  
  1810.                     textBGClr%     Background color for the menu choices (0 
  1811.                                    to 7).
  1812.  
  1813.                     titleFGClr%    Foreground color for the menu title (0 
  1814.                                    to 15).
  1815.  
  1816.                     titleBGClr%    Background color for the menu title (0 
  1817.                                    to 7).
  1818.  
  1819.                     hiFGClr%       Foreground color for the scrolling 
  1820.                                    highlight bar (0 to 15).
  1821.  
  1822.                     hiBGClr%       Background color for the scrolling 
  1823.                                    highlight bar (0 to 7).
  1824.  
  1825.                     disableFGClr%  Foreground color for the disabled menu 
  1826.                                    choices (1 to 15).
  1827.  
  1828.                     disableHiFgClr%Foreground color for the disabled menu 
  1829.                                    choice when the scrolling highlight bar 
  1830.                                    is on it (1 to 15).
  1831.  
  1832.                     hihiFGClr%     Foreground color for the menu choice 
  1833.                                    quick access character when the 
  1834.                                    highlight bar is on it (1 to 15).
  1835.  
  1836.                     hiCHarFGClr%   Foreground color for the menu choice 
  1837.                                    quick access character (1 to 15).
  1838.  
  1839.           Remarks:
  1840.                     Each individual pop up menu defined with the 
  1841.                     PopUpDefine (see page 29) can have its own color 
  1842.                     values. These colors stay in effect until you change 
  1843.                     them or your program ends.
  1844.  
  1845.           _________________________________________________________________
  1846.           PopUpDefine SUB
  1847.  
  1848.           Action:
  1849.                     Defines the menu titles and choices for your pop up 
  1850.                     menus.
  1851.  
  1852.           Example Syntax:
  1853.                     PopUpDefine menu%, item%, state%, choice$, hiChar%
  1854.  
  1855.                                                                          Page 30
  1856.  
  1857.  
  1858.  
  1859.  
  1860.                     menu%     The number of the menu being defined (1 to 
  1861.                               20).
  1862.  
  1863.                     item%     The number of the menu item being defined. 0 
  1864.                               = menu title, 1 to 20 = menu choices.
  1865.  
  1866.                     state%    The initial state of the menu choice being 
  1867.                               defined. 0 = disabled, 1 = active.
  1868.  
  1869.                     choice$   The text for the menu title or choice.
  1870.  
  1871.                     hiCHar%   The number of the character in the choice$ 
  1872.                               string to use as the quick access character. 
  1873.                               This character is also highlighted (see 
  1874.                               PopUpColors page 28).
  1875.  
  1876.           Remarks:
  1877.                     Use one call for each menu title or choice being 
  1878.                     defined. To reset the menu choice state after the menu 
  1879.                     has been defined use the PopUpStateSet SUB (see page 
  1880.                     33). Pass a dash ("-") for the menu choice to print a 
  1881.                     line across the menu.
  1882.  
  1883.           _________________________________________________________________
  1884.           PopUpDescriptArea SUB
  1885.  
  1886.           Action:
  1887.                     Sets the location on the screen that the descriptions 
  1888.                     for the pop up menu choices will print.
  1889.  
  1890.           Example Syntax:
  1891.                     PopUpDescriptArea row%, col%, areaLength%, hlpFG%, 
  1892.                     hlpBG%
  1893.  
  1894.                     row%      The row to print the menu choice descriptions 
  1895.                               in.
  1896.  
  1897.                     col%      The left column to print the menu choice 
  1898.                               descriptions in.
  1899.  
  1900.                     areaLength%The length of the description area.
  1901.  
  1902.                     hlpFG%    Foreground color of the description area.
  1903.  
  1904.                     hlpBG%    Background color of the description area.
  1905.  
  1906.           Remarks:
  1907.                     The description area is only visible if the menu is. 
  1908.                     The background is restored after the menu is taken off 
  1909.                     the screen. For information on how to set the menu
  1910.                                                                          Page 31
  1911.  
  1912.  
  1913.  
  1914.  
  1915.                     choice descriptions see PopUpChoiceDescript page 27.
  1916.  
  1917.           _________________________________________________________________
  1918.           PopUpExitKeySet SUB
  1919.  
  1920.           Action:
  1921.                     Defines special keys which cause an exit from the menu 
  1922.                     while it's visible.
  1923.  
  1924.  
  1925.  
  1926.           Example Syntax:
  1927.                     PopUpExitKeySet menu%, keyHandle%, exitKey$, 
  1928.                     returnedKey%
  1929.  
  1930.                     menu%          The number of the menu to link the exit 
  1931.                                    key to. Use the menu number defined in 
  1932.                                    PopUpDefine (see page 29). 
  1933.  
  1934.                     keyHandle%     A number between 1 and 5 unique to each 
  1935.                                    exit key being defined.
  1936.  
  1937.                     exitKey$       An ascii string of the key to exit on. 
  1938.                                    See the remarks below for more 
  1939.                                    information.
  1940.  
  1941.                     returnedKey%   Any integer number you would like the 
  1942.                                    PopUpActive FUNCTION to return when the 
  1943.                                    exit key is pressed.
  1944.  
  1945.           Remarks:
  1946.                     The keyString$ can be any ascii string such as CHR$(27) 
  1947.                     for the ESCAPE key, or CHR$(0) + CHR$(59) for the F1 
  1948.                     key. See your BASIC reference manual for more details. 
  1949.                     The return key can be positive or negative (such as -1 
  1950.                     for the F1 key), it makes no difference. It is only a 
  1951.                     value to let your calling program know that the key was 
  1952.                     pressed. Up to 5 exit keys can be set for each menu.
  1953.  
  1954.           _________________________________________________________________
  1955.           PopUpGetItem FUNCTION
  1956.  
  1957.           Action:
  1958.                     Returns the number of the menu choice that the 
  1959.                     scrolling highlight bar was on when the exit from the 
  1960.                     menu occurred.
  1961.  
  1962.           Example Syntax:
  1963.                     variable% = PopUpGetItem
  1964.  
  1965.                                                                          Page 32
  1966.  
  1967.  
  1968.  
  1969.  
  1970.                     variable% Any BASIC integer variable.
  1971.  
  1972.           Remarks:
  1973.                     Use this FUNCTION when you need to get the menu choice 
  1974.                     that the highlight was on when an exit from the menu 
  1975.                     was caused by anything other then the user choosing a 
  1976.                     menu choice normally (when the user presses an exit key 
  1977.                     you defined with PopUpExitKeySet page 31).
  1978.  
  1979.  
  1980.  
  1981.           _________________________________________________________________
  1982.           PopUpPaint SUB
  1983.  
  1984.           This SUB is used internally by the CIMENU2.LIB procedures. There 
  1985.           is no reason for your programs to call it directly.
  1986.  
  1987.           _________________________________________________________________
  1988.           PopUpPlace SUB
  1989.  
  1990.           Action:
  1991.                     Defines the screen location for your pop up menus.
  1992.  
  1993.           Example Syntax:
  1994.                     PopUpPlace menu%, top%, left%
  1995.  
  1996.                     menu%     The number of the menu to link the screen 
  1997.                               location to.
  1998.  
  1999.                     top%      The top row of the menu location.
  2000.  
  2001.                     left%     The left column of the menu location.
  2002.  
  2003.           Remarks:
  2004.                     Each menu can be set at any location on the screen. 
  2005.                     Make sure you allow enough room for your menu to be 
  2006.                     placed on the screen. The menus are automaticly sized 
  2007.                     using the length of your titles and choices set in the 
  2008.                     PopUpDefine SUB (see page 29). You must use one call to 
  2009.                     this SUB for each menu you define. You can then make as 
  2010.                     many calls to it as you need if you want to place the 
  2011.                     menu at different locations on the screen at different 
  2012.                     times in your program.
  2013.  
  2014.           _________________________________________________________________
  2015.           PopUpReset SUB
  2016.  
  2017.                                                                          Page 33
  2018.  
  2019.  
  2020.  
  2021.  
  2022.           Action:
  2023.                     Resets the variables defining a menu and erases it from 
  2024.                     the menu set defined.
  2025.  
  2026.           Example Syntax:
  2027.                     PopUpReset menu%
  2028.  
  2029.                     menu%     The number of the menu you want to erase.
  2030.  
  2031.           Remarks:
  2032.                     Use this SUB if you want to redefine any of the menus 
  2033.                     at some time during your program execution. This cleans 
  2034.                     up the variables so there is no extra text showing up 
  2035.                     on your menus that you don't want.
  2036.  
  2037.           _________________________________________________________________
  2038.           PopUpSoundSet SUB
  2039.  
  2040.           Action:
  2041.                     Sets the sound that notifies the user if they press a 
  2042.                     wrong key or select a disabled menu choice.
  2043.  
  2044.           Example Syntax:
  2045.                     PopUpSoundSet soundFreq%, soundLength%
  2046.  
  2047.                     soundFreq%The tone of the sound to create (50 to 
  2048.                               10000).
  2049.  
  2050.                     soundength%The length that the sound will be played.
  2051.  
  2052.           Remarks:
  2053.                     If your using an AT computer make sure you test the 
  2054.                     sound length on slower computers as well. A sound 
  2055.                     length that works well on your computer might be a long 
  2056.                     drawn out sound on a user of an XT. 
  2057.  
  2058.           _________________________________________________________________
  2059.           PopUpStateSet SUB
  2060.  
  2061.           Action:
  2062.                     Resets the state of a menu choice in any given pop up 
  2063.                     menu in CIMENU2.LIB.
  2064.  
  2065.           Example Syntax:
  2066.                     PopUpStateSet menu%, item%, state%
  2067.  
  2068.                     menu%     The number of the menu that the item is on.
  2069.                                                                          Page 34
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.                     item%     The number of the choice of which the state 
  2076.                               is being reset.
  2077.  
  2078.                     state%    What state to set the item to. 0 = disabled, 
  2079.                               1 = active.
  2080.  
  2081.           Remarks:
  2082.                     You can reset the state of the menu choices as many 
  2083.                     times as you wish. See PopUpDefine, page 29, to 
  2084.                     initially set the state of the menu choices.
  2085.  
  2086.                                                                          Page 35
  2087.  
  2088.  
  2089.  
  2090.  
  2091.           CIMENU3.LIB
  2092.  
  2093.           This library contains procedures for pop up menus. Unlike the 
  2094.           CIMENU2.LIB pop up menus each of these menus are defined at the 
  2095.           time of the call and therefore most of the menu variable 
  2096.           definitions are not stored in memory. The exception to this is 
  2097.           the colors for the menus, they only have to be set once if your 
  2098.           using the same colors for all your menus. If your program 
  2099.           requires a lot of data variable space these routines allow you a 
  2100.           menu with full mouse support and low overhead.
  2101.  
  2102.           Limits and Considerations
  2103.  
  2104.                Maximum number of menus            Unlimited - Not held in 
  2105.                                                   memory.
  2106.  
  2107.                Maximum number of menu choices on each menu       20
  2108.  
  2109.                All arrays passed to any SUB or FUNCTION in the CITOOLS set 
  2110.                use a base of 1. An example would be DIM text$(1 TO n), 
  2111.                where n is either the required boundary limit of the array 
  2112.                or any number which meets your programs needs. The following 
  2113.                is a description of the arrays with required boundaries for 
  2114.                the CIMENU3.LIB tool box. The required DIM is the statement 
  2115.                your program must have to pass the array to the SUB or 
  2116.                FUNCTION.
  2117.  
  2118.                Array          SUB or FUNCTION               Required DIM
  2119.                ____________________________________________________________
  2120.  
  2121.                choice$()           PopMenu                  (1 TO 20)
  2122.  
  2123.                descript%()         PopDescript              (1 TO 20)
  2124.  
  2125.                hiPos%()            PopMenu                  (1 TO 20)
  2126.  
  2127.  
  2128.           SUB and FUNCTION Reference
  2129.           _________________________________________________________________
  2130.           PopColors SUB
  2131.  
  2132.           Action:
  2133.                     Sets the colors for the pop up menus.
  2134.  
  2135.           Example Syntax:
  2136.                     PopColors bordFGClr%, bordBGClr%, textFGClr%, 
  2137.                     textBGClr%, titleFGClr%, titleBGClr%, hiFGClr%, 
  2138.                     hiBGClr%, disableFGCLr%, disableHiFGClr%, hihiFGClr%, 
  2139.                     hiCharFGClr%
  2140.                                                                          Page 36
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.                     bordFGClr%     Foreground color for the menu border (0 
  2147.                                    to 15).
  2148.                     
  2149.                     bordBGClr%     Background color for the menu border (0 
  2150.                                    to 7).
  2151.  
  2152.                     textFGClr%     Foreground color for the menu text (0 to 
  2153.                                    15).
  2154.  
  2155.                     textBGClr%     Background color for the menu text (0 to 
  2156.                                    7).
  2157.  
  2158.                     titleFGClr%    Foreground color for the menu title (0 
  2159.                                    to 15).
  2160.  
  2161.                     titleBGClr%    Background color for the menu title (0 
  2162.                                    to 7).
  2163.  
  2164.                     hiFGClr%       Foreground color for the scrolling 
  2165.                                    highlight bar (0 to 15).
  2166.  
  2167.                     hiBGClr%       Background color for the scrolling 
  2168.                                    highlight bar (0 to 7).
  2169.  
  2170.                     disableFGClr%  Foreground color for the disabled menu 
  2171.                                    choices (1 to 15).
  2172.  
  2173.                     disableHiFGClr%Foreground color for the disabled menu 
  2174.                                    choices when the highlight bar is on 
  2175.                                    them (1 to 15).
  2176.  
  2177.                     hihiFGClr%     Foreground color for the menu choice 
  2178.                                    quick access character when the 
  2179.                                    highlight bar is on it.
  2180.  
  2181.                     hiCHarFGClr%   Foreground color for the menu choice 
  2182.                                    quick access character (1 to 15).
  2183.  
  2184.           Remarks:
  2185.                     Once defined the colors for the pop up menus stay in 
  2186.                     effect until you change them with another call to 
  2187.                     PopColors or the your program ends.
  2188.  
  2189.           _________________________________________________________________
  2190.           PopDescript SUB
  2191.  
  2192.           Action:
  2193.                     Sets the pop up menu descriptions or help lines for the 
  2194.                     pop up menus in CIMENU3.LIB.
  2195.  
  2196.           Example Syntax:
  2197.                     PopDescript row%, col%, descript$(), areaLength%, 
  2198.                     hlpFG%, hlpBG%
  2199.                                                                          Page 37
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.                     row%      The screen row to place the description line.
  2206.  
  2207.                     col%      The screen column to place the description 
  2208.                               line.
  2209.  
  2210.                     descript$()A string array of the menu descriptions.
  2211.  
  2212.                     areaLength%The length of the area to print the menu 
  2213.                               descriptions.
  2214.  
  2215.                     hlpFG%    Foreground color of the description area.
  2216.  
  2217.                     hlpBG%    Background color of the description area.
  2218.  
  2219.           Remarks:
  2220.                     Define the menu descriptions before calling your menu 
  2221.                     to the screen. It's not necessary to have menu 
  2222.                     descriptions if you don't want them. The program senses 
  2223.                     if there are none defined. If you have already used 
  2224.                     them and define another menu which you dong want menu 
  2225.                     descriptions, use the PopReset SUB (see page 39) before 
  2226.                     defining your new menu.
  2227.  
  2228.           _________________________________________________________________
  2229.           PopExitKeySet SUB
  2230.  
  2231.           Action:
  2232.                     Creates user defined exit keys for the pop up menus.
  2233.  
  2234.           Example Syntax:
  2235.                     PopExitKeySet keyHandle%, exitKey$
  2236.  
  2237.                     keyHandle%A number between 1 and 5 which is the handle 
  2238.                               for the exit key being defined. If the 
  2239.                               defined exit key is pressed while the menu is 
  2240.                               active the PopMenu FUNCTION (see page 38) 
  2241.                               will return a negative number of this key 
  2242.                               handle.
  2243.  
  2244.                     exitKey$  A CHR$ ascii string defining the key code of 
  2245.                               the exit key. See remarks below for more 
  2246.                               information.
  2247.  
  2248.           Remarks:
  2249.                     Up to 5 different exit keys can be set for each menu. 
  2250.                     An example ascii string would be CHR$(27) for the 
  2251.                     ESCAPE key, or CHR$(0) + CHR$(59) for the F1 key. See 
  2252.                     your BASIC reference manual for more details. The 
  2253.                     return values for the exit keys are returned by the 
  2254.                     PopMenu FUNCTION (see page 38) as a negative value of 
  2255.                     the key number used to define the exit key. Also note 
  2256.                     that the ESCAPE key is allways an exit key while using 
  2257.                     the pop up menus in this
  2258.                                                                          Page 38
  2259.  
  2260.  
  2261.  
  2262.  
  2263.                     library and does not have to be predefined as one.
  2264.  
  2265.  
  2266.  
  2267.           _________________________________________________________________
  2268.           PopMenu FUNCTION
  2269.  
  2270.           Action:
  2271.                     Defines and displays the pop up menu. It then takes 
  2272.                     control of the program polling for key and mouse 
  2273.                     events. Once one takes place it passes back the menu 
  2274.                     choice selected or the value for the exit key hit.
  2275.  
  2276.           Example Syntax:
  2277.                     varable% = PopMenu top%, left%, choice$(), hiPos%(), title$, 
  2278.                     shad%, boxType%
  2279.  
  2280.                     varable%  Any BASIC integer varable.
  2281.  
  2282.                     top%      The top row of the menu screen location.
  2283.  
  2284.                     left%     The left column of the menu screen location.
  2285.  
  2286.                     choice$() A text array holding the menu choices. Pass a 
  2287.                               dash ("-") to print a line across the menu.
  2288.  
  2289.                     hiPos%()  An integer number array holding the character 
  2290.                               positions of the menu choice quick access 
  2291.                               characters in the choice$() text.
  2292.  
  2293.                     title$    The menu title. Pass a null string("") if no 
  2294.                               title is needed.
  2295.  
  2296.                     shad%     A number to tell the SUB to print a drop 
  2297.                               shadow behind the menu or not. 0 = no shadow, 
  2298.                               1 = shadow.
  2299.  
  2300.                     boxType%  An integer number which defines the type of 
  2301.                               border box to use. 0 = no border, 1 = single 
  2302.                               line border. 
  2303.  
  2304.           Remarks:
  2305.                     Make sure you allow enough room on the screen for your 
  2306.                     menu to be printed. The width is automaticly set using 
  2307.                     the title and menu choice text you define. If the 
  2308.                     ESCAPE key is pressed the menu is exited and returs a 
  2309.                     value of -27. If a predefined exit key is pressed a 
  2310.                     negative number of the key handle is passed back (see 
  2311.                     PopExitKeySet, page 37).
  2312.  
  2313.           _________________________________________________________________
  2314.           PopPaint SUB
  2315.  
  2316.                                                                          Page 39
  2317.  
  2318.  
  2319.  
  2320.  
  2321.           This SUB is used internally for you by the procedures. There is 
  2322.           no reason for your programs to call it directly.
  2323.  
  2324.  
  2325.  
  2326.  
  2327.           _________________________________________________________________
  2328.           PopReset SUB
  2329.  
  2330.           Action:
  2331.                     Resets the pop up menu variables.
  2332.  
  2333.           Example Syntax:
  2334.                     PopReset
  2335.  
  2336.           Remarks:
  2337.                     Use the PopReset SUB to clean up the menu variables in 
  2338.                     the CIMENU3.LIB.
  2339.  
  2340.                                                                          Page 40
  2341.  
  2342.  
  2343.  
  2344.  
  2345.           CIMENU4.LIB
  2346.  
  2347.           This library contains the routines for creating ring or vertical 
  2348.           menus. These menus are great for programs which need most of the 
  2349.           screen clear at all times but still require a multi level menu 
  2350.           system which the user will easily learn. The menu choices and 
  2351.           description or help lines can be printed on any screen row which 
  2352.           suits your programs needs. As with the other toolbox modules in 
  2353.           this CODE-IT set there is complete mouse support built in.
  2354.  
  2355.           Limits And Considerations
  2356.  
  2357.                Maximum number of menu choices for each
  2358.                menu level                                        10
  2359.  
  2360.                Maximum number of menu levels                     20
  2361.  
  2362.                All arrays passed to any SUB or FUNCTION in the CITOOLS set 
  2363.                use a base of 1. An example would be DIM text$(1 TO n), 
  2364.                where n is either the required boundary limit of the array 
  2365.                or any number which meets your programs needs. The following 
  2366.                is a description of the arrays with required boundaries for 
  2367.                the CIMENU4.LIB tool box. The required DIM is the statement 
  2368.                your program must have to pass the array to the SUB or 
  2369.                FUNCTION.
  2370.  
  2371.                Array               SUB or FUNCTION                  
  2372.                Required DIM
  2373.                ____________________________________________________________
  2374.  
  2375.                descript$()         RingDescript                  (1 TO 10)
  2376.  
  2377.  
  2378.           SUB and FUNCTION Reference
  2379.           _________________________________________________________________
  2380.           RingActive FUNCTION
  2381.  
  2382.           Action:
  2383.                     Takes control of the program waiting for keyboard and 
  2384.                     mouse events then passes back the menu choice selected.
  2385.  
  2386.           Example Syntax:
  2387.                     variable% = RingActive(menu%, item%)
  2388.  
  2389.                     variable% Any BASIC integer variable.
  2390.  
  2391.                     menu%     The number of the menu to make active.
  2392.  
  2393.                                                                          Page 41
  2394.  
  2395.  
  2396.  
  2397.  
  2398.                     item%     The menu choice to highlight first.
  2399.  
  2400.           Remarks:
  2401.                     Most times you will want to highlight the first menu 
  2402.                     choice when making the menu active but the item% 
  2403.                     parameter allows you to specify any menu choice you 
  2404.                     would like. Up to 10 menu levels can be held in memory 
  2405.                     and ready to use at one time with up to 10 menu choices 
  2406.                     on each menu. To first display the menu use RingOn, 
  2407.                     page 43.
  2408.  
  2409.           _________________________________________________________________
  2410.           RingColors SUB
  2411.  
  2412.           Action:
  2413.                     Sets the colors for the menu choices.
  2414.  
  2415.           Example Syntax:
  2416.                     RingColors choiceFG%, choiceBG%, ringHiFG%, ringHiBG%, 
  2417.                     ringHiCharFG%, ringHiHiCharFG%
  2418.  
  2419.                     choiceFG%      Foreground color for the menu choices (1 
  2420.                                    to 15).
  2421.  
  2422.                     choiceBG%      Background color for the menu choices (1 
  2423.                                    to 7).
  2424.  
  2425.                     ringHIFG%      Foreground color for the highlighted or 
  2426.                                    selected menu choice (1 to 15).
  2427.  
  2428.                     ringHiBG%      Background color for the highlighted or 
  2429.                                    selected menu choice (1 to 7).
  2430.  
  2431.                     ringHiCharFG%  Foreground color for the menu choice 
  2432.                                    quick access character (1 to 15).
  2433.  
  2434.                     ringHiHiCharFG%Foreground color for the menu choice 
  2435.                                    quick access character (1 to 15).
  2436.  
  2437.           Remarks:
  2438.                     Once set, the color values for the ring menus stay in 
  2439.                     effect until you change them or your program ends.
  2440.  
  2441.           _________________________________________________________________
  2442.           RingDefine SUB
  2443.  
  2444.           Action:
  2445.                                                                          Page 42
  2446.  
  2447.  
  2448.  
  2449.  
  2450.                     Defines the menu information for the ring menus.
  2451.  
  2452.           Example Syntax:
  2453.                     RingDefine menu%, item%, row%, choice$, hiChar%
  2454.  
  2455.                     menu%     A number between 1 and 10 which is unique for 
  2456.                               each menu level.
  2457.  
  2458.                     item%     The number of the menu choice being defined 
  2459.                               (1 to 10, left to right on the menu line).
  2460.  
  2461.                     row%      The row to print the menu choices on.
  2462.  
  2463.                     choice$   The menu choice text.
  2464.  
  2465.                     hiChar%   The number of the character inside the menu 
  2466.                               choice text of the quick access character.
  2467.  
  2468.           Remarks:
  2469.                     Use one definition for each menu choice in the menu 
  2470.                     level being defined. Once defined these menus stay in 
  2471.                     memory making it easy to use them at any time during 
  2472.                     your program. The first menu choice begins printing at 
  2473.                     column 3 on the row you specified and each choice is 
  2474.                     spaced 2 columns apart. If your menu choices will not 
  2475.                     fit on one row the list is truncated.
  2476.  
  2477.           _________________________________________________________________
  2478.           RingDescript SUB
  2479.  
  2480.           Action:
  2481.                     Defines the menu choice descriptions or help lines.
  2482.  
  2483.           Example Syntax:
  2484.                     RingDescript menu%, row%, col%, areaLength%, 
  2485.                     descript$(), FG%, BG%
  2486.  
  2487.                     menu%     The menu number to link the descriptions to.
  2488.  
  2489.                     row%      The row to print the descriptions in.
  2490.  
  2491.                     col%      The column to print the descriptions in.
  2492.  
  2493.                     areaLength%The length of the area to print the 
  2494.                               descriptions in.
  2495.  
  2496.                     descript$()A text array containing the descriptions.
  2497.                                                                          Page 43
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.                     FG%       Foreground color for the descript area.
  2504.  
  2505.                     BG%       Background color for the descript area.
  2506.  
  2507.           Remarks:
  2508.                     The menu descriptions display anytime the menu choice 
  2509.                     is highlighted. It is not necessary to use the menu 
  2510.                     descriptions if you don't want to, the menus will 
  2511.                     operate without them.
  2512.  
  2513.           _________________________________________________________________
  2514.           RingOn SUB
  2515.  
  2516.           Action:
  2517.                     Displays the menu predefined choices.
  2518.  
  2519.           Example Syntax:
  2520.                     RingOn menu%
  2521.  
  2522.                     menu%     The number of the menu to display.
  2523.  
  2524.           Remarks:
  2525.                     The RingActive SUB (page 40) automaticly displays the 
  2526.                     menu for you so there is no need for you to use this 
  2527.                     SUB unless you want to display a menu before you plan 
  2528.                     to call the RingActive SUB.
  2529.  
  2530.           _________________________________________________________________
  2531.           RingSound SUB
  2532.  
  2533.           Action:
  2534.                     Sets the sound the user will hear when they press an 
  2535.                     invalid key.
  2536.  
  2537.           Example Syntax:
  2538.                     RingSound soundFreq%, soundLength%
  2539.  
  2540.                     soundFreq%     The tone of the sound to create.
  2541.  
  2542.                     soundLength%   The length to play the tone.
  2543.  
  2544.           Remarks:
  2545.                     As with all the sound routines in the CITOOLS set, be 
  2546.                     aware that the length of tones developed on an AT 
  2547.                     computer can seem a lot longer on an XT or slower 
  2548.                     machine. It's wise to test your programs on a slower 
  2549.                     machine before release.
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.                                                                          Page 44
  2557.  
  2558.  
  2559.  
  2560.  
  2561.           CIWIND1.LIB
  2562.  
  2563.           The CIWIND1 toolbox is a collection of routines to create data 
  2564.           entry (edit field) and button windows. You can combine buttons 
  2565.           and edit fields together on the same window if you like. Data 
  2566.           entry can be restricted to certain keys in the edit fields and a 
  2567.           variety of window buttons are available.
  2568.  
  2569.           Limits and Considerations
  2570.  
  2571.                Maximum number of windows in memory          10
  2572.                NOTE: Only windows are kept in memory,
  2573.                not the window buttons and edit fields.
  2574.                See the SUB and FUNCTION Reference 
  2575.                section for more details.
  2576.  
  2577.                Maximum number of buttons per window         60
  2578.  
  2579.                Maximum number of edit fields per window     40
  2580.  
  2581.  
  2582.           SUB and FUNCTION Reference
  2583.           _________________________________________________________________
  2584.           ButtonDefine SUB
  2585.  
  2586.           Action:
  2587.                     Defines the window button type, actions, and text. It 
  2588.                     then prints the button and it's prompt on the window.
  2589.  
  2590.           Example Syntax:
  2591.                     ButtonDefine wind%, button%, state%, row%, col%, 
  2592.                     prompt$, btnType%
  2593.  
  2594.                     wind%     The number of the window to put the button 
  2595.                               on.
  2596.  
  2597.                     button%   The unique number of the button being 
  2598.                               defined.
  2599.  
  2600.                     state%    The initial state of the button. 0 = off, 1 = 
  2601.                               on.
  2602.  
  2603.                     row%      The row relative to the top row of the window 
  2604.                               that the button will be put at.
  2605.  
  2606.                     col%      The column relative to the left column of the 
  2607.                               window that the button will be put at.
  2608.  
  2609.                                                                          Page 45
  2610.  
  2611.  
  2612.  
  2613.  
  2614.                     prompt$   The text for the button prompt.
  2615.  
  2616.                     btnType%  The type of button to use. Use the following 
  2617.                               values:
  2618.  
  2619.                     Number         Button Type
  2620.                     _______________________________________________________
  2621.                       1            An alert window style toggle button. The 
  2622.                                    buttons are surrounded by braces 
  2623.                                    (example..<OK>) which are highlighted if 
  2624.                                    the button is on. The TAB key toggles 
  2625.                                    between the buttons.
  2626.  
  2627.                       2            A dot marker button with the dot encased 
  2628.                                    in parenthesis (example..(*) Prompt). 
  2629.                                    The space button toggles the button dot 
  2630.                                    on and off.
  2631.  
  2632.                       3, 4, 5      These buttons are identical. They 
  2633.                                    produce a button which appears like a 
  2634.                                    highlighted pop up menu choice which can 
  2635.                                    be used vertical or horizontally. The 
  2636.                                    reason for three sets of the same button 
  2637.                                    is that the length of the highlight. On 
  2638.                                    each set it is calculated by the length 
  2639.                                    of the last prompt passed to the SUB. 
  2640.                                    All button prompts need to be padded 
  2641.                                    with spaces to be the same length 
  2642.                                    (example.."Blue       ", "Bright Blue"). 
  2643.                                    Having different sets allow you to place 
  2644.                                    vertical and horizontal buttons on the 
  2645.                                    same window. See the source code file 
  2646.                                    DEMOW1.BAS included in the CITOOLS disk 
  2647.                                    set.
  2648.  
  2649.                     6              An invisible button which can be used to 
  2650.                                    make any part of the active window a 
  2651.                                    "hot spot". When the left mouse button 
  2652.                                    is clicked and the mouse cursor is on 
  2653.                                    this area the window is exited as if any 
  2654.                                    other button was pressed.
  2655.  
  2656.           Remarks:
  2657.                     The best way to get a feel for using the window buttons 
  2658.                     is to experiment with them yourself and to examine the 
  2659.                     source code file DEMOW1.BAS. To run the demo program 
  2660.                     inside the BASIC environment you'll need to create a 
  2661.                     quick library including the CITOOLS.LIB, CIMOUSE.LIB, 
  2662.                     CIWIND1.LIB and QB.LIB for QuickBASIC or QBX.LIB for 
  2663.                     BASIC 7.x library files.
  2664.  
  2665.           _________________________________________________________________
  2666.           ButtonGet FUNCTION
  2667.  
  2668.           Action:
  2669.                     Returns the state of the button requested.
  2670.                                                                          Page 46
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.           Example Syntax:
  2677.                     variable% = ButtonGet(button%)
  2678.  
  2679.                     variable% Any BASIC integer variable. Will hold a value 
  2680.                               of 0 if the button is off and 1 if the button 
  2681.                               is on.
  2682.  
  2683.                     button%   The number of the button to get the 
  2684.                               information on (originally defined with 
  2685.                               ButtonDefine, see page 44).
  2686.  
  2687.           Remarks:
  2688.                     Use the ButtonGet FUNCTION to get the contents of the 
  2689.                     window buttons when the window os closed or before 
  2690.                     crating a new window.
  2691.  
  2692.           _________________________________________________________________
  2693.           ButtonReset SUB
  2694.  
  2695.           Action:
  2696.                     Resets the button variables in CIWIND1.LIB to 0's or 
  2697.                     null strings.
  2698.  
  2699.           Example Syntax:
  2700.                     ButtonReset
  2701.  
  2702.           Remarks:
  2703.                     Use this SUB to clean up the button variables before 
  2704.                     creating a new window. Make sure to use the ButtonGet 
  2705.                     FUNCTION (see 46) if you need the state of the buttons 
  2706.                     before you reset them.
  2707.  
  2708.           _________________________________________________________________
  2709.           ButtonStateSet SUB
  2710.  
  2711.           This SUB is handled automaticly for you by the other routines in 
  2712.           the CIWIND1.LIB. There is no reason to call it directly.
  2713.  
  2714.           _________________________________________________________________
  2715.           ButtonToggle SUB
  2716.  
  2717.           Action:
  2718.                     Toggles the window buttons between 0 off and 1 on.
  2719.  
  2720.           Example Syntax:
  2721.                     ButtonToggle button%
  2722.  
  2723.                     button%   The number of the button to toggle. Use the 
  2724.                               same number as
  2725.                                                                          Page 47
  2726.  
  2727.  
  2728.  
  2729.  
  2730.                               used to define the button with the 
  2731.                               ButtonDefine SUB (see page 44).
  2732.  
  2733.           Remarks:
  2734.                     Use the ButtonToggle SUB to change the state of the 
  2735.                     buttons on the current window. The type 1, 3 and 4 
  2736.                     buttons are automaticly handled for you in the 
  2737.                     WindowActive SUB (see page 49) so it's not necessary to 
  2738.                     use this SUB for those buttons unless you want to apply 
  2739.                     a special toggle point. For a description of the button 
  2740.                     types see ButtonDefine page 44.
  2741.  
  2742.           _________________________________________________________________
  2743.           EditFieldColors SUB
  2744.  
  2745.           Action:
  2746.                     Defines the colors used for the edit field.
  2747.  
  2748.           Example Syntax:
  2749.                     EditFieldColors fldFGClr%, fldBGClr%
  2750.  
  2751.                     fldFGClr% Foreground color for the edit field (1 to 
  2752.                               15).
  2753.  
  2754.                     fldBGClr% Background color for the edit field (1 to 7).
  2755.  
  2756.  
  2757.           Remarks:
  2758.                     The colors defined with SUB effect the edit field only, 
  2759.                     not the edit field prompt (see EditFieldDefine page 
  2760.                     47).
  2761.  
  2762.           _________________________________________________________________
  2763.           EditFieldDefine SUB
  2764.  
  2765.           Action:
  2766.                     Defines and prints the edit fields and their prompts 
  2767.                     for the active window.
  2768.  
  2769.           Example Syntax:
  2770.                     EditFieldDefine wind%, fld%, text$, row%, col%, 
  2771.                     vischar%, maxchar%, prompt$, format%
  2772.  
  2773.                     wind%     The number of the active window to print the 
  2774.                               edit field on.
  2775.  
  2776.                     fld%      The number of the edit field. Each field 
  2777.                               needs a unique number.
  2778.  
  2779.                     text$     The initial contents for the edit field. 
  2780.                               Needs to be a string. This
  2781.                                                                          Page 48
  2782.  
  2783.  
  2784.  
  2785.  
  2786.                               text will be first printed in the edit field 
  2787.                               area and then can be edited by selecting the 
  2788.                               field.
  2789.  
  2790.                     row%      The row relative to the upper row of the 
  2791.                               window to print the edit field and prompt on.
  2792.  
  2793.                     col%      The column relative to the left column of the 
  2794.                               window to print the edit field and prompt on.
  2795.  
  2796.                     vischar%  The number of visible characters to display 
  2797.                               in the edit field. See the remarks below for 
  2798.                               more information.
  2799.  
  2800.                     maxchar%  The maximum number of characters to allow in 
  2801.                               the edit field. See the remarks below for 
  2802.                               more information.
  2803.  
  2804.                     prompt$   The edit field prompt text.
  2805.  
  2806.                     format%   A number macro which tells the data entry 
  2807.                               restrictions for the edit field. Use the 
  2808.                               following values:
  2809.  
  2810.                     Value          Entries Allowed     
  2811.                     _______________________________________________________
  2812.                        1           All printable characters.
  2813.  
  2814.                        2           Alphabetical characters only.
  2815.  
  2816.                        3           Numerical characters only (positive and 
  2817.                                    negative). The negative sign("-") can be 
  2818.                                    entered anywhere in the string and is 
  2819.                                    automaticly moved to the beginning.
  2820.  
  2821.                        4           Numerical with decimal points (positive 
  2822.                                    and negative). The negative sign("-") 
  2823.                                    can be entered anywhere in the string 
  2824.                                    and is automaticly moved to the 
  2825.                                    beginning.
  2826.  
  2827.                        5           Same as 3 with the "-" character allowed 
  2828.                                    anywhere in the string.
  2829.  
  2830.                        6           Same as 3 with the "/" character allowed
  2831.                                    anywhere in the string.
  2832.  
  2833.                        7           Same as 3 with the "-" and "()" 
  2834.                                    characters allowed anywhere in the 
  2835.                                    string.
  2836.  
  2837.                       10           Same as 1 but outputs in all upper case.
  2838.                                                                          Page 49
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.                       20           Same as 2 but outputs in all upper case.
  2845.  
  2846.                      100           Same as 1 but spaces are not allowed.
  2847.  
  2848.                      110           Same as 10 but spaces are not allowed.
  2849.  
  2850.                      200           Same as 2 but spaces are not allowed.
  2851.  
  2852.                      210           Same as 20 but spaces are not allowed.
  2853.  
  2854.  
  2855.           Remarks:
  2856.                     A maximum of 255 characters can be entered for each 
  2857.                     edit field. If the length of the string defined in 
  2858.                     maxchar% is longer than the length of the vischar% 
  2859.                     variable the edit field will scroll until it reaches 
  2860.                     the value in maxchar%, allowing you to put large 
  2861.                     amounts of data in a small area.
  2862.  
  2863.           _________________________________________________________________
  2864.           EditFieldGet FUNCTION
  2865.  
  2866.           Action:
  2867.                     Returns the contents of the edit field requested.
  2868.  
  2869.           Example Syntax:
  2870.                     variable$ = EditFieldGet(fld%)
  2871.  
  2872.                     variable$ Any BASIC string variable.
  2873.  
  2874.                     fld%      The number of the edit field to get.
  2875.  
  2876.           Remarks:
  2877.                     Use this SUB to get the contents of any edit field on 
  2878.                     the active window.
  2879.  
  2880.           _________________________________________________________________
  2881.           WindowActive SUB
  2882.  
  2883.           Action:
  2884.                     Takes control of the program processing key and mouse 
  2885.                     events on the active window at the button or edit field 
  2886.                     given in the windItem% variable.
  2887.  
  2888.           Example Syntax:
  2889.                     WindowActive windItem%
  2890.  
  2891.                                                                          Page 50
  2892.  
  2893.  
  2894.  
  2895.  
  2896.                     windItem% An integer number of the edit field or button 
  2897.                               to go to and wait for a window event to take 
  2898.                               place.
  2899.  
  2900.           Remarks:
  2901.                     To get the event which caused the exit from the 
  2902.                     WindowActive SUB use WindowEvent (see page 53). The 
  2903.                     source code file DEMOW1.BAS included with the CITOOLS 
  2904.                     set shows a full example of how to use this SUB to 
  2905.                     control your windows.
  2906.  
  2907.  
  2908.           _________________________________________________________________
  2909.           WindowColors SUB
  2910.  
  2911.           Action:
  2912.                     Sets the colors for the windows created using the 
  2913.                     routines in CIWIND1.LIB.
  2914.  
  2915.           Example Syntax:
  2916.                     WindowColors bordFGClr%, bordBGClr%, textFGClr%, 
  2917.                     textBGClr%, titleFGCr%, titleBGClr%, hiFGClr%, hiBGClr%
  2918.  
  2919.                     bordFGClr%Foreground color for the window border (1 to 
  2920.                               15)
  2921.  
  2922.                     bordBGClr%Background color for the window border (1 to 
  2923.                               7).
  2924.  
  2925.                     textFGClr%Foreground color for the window text (1 to 
  2926.                               15).
  2927.  
  2928.                     textBGClr%Background color for the window text (1 to 
  2929.                               7).
  2930.  
  2931.                     titleFGClr%Foreground color for the window title (1 to 
  2932.                               15).
  2933.  
  2934.                     titleBGClr%Background color for the window title (1 to 
  2935.                               7).
  2936.  
  2937.                     hiFGClr%  Foreground color for the window buttons which 
  2938.                               use a highlight (1 to 15).
  2939.  
  2940.                     hiBGClr%  Background color for the window buttons which 
  2941.                               use a highlighted background (1 to 7).
  2942.  
  2943.           Remarks:
  2944.                     The colors set with this SUB only effect the windows 
  2945.                     for the CIWIND1.LIB. To set the colors for the edit 
  2946.                     field data entry areas use the EditFieldColors SUB, 
  2947.                     page 47.
  2948.  
  2949.                                                                          Page 51
  2950.  
  2951.  
  2952.  
  2953.  
  2954.           _________________________________________________________________
  2955.           WindowDefine SUB
  2956.  
  2957.           Action:
  2958.                     Defines the values for a given window to be displayed 
  2959.                     using WindowOn (see page 54).
  2960.  
  2961.           Example Syntax:
  2962.                     WindowDefine wind%, left%, right%, top%, bottom%, 
  2963.                     title$, shad%, borderType%
  2964.  
  2965.                     wind%     A number between 1 and 10 for the window 
  2966.                               being defined.
  2967.  
  2968.                     left%     The left screen column of the window.
  2969.  
  2970.                     right%    The right screen column of the window.
  2971.  
  2972.                     top%      The top screen row of the window.
  2973.  
  2974.                     bottom%   The bottom screen row of the window.
  2975.  
  2976.                     title$    The title text for the window.If none pass a 
  2977.                               null string (""). The title is printed in the 
  2978.                               center of the top row on the window.
  2979.  
  2980.                     shad%     A number telling the SUB to put a drop shadow 
  2981.                               behind the window or not. 0 = no shadow, 1 = 
  2982.                               use a shadow.
  2983.  
  2984.                     borderType%A number telling the SUB the type of border 
  2985.                               to use for the window. Use the following 
  2986.                               values:
  2987.  
  2988.                     Value          Border
  2989.                     _______________________________________________________
  2990.                       0            No border.
  2991.  
  2992.                       1            A single line border.
  2993.  
  2994.                       2            A double line border.
  2995.  
  2996.                       3            A solid border.
  2997.  
  2998.           Remarks:
  2999.                     Using a window number allows you to store a commonly 
  3000.                     sized and/or styled window in memory then pull it up 
  3001.                     for many different uses without having to
  3002.                                                                          Page 52
  3003.  
  3004.  
  3005.  
  3006.  
  3007.                     redefine it. Only the window definitions defined with 
  3008.                     this SUB remain in memory, not the buttons and edit 
  3009.                     fields. Up to 10 window definitions can be held in 
  3010.                     memory at one time.
  3011.  
  3012.           _________________________________________________________________
  3013.           WindowDrawBox SUB
  3014.  
  3015.           Action:
  3016.                     Draws a box anywhere in the active window.
  3017.  
  3018.           Example Syntax:
  3019.                     WindowDrawBox wind%, left%, right%, top%, bottom%, 
  3020.                     boxType%
  3021.  
  3022.                     wind%     The number of the active window to draw the 
  3023.                               box in.
  3024.  
  3025.                     left%     The left column of the box relative to the 
  3026.                               window area not the screen.
  3027.  
  3028.                     right%    The right column of the box relative to the 
  3029.                               window not the screen.
  3030.  
  3031.                     top%      The top row of the box relative to the window 
  3032.                               not the screen.
  3033.  
  3034.                     bottom%   The bottom row of the box relative to the 
  3035.                               window not the screen.
  3036.  
  3037.                     boxType%  The type of box to print. Use the following 
  3038.                               values:
  3039.  
  3040.                     Value          Box Type
  3041.                     _______________________________________________________
  3042.                       1            A single line box.
  3043.  
  3044.                       2            A double line box.
  3045.  
  3046.                       3            A solid border box.
  3047.  
  3048.           Remarks:
  3049.                     All the dimensions of the box are defined relative to 
  3050.                     the window the box is being put on. If you specified 
  3051.                     the top row as 2 the box will begin at the second row 
  3052.                     down from the top of the window not the second row of 
  3053.                     the screen.
  3054.  
  3055.           _________________________________________________________________
  3056.           WindowDrawLine SUB
  3057.                                                                          Page 53
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.           Action:
  3064.                     Draws a line horizontally across the window at the 
  3065.                     given row.
  3066.  
  3067.           Example Syntax:
  3068.                     WindowDrawLine wind%, row%, char$
  3069.  
  3070.                     wind%     The number of the window to print the line 
  3071.                               on.
  3072.  
  3073.                     row%      The row relative to the top row of the window 
  3074.                               to print the line on.
  3075.  
  3076.                     char$     The character to use when drawing the line.
  3077.  
  3078.           Remarks:
  3079.                     The character used to print the line can be any 
  3080.                     printable ascii character including extended 
  3081.                     characters. To make it easier to print single or double 
  3082.                     lines across the window the SUB will also accept two 
  3083.                     macros, "s" for a single line and "d" for a double 
  3084.                     line. The line is printed across the window with the 
  3085.                     correct characters automaticly used for the ends of the 
  3086.                     line to connect it to the already existing border. If 
  3087.                     there is no border then the line prints fully across 
  3088.                     the window.
  3089.  
  3090.           _________________________________________________________________
  3091.           WindowEvent FUNCTION
  3092.  
  3093.           Action:
  3094.                     Returns the event which last occurred on the active 
  3095.                     window.
  3096.  
  3097.           Example Syntax:
  3098.                     variable% = WindowEvent(switch%)
  3099.  
  3100.                     variable% Any BASIC integer variable.
  3101.  
  3102.                     switch%   An integer number which defines the event to 
  3103.                               poll for. Use the following values:
  3104.  
  3105.                     Value          Returns
  3106.                     _______________________________________________________
  3107.                       0            The event which occurred in the window. 
  3108.                                    0 = No event took place
  3109.                                    1 = A mouse event took place.
  3110.                                    2 = A keyboard event took place.
  3111.  
  3112.                       1            The number of the button or edit field 
  3113.                                    that the left mouse
  3114.                                                                          Page 54
  3115.  
  3116.  
  3117.  
  3118.  
  3119.                                    button was clicked on.
  3120.  
  3121.                       2            A macro for the key which was pressed.
  3122.                                    1 = ENTER
  3123.                                    2 = ESCAPE
  3124.                                    3 = TAB
  3125.                                    4 = SHIFT TAB
  3126.                                    5 = UP ARROW
  3127.                                    6 = DOWN ARROW
  3128.                                    7 = SPACE BAR
  3129.                                    8 = LEFT ARROW
  3130.                                    9 = RIGHT ARROW
  3131.                                    11 through 20 = F1 through F10
  3132.                                    21 = HOME
  3133.                                    22 = END
  3134.  
  3135.  
  3136.           Remarks:
  3137.                     It is suggested that you look at the source code for 
  3138.                     DEMOW1.BAS included with the CITOOLS set to get an idea 
  3139.                     of how to use this SUB to poll for window events.
  3140.  
  3141.           _________________________________________________________________
  3142.           WindowOff SUB
  3143.  
  3144.           Action:
  3145.                     Erases the given window from the screen restoring the 
  3146.                     original background.
  3147.  
  3148.           Example Syntax:
  3149.                     WindowOff wind%
  3150.  
  3151.                     wind%     The number of the active window to erase.
  3152.  
  3153.           Remarks:
  3154.                     Use this SUB whenever you want to close the current 
  3155.                     window displayed with the WindowOn SUB (see page 54).
  3156.  
  3157.           _________________________________________________________________
  3158.           WindowOn SUB
  3159.  
  3160.           Action:
  3161.                     Displays the defined window on the screen.
  3162.  
  3163.                                                                          Page 55
  3164.  
  3165.  
  3166.  
  3167.  
  3168.           Example Syntax:
  3169.                     WindowOn wind%
  3170.  
  3171.                     wind%     The number of the defined window to display.
  3172.  
  3173.           Remarks:
  3174.                     Use the WindowOn SUB to display the window before 
  3175.                     placing buttons, edit fields, text, ect., on it. To 
  3176.                     erase the window use the WindowOff SUB (see page 54).
  3177.  
  3178.           _________________________________________________________________
  3179.           WindowPaint SUB
  3180.  
  3181.           This SUB is used internally for you by the other routines in the 
  3182.           CIWIND1.LIB. There is no reason for you to call it directly.
  3183.  
  3184.  
  3185.  
  3186.  
  3187.           _________________________________________________________________
  3188.           WindowPrint SUB
  3189.  
  3190.           Action:
  3191.                     Prints text at any given place in the active window.
  3192.  
  3193.           Example Syntax:
  3194.                     WindowPrint wind%, row%, col%, text$, style%
  3195.  
  3196.                     wind%     The number of the active window to print the 
  3197.                               text on.
  3198.  
  3199.                     row%      The row relative to the top row of the window 
  3200.                               to print the text at.
  3201.  
  3202.                     col%      The column relative to the left column of the 
  3203.                               window to print the text at.
  3204.  
  3205.                     text$     The text to print.
  3206.  
  3207.                     style%    The style format to use to print the text. 
  3208.                               Use the following values:
  3209.  
  3210.                                                                          Page 56
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.                     Value          Style
  3217.                     _______________________________________________________
  3218.                       1            Prints the text at the given row and 
  3219.                                    column. Text is truncated if it's longer 
  3220.                                    than the window.
  3221.  
  3222.                       2            Centers the text left to right in the 
  3223.                                    window.
  3224.  
  3225.           Remarks:
  3226.                     Use the WindowPrint SUB to print any text in the active 
  3227.                     window other than buttons or edit fields.
  3228.  
  3229.           _________________________________________________________________
  3230.           WindowSoundSet SUB
  3231.  
  3232.           Action:
  3233.                     Defines the sound made when the user presses an invalid 
  3234.                     key.
  3235.  
  3236.           Example Syntax:
  3237.                     WindowSoundSet soundFreq%, soundLength%
  3238.  
  3239.                     soundFreq%     An integer number between 50 and 10,000 
  3240.                                    which defines the tone to sound.
  3241.  
  3242.                     soundLength%   The length to play the tone.
  3243.  
  3244.  
  3245.           Remarks:
  3246.                     As with all the sound routines included with the 
  3247.                     CITOOLS set make sure to check the sound length on 
  3248.                     slower computers if your developing on an AT. Sometimes 
  3249.                     a sound which works well on an AT will be very long and 
  3250.                     annoying on an XT.
  3251.  
  3252.                                                                          Page 57
  3253.  
  3254.  
  3255.  
  3256.  
  3257.           CIWIND2.LIB
  3258.  
  3259.           This is really a specialty window toolbox. The windows in this 
  3260.           set allow a great user interface for getting information from the 
  3261.           user at very minimal code. They include alert windows, scrolling 
  3262.           list windows, scrolling tag windows, and text windows.
  3263.  
  3264.           Limits and Considerations
  3265.  
  3266.                All arrays passed to any SUB or FUNCTION in the CITOOLS set 
  3267.                use a base of 1. An example would be DIM text$(1 TO n), 
  3268.                where n is either the required boundary limit of the array 
  3269.                or any number which meets your programs needs. The following 
  3270.                is a description of the arrays with required boundaries for 
  3271.                the CIMENU2.LIB tool box. The required DIM is the statement 
  3272.                your program must have to pass the array to the SUB or 
  3273.                FUNCTION.
  3274.  
  3275.                Array               SUB or FUNCTION          Required DIM
  3276.                ____________________________________________________________
  3277.  
  3278.                The arrays in the CIWIND2.LIB take on the same upper 
  3279.                dimensions as the arrays you pass to them. The only 
  3280.                requirement is that they have a base of 1. See above 
  3281.                paragraph for details.
  3282.  
  3283.  
  3284.           SUB and FUNCTION Reference
  3285.           _________________________________________________________________
  3286.           AlertWindow FUNCTION
  3287.  
  3288.           Action:
  3289.                     Puts an alert window on the screen and waits for the 
  3290.                     user to select a button. It then erases the window and 
  3291.                     passes back the number of the button that was pressed.
  3292.  
  3293.           Example Syntax:
  3294.                     variable% = AlertWindow(top%, left%, text$(), title$, 
  3295.                     shad%, boxType%, btn1$, btn2$, btn3$, FG%, BG%, HiFG%)
  3296.  
  3297.                     variable% Any BASIC integer variable name.
  3298.  
  3299.                     top%      The top screen row to print the window at.
  3300.  
  3301.                     left%     The left screen column to print the window 
  3302.                               at.
  3303.  
  3304.                     text$()   An array of the text to display in the 
  3305.                               window. Text is left
  3306.                                                                          Page 58
  3307.  
  3308.  
  3309.  
  3310.  
  3311.                               justified in the window. To center the text 
  3312.                               in the window place a "|" character at the 
  3313.                               end of the text string in the array.
  3314.  
  3315.                     title$    The title string to print on the window. Use 
  3316.                               a null string ("") if you don't want a title.
  3317.  
  3318.                     shad%     A number telling if a drop shadow is to be 
  3319.                               printed behind the window. 0 = no shadow, 1 = 
  3320.                               use a shadow.
  3321.  
  3322.                     boxType%  A number which defines the type of border box 
  3323.                               to put on the window. 0 = no border box, 1 = 
  3324.                               a single line box, 2 = a double line box.
  3325.  
  3326.                     btn1$, btn2$, btn3$Text for the buttons.
  3327.  
  3328.                     FG%       Foreground color for the window.
  3329.  
  3330.                     BG%       Background color for the window.
  3331.  
  3332.                     HiFG%     Foreground color for the button    
  3333.                               highlights.
  3334.  
  3335.  
  3336.           Remarks:
  3337.                     The alert window is automaticly sized for you using the 
  3338.                     length of the longest member in the text$() array. Up 
  3339.                     to three buttons can be defined. The buttons are toggle 
  3340.                     buttons printed at the bottom of the window and the 
  3341.                     chosen button is indicated by it's braces ("< OK >") 
  3342.                     being highlighted. The TAB key toggles the buttons and 
  3343.                     the ENTER key accepts the currently highlighted button. 
  3344.                     If the user has a mouse they can also select any of the 
  3345.                     buttons by clicking the left button while the mouse 
  3346.                     cursor is on it.
  3347.  
  3348.           _________________________________________________________________
  3349.           ScrollWindow FUNCTION
  3350.  
  3351.           Action:
  3352.                     Places a scrolling list window on the screen. By using 
  3353.                     the arrows the user can scroll through the text in the 
  3354.                     window and select a choice. The number of the selected 
  3355.                     array member is passed back.
  3356.  
  3357.           Example Syntax:
  3358.                     variable% = ScrollWindow(left%, right%, top%, bottom%, 
  3359.                     list$(), title$, shad%, boxType%, FG%, BG%, HiFG%, 
  3360.                     HiBG%)
  3361.  
  3362.                                                                          Page 59
  3363.  
  3364.  
  3365.  
  3366.  
  3367.                     variable% Any BASIC integer variable.
  3368.  
  3369.                     left%     The left screen column of the list window.
  3370.  
  3371.                     right%    The right screen column of the list window.
  3372.  
  3373.                     top%      The top screen row of the list window.
  3374.  
  3375.                     bottom%   The bottom screen row of the list window.
  3376.  
  3377.                     list$()   A text array with the strings to display in 
  3378.                               the list window. Each member is printed on a 
  3379.                               separate line.
  3380.  
  3381.                     title$    The title string for the window. It will 
  3382.                               print in the center of the top row.
  3383.  
  3384.                     shad%     A number telling the FUNCTION to print a drop 
  3385.                               shadow behind the window or not. 0 = no 
  3386.                               shadow, 1 = use a shadow.
  3387.  
  3388.                     boxType%  A number describing the type of border box to 
  3389.                               use. 0 = none, 1 = a single line border box, 
  3390.                               2 = a double line border box.
  3391.  
  3392.                     FG%       Foreground color of the list window.
  3393.  
  3394.                     BG%       Background color of the list window.
  3395.  
  3396.                     HiFG%     Foreground color for the scrolling highlight 
  3397.                               bar.
  3398.  
  3399.                     HiBG%     Background color for the scrolling highlight 
  3400.                               bar.
  3401.  
  3402.           Remarks:
  3403.                     The scrolling list window acts similar to a pop up menu 
  3404.                     in that you use the arrow keys to scroll through the 
  3405.                     choices of text lines. Unlike pop up menus though you 
  3406.                     can use choice or text lists longer than will fit in 
  3407.                     the window and scroll the list down or up in the window 
  3408.                     accordingly. When ENTER is pressed the number of the 
  3409.                     highlighted array member (from the list$() array) os 
  3410.                     passed back to the program. If ESCAPE is pressed a 
  3411.                     value of 0 is passed back.
  3412.  
  3413.           _________________________________________________________________
  3414.           TagWindow FUNCTION
  3415.  
  3416.           Action:
  3417.                     Places a scrolling list window on the screen. The user 
  3418.                     scrolls through the list
  3419.                                                                          Page 60
  3420.  
  3421.  
  3422.  
  3423.  
  3424.                     using the arrow keys and can tag the items in the 
  3425.                     window using the space bar. It returns the key which 
  3426.                     was pressed to exit from the tag window (1 = ENTER, 2 = 
  3427.                     ESCAPE).
  3428.  
  3429.  
  3430.  
  3431.           Example Syntax:
  3432.                     variable% = TagWindow(left%, right%, top%, bottom%, 
  3433.                     list$(), title$, shad%, boxType%, FG%, BG%, HiFG%, 
  3434.                     HiBG%, tagList%(), tagCHar$)
  3435.  
  3436.                     variable% Any BASIC integer variable.
  3437.  
  3438.                     left%     The left screen column of the list window.
  3439.  
  3440.                     right%    The right screen column of the list window.
  3441.  
  3442.                     top%      The top screen row of the list window.
  3443.  
  3444.                     bottom%   The bottom screen row of the list window.
  3445.  
  3446.                     list$()   A text array with the strings to display in 
  3447.                               the list window. Each member is printed on a 
  3448.                               separate line.
  3449.  
  3450.                     title$    The title string for the window. It will 
  3451.                               print in the center of the top row.
  3452.  
  3453.                     shad%     A number telling the FUNCTION to print a drop 
  3454.                               shadow behind the window or not. 0 = no 
  3455.                               shadow, 1 = use a shadow.
  3456.  
  3457.                     boxType%  A number describing the type of border box to 
  3458.                               use. 0 = none, 1 = a single line border box, 
  3459.                               2 = a double line border box.
  3460.  
  3461.                     FG%       Foreground color of the list window.
  3462.  
  3463.                     BG%       Background color of the list window.
  3464.  
  3465.                     HiFG%     Foreground color for the scrolling highlight 
  3466.                               bar.
  3467.  
  3468.                     HiBG%     Background color for the scrolling highlight 
  3469.                               bar.
  3470.  
  3471.                     tagList%()An integer array that serves two purposes. 
  3472.                               First, when the FUNCTION is called this can 
  3473.                               contain the array members to initially 
  3474.                               display tagged. Second, when the window is 
  3475.                               exited this array will contain the updated 
  3476.                               tag members. See Remarks below
  3477.                                                                          Page 61
  3478.  
  3479.  
  3480.  
  3481.  
  3482.                               for details on arrays.
  3483.  
  3484.                     tagChar$  The character to display beside a tagged item 
  3485.                               in the window. This can be any printable 
  3486.                               ascii character.
  3487.  
  3488.           Remarks:
  3489.                     The list$() and tagList%() arrays need to be dimentiond 
  3490.                     the same and use a base of 1 (ie: list$(1 TO n) where n 
  3491.                     is any number your program needs). The tagList%() array 
  3492.                     members hold either a 0 or a 1 indicating if the item 
  3493.                     is tagged or not (0 = not tagged, 1 = tagged) and the 
  3494.                     member corresponds to the same member in the list$() 
  3495.                     array. Example: if tagList%(10) = 1 then list$(10) has 
  3496.                     been tagged by the user. See the DEMOW2.BAS source code 
  3497.                     file for an example of the TagWindow FUNCTION.
  3498.  
  3499.           _________________________________________________________________
  3500.           TextWindow SUB
  3501.  
  3502.           Action:
  3503.                     Puts a window displaying text on the screen such as a 
  3504.                     help window.
  3505.  
  3506.           Example Syntax:
  3507.                     TextWindow top%, left%, text$(), title$, shad%, 
  3508.                     boxType%, saveSwitch%, FG%, BG%
  3509.  
  3510.                     top%      The top screen row of the window.
  3511.  
  3512.                     left%     The left screen column of the window.
  3513.  
  3514.                     text$()   An array of the text to display in the 
  3515.                               window. By default the text is left 
  3516.                               justified. Use a "|" character as the last 
  3517.                               character in the array member string to 
  3518.                               center the line left to right in the window.
  3519.  
  3520.                     title$    A string of the title to display centered on 
  3521.                               the top row. Pass a null string ("") if no 
  3522.                               title is needed.
  3523.  
  3524.                     shad%     A number telling the SUB if a drop shadow is 
  3525.                               to be printed behind the window or not. 0 = 
  3526.                               no shadow, 1 = use a shadow.
  3527.  
  3528.                     boxType%  The type of border box to use. 0 = none, 1 = 
  3529.                               a single line, 2 = a double line.
  3530.  
  3531.                     saveSwitch%An number telling the SUB if you want the 
  3532.                               window area to be
  3533.                                                                          Page 62
  3534.  
  3535.  
  3536.  
  3537.  
  3538.                               saved before the window is displayed and 
  3539.                               restored when the SUB is exited. 0 = don't 
  3540.                               save and restore, 1 = save and restore.
  3541.  
  3542.                     FG%       Foreground color for the text window.
  3543.  
  3544.                     BG%       Background color for the text window.
  3545.  
  3546.           Remarks:
  3547.                     The text window is automaticly sized using title or the 
  3548.                     longest member in the text$() array. If the saveSwitch% 
  3549.                     has a value of 1 the window pauses and waits for the 
  3550.                     user to press a key or mouse button. Pressing any key 
  3551.                     or the left mouse button causes an exit from the 
  3552.                     window. Using the saveSwitch% you can determine when 
  3553.                     and if the window is to be visible. To manually save 
  3554.                     and restore the screen area use the ScreenSave (page 
  3555.                     13) and ScreenRestore (page 12) SUB's in the 
  3556.                     CITOOLS.LIB.
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.                                          INDEX
  3564.  
  3565.           CIMENU1.LIB  4, 20
  3566.           CIMENU2.LIB  5, 27
  3567.           CIMENU3.LIB  5, 35
  3568.           CIMENU4.LIB  5, 40
  3569.           CIMOUSE.LIB  4, 17
  3570.           CITOOLS.LIB  4, 9
  3571.           CIWIND1.LIB  5, 44
  3572.           CIWIND2.LIB  5, 57
  3573.  
  3574.           Demo Programs  7
  3575.  
  3576.           Include Files  6
  3577.           Installation  3
  3578.  
  3579.           Library
  3580.                creating  4
  3581.                descriptions and related files  4
  3582.                include files used with  6
  3583.                installing from disk  3
  3584.                introduction  1
  3585.                quick libraries  5
  3586.                quick library, BASIC PDS  6
  3587.                quick library, QuickBASIC  5
  3588.                stand alone libraries  5
  3589.                third party  6
  3590.                TRACK-IT Library Management System  5
  3591.                using  6
  3592.                using with demo programs  7
  3593.  
  3594.           Quick Libraries
  3595.                use with demo programs  7
  3596.           Quick Library
  3597.                BASIC PDS  6
  3598.                creating  4, 5
  3599.                QuickBASIC  5
  3600.  
  3601.           Shareware
  3602.                descripton of  1
  3603.                registration   2
  3604.  
  3605.           TRACK-IT  5
  3606.