





                                    The WindowPro
                                           
                      *  * * * *    Reference Manual   * * * * *
                                           
                                   by Kenneth Stott
                                     version 1.51
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                  Seabreeze Software
                                    908 Route 518
                              Skillman, New Jersey 08558
                                    (609) 924-6793
                                           
                                           
                                           
                                           
                                           
                       Copyright (c) 1986-1989 by Kenneth Stott
                                 All Rights Reserved
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                           
                                           
          The WindowPro shareware diskette, containing a copy of this
          manual, may be freely copied and shared.  But, printed copies of
          this document may not be copied by any method without the express
          written permission of Seabreeze Software.























          WindowPro v. 1.51                                Reference Manual



          1  Overview  . . . . . . . . . . . . . . . . . . . . . . . .    1
          2  Keyboard and Mouse Functions  . . . . . . . . . . . . . .    5
             2.1   kb_convertcoord . . . . . . . . . . . . . . . . . .    6
             2.2   kb_getshift . . . . . . . . . . . . . . . . . . . .    6
             2.3   kb_getxc  . . . . . . . . . . . . . . . . . . . . .    7
             2.4   kb_hidemouse  . . . . . . . . . . . . . . . . . . .    8
             2.5   kb_ismouse  . . . . . . . . . . . . . . . . . . . .    9
             2.6   kb_mouseclicks  . . . . . . . . . . . . . . . . . .   10
             2.7   kb_mousemickeys . . . . . . . . . . . . . . . . . .   11
             2.8   kb_mousemotion  . . . . . . . . . . . . . . . . . .   12
             2.9   kb_mousepressed . . . . . . . . . . . . . . . . . .   13
             2.10  kb_mousereleased  . . . . . . . . . . . . . . . . .   14
             2.11  kb_mousestatus  . . . . . . . . . . . . . . . . . .   15
             2.12  kb_putmouse . . . . . . . . . . . . . . . . . . . .   16
             2.13  kb_resetmouse . . . . . . . . . . . . . . . . . . .   17
             2.14  kb_setgraphicsicon  . . . . . . . . . . . . . . . .   18
             2.15  kb_setmousexrange . . . . . . . . . . . . . . . . .   19
             2.16  kb_setmouseyrange . . . . . . . . . . . . . . . . .   20
             2.17  kb_settextcursor  . . . . . . . . . . . . . . . . .   21
             2.18  kb_showmouse  . . . . . . . . . . . . . . . . . . .   22
             2.19  kb_set_keyboard_driver  . . . . . . . . . . . . . .   23
             2.20  kb_reset_keyboard_driver  . . . . . . . . . . . . .   24
             2.21  kb_keypress_waiting . . . . . . . . . . . . . . . .   25
             2.22  kb_get_keypress . . . . . . . . . . . . . . . . . .   26
          3  Video Functions . . . . . . . . . . . . . . . . . . . . .   27
             3.1   v_curshape  . . . . . . . . . . . . . . . . . . . .   27
             3.2   v_cursor_report . . . . . . . . . . . . . . . . . .   28
             3.3   v_getchar . . . . . . . . . . . . . . . . . . . . .   29
             3.4   v_getmode . . . . . . . . . . . . . . . . . . . . .   30
             3.5   v_getpage . . . . . . . . . . . . . . . . . . . . .   31
             3.6   v_getwidth  . . . . . . . . . . . . . . . . . . . .   32
             3.7   v_gotoxy  . . . . . . . . . . . . . . . . . . . . .   33
             3.8   v_putchar . . . . . . . . . . . . . . . . . . . . .   34
             3.9   v_setega25  . . . . . . . . . . . . . . . . . . . .   35
             3.10  v_setega43  . . . . . . . . . . . . . . . . . . . .   36
             3.11  v_setmode . . . . . . . . . . . . . . . . . . . . .   37
          4  Virtual Screen Functions  . . . . . . . . . . . . . . . .   38
             4.1   vs_clr* . . . . . . . . . . . . . . . . . . . . . .   38
             4.2   vs_delcolumn  . . . . . . . . . . . . . . . . . . .   40
             4.3   vs_delrow . . . . . . . . . . . . . . . . . . . . .   41
             4.4   vs_drawbox  . . . . . . . . . . . . . . . . . . . .   42
             4.5   vs_fillattr . . . . . . . . . . . . . . . . . . . .   43
             4.6   vs_fillchar . . . . . . . . . . . . . . . . . . . .   44
             4.7   vs_format . . . . . . . . . . . . . . . . . . . . .   45
             4.8   vs_gets . . . . . . . . . . . . . . . . . . . . . .   46
             4.9   vs_inscolumn  . . . . . . . . . . . . . . . . . . .   47
             4.10  vs_insrow . . . . . . . . . . . . . . . . . . . . .   48
             4.11  vs_locatecur  . . . . . . . . . . . . . . . . . . .   49
             4.12  vs_printf . . . . . . . . . . . . . . . . . . . . .   50
             4.13  vs_putatrs  . . . . . . . . . . . . . . . . . . . .   51
             4.14  vs_putc . . . . . . . . . . . . . . . . . . . . . .   52
             4.15  vs_puts . . . . . . . . . . . . . . . . . . . . . .   53
             4.16  vs_putcods  . . . . . . . . . . . . . . . . . . . .   54
             4.17  vs_putscenter . . . . . . . . . . . . . . . . . . .   56



                               - Table of Contents 1 -





          WindowPro v. 1.51                                Reference Manual



          5  Window and Tile Functions . . . . . . . . . . . . . . . .   57
             5.1   wn_actt . . . . . . . . . . . . . . . . . . . . . .   57
             5.2   wn_actw . . . . . . . . . . . . . . . . . . . . . .   58
             5.3   wn_bordrng  . . . . . . . . . . . . . . . . . . . .   59
             5.4   wn_chgbord  . . . . . . . . . . . . . . . . . . . .   60
             5.5   wn_chgcolor . . . . . . . . . . . . . . . . . . . .   61
             5.6   wn_closerng . . . . . . . . . . . . . . . . . . . .   62
             5.7   wn_closet . . . . . . . . . . . . . . . . . . . . .   63
             5.8   wn_closew . . . . . . . . . . . . . . . . . . . . .   64
             5.9   wn_copyt  . . . . . . . . . . . . . . . . . . . . .   65
             5.10  wn_copyw  . . . . . . . . . . . . . . . . . . . . .   66
             5.11  wn_createt  . . . . . . . . . . . . . . . . . . . .   67
             5.12  wn_createw  . . . . . . . . . . . . . . . . . . . .   68
             5.13  wn_defrost  . . . . . . . . . . . . . . . . . . . .   70
             5.14  wn_deletet  . . . . . . . . . . . . . . . . . . . .   71
             5.15  wn_delrng . . . . . . . . . . . . . . . . . . . . .   72
             5.16  wn_delw . . . . . . . . . . . . . . . . . . . . . .   73
             5.17  wn_draww  . . . . . . . . . . . . . . . . . . . . .   74
             5.18  wn_draww_on_vs  . . . . . . . . . . . . . . . . . .   75
             5.19  wn_edlin  . . . . . . . . . . . . . . . . . . . . .   76
             5.20  wn_flybox . . . . . . . . . . . . . . . . . . . . .   78
             5.21  wn_freeze . . . . . . . . . . . . . . . . . . . . .   79
             5.22  wn_hidecur  . . . . . . . . . . . . . . . . . . . .   80
             5.23  wn_hidew  . . . . . . . . . . . . . . . . . . . . .   81
             5.24  wn_init . . . . . . . . . . . . . . . . . . . . . .   82
             5.25  wn_ison*  . . . . . . . . . . . . . . . . . . . . .   83
             5.26  wn_locatetwabs  . . . . . . . . . . . . . . . . . .   89
             5.27  wn_locatetwrel  . . . . . . . . . . . . . . . . . .   90
             5.28  wn_locatevs . . . . . . . . . . . . . . . . . . . .   91
             5.29  wn_locatew  . . . . . . . . . . . . . . . . . . . .   92
             5.30  wn_moverng  . . . . . . . . . . . . . . . . . . . .   93
             5.31  wn_movetwabs  . . . . . . . . . . . . . . . . . . .   94
             5.32  wn_movetwrel  . . . . . . . . . . . . . . . . . . .   95
             5.33  wn_movew  . . . . . . . . . . . . . . . . . . . . .   96
             5.34  wn_namet  . . . . . . . . . . . . . . . . . . . . .   97
             5.35  wn_namew  . . . . . . . . . . . . . . . . . . . . .   98
             5.36  wn_openabst . . . . . . . . . . . . . . . . . . . .   99
             5.37  wn_openrelt . . . . . . . . . . . . . . . . . . . .  100
             5.38  wn_opent  . . . . . . . . . . . . . . . . . . . . .  101
             5.39  wn_openw  . . . . . . . . . . . . . . . . . . . . .  102
             5.40  wn_putslist . . . . . . . . . . . . . . . . . . . .  103
             5.41  wn_redraw . . . . . . . . . . . . . . . . . . . . .  104
             5.42  wn_restorescr . . . . . . . . . . . . . . . . . . .  105
             5.43  wn_savescr  . . . . . . . . . . . . . . . . . . . .  106
             5.44  wn_scrollvs . . . . . . . . . . . . . . . . . . . .  107
             5.45  wn_showcur  . . . . . . . . . . . . . . . . . . . .  108
             5.46  wn_sizerng  . . . . . . . . . . . . . . . . . . . .  109
             5.47  wn_sizet  . . . . . . . . . . . . . . . . . . . . .  110
             5.48  wn_suspendt . . . . . . . . . . . . . . . . . . . .  111
             5.49  wn_suspendw . . . . . . . . . . . . . . . . . . . .  112
             5.50  wn_swapt  . . . . . . . . . . . . . . . . . . . . .  113
             5.51  wn_swapt2 . . . . . . . . . . . . . . . . . . . . .  114
             5.52  wn_sync_tw_to_vs  . . . . . . . . . . . . . . . . .  115
             5.53  wn_sync_vs_to_tw  . . . . . . . . . . . . . . . . .  116



                               - Table of Contents 2 -





          WindowPro v. 1.51                                Reference Manual



             5.54  wn_togborder  . . . . . . . . . . . . . . . . . . .  117
             5.55  wn_togbordrng . . . . . . . . . . . . . . . . . . .  118
             5.56  wn_togscroll  . . . . . . . . . . . . . . . . . . .  119
             5.57  wn_togscrollallt  . . . . . . . . . . . . . . . . .  120
             5.58  wn_togscrollrng . . . . . . . . . . . . . . . . . .  121
             5.59  wn_togthumb . . . . . . . . . . . . . . . . . . . .  122
             5.60  wn_updatet  . . . . . . . . . . . . . . . . . . . .  123
             5.61  wn_updatew  . . . . . . . . . . . . . . . . . . . .  124
             5.62  wn_zoomw  . . . . . . . . . . . . . . . . . . . . .  125
          6  Global Variables and Data Structures  . . . . . . . . . .  126
             6.1   active_attr, inactive_attr  . . . . . . . . . . . .  126
             6.2   active_tile_attr, inactive_tile_attr  . . . . . . .  126
             6.3   active_wdw  . . . . . . . . . . . . . . . . . . . .  126
             6.4   ansi_fcolor_table, ansi_fcolor_table  . . . . . . .  126
             6.5   balance1  . . . . . . . . . . . . . . . . . . . . .  126
             6.6   blkrec  . . . . . . . . . . . . . . . . . . . . . .  126
             6.7   buf[] . . . . . . . . . . . . . . . . . . . . . . .  127
             6.8   cursor_e, cursor_b, cursor_on . . . . . . . . . . .  127
             6.9   cursor_position, change_color . . . . . . . . . . .  127
             6.10  default_box, box0, box1, box2, box3, box4 . . . . .  128
             6.11  ega_mline . . . . . . . . . . . . . . . . . . . . .  128
             6.12  error_flag  . . . . . . . . . . . . . . . . . . . .  128
             6.13  first_wdw, last_wdw . . . . . . . . . . . . . . . .  128
             6.14  frozen  . . . . . . . . . . . . . . . . . . . . . .  128
             6.15  ibm_fcolor_table, ibm_bcolor_table  . . . . . . . .  128
             6.16  justify . . . . . . . . . . . . . . . . . . . . . .  129
             6.17  justify_tile  . . . . . . . . . . . . . . . . . . .  129
             6.18  method  . . . . . . . . . . . . . . . . . . . . . .  129
             6.19  mouse_installed . . . . . . . . . . . . . . . . . .  129
             6.20  oldx, oldy, oldb, olde  . . . . . . . . . . . . . .  129
             6.21  overlay . . . . . . . . . . . . . . . . . . . . . .  130
             6.22  physical_columns, physical_rows . . . . . . . . . .  130
             6.23  primary_scr, alt_scr, curr_scr  . . . . . . . . . .  130
             6.24  screen_buffer . . . . . . . . . . . . . . . . . . .  130
             6.25  scroll_bars_on  . . . . . . . . . . . . . . . . . .  130
             6.26  tab_expansion . . . . . . . . . . . . . . . . . . .  130
             6.27  thumbwheels_on  . . . . . . . . . . . . . . . . . .  131
             6.28  tile_rec  . . . . . . . . . . . . . . . . . . . . .  131
             6.29  vpage . . . . . . . . . . . . . . . . . . . . . . .  132
             6.30  wdw[] . . . . . . . . . . . . . . . . . . . . . . .  132
             6.31  wdw_rec . . . . . . . . . . . . . . . . . . . . . .  133
             6.32  zoomed  . . . . . . . . . . . . . . . . . . . . . .  134
             6.33  zoomed_tile . . . . . . . . . . . . . . . . . . . .  134
             6.34  zoomed_wdw  . . . . . . . . . . . . . . . . . . . .  134













                               - Table of Contents 3 -





          WindowPro v. 1.51                                Reference Manual



          1  Overview
          
          WindowPro classifies its functions into five groupings:
          
             . Windows (and tiles)
             . Virtual screens
             . Video
             . Kernel
             . Keyboard and mouse
             
          The kernel functions are not documented in the shareware manual. 
          You really shouldn't use them until you have gained considerable
          experience with WindowPro.  They can be useful for tweaking a bit
          of extra speed, or reducing code size.
          
          The windows and tile functions deal with changing the window
          sizes, positions on the physical screen, border characters,
          border styles, etc.
          
          The virtual screen functions manipulate the virtual screens. 
          They allow you to print to a virtual screen, erase areas, etc.
          
          The video functions let you change cursor shapes, sense video
          cards, set video modes, for IBM-PC and compatibles.
          
          The mouse and keyboard functions provide extended keyboard
          support (so you can, for example, distinguish between the grey
          and white '+' key) and functions for reporting on mouse activity,
          limiting where it can roam, etc.
          
          The following is a laundry list of the types of functions you can
          find in each general area.  It is not a complete list but it will
          give you a feel for where you might find functions and helps
          demonstrate the breadth of functionality encompassed by The
          WindowPro.
          
          
          WINDOWS AND TILES:
          
               INITIALIZE WindowPro --  initializes various variables  and
               allocates memory for various structures.  
               
               CREATE a window -- sets up a window in memory and defines a
               virtual screen.  
               
               OPEN a window -- puts a previously created window on top of
               the display list.  
               
               CLOSE a window -- removes a window from the display list.  
               
               DELETE a window -- removes a window from memory.  
               
               HIDE a window -- suppresses the display of a window, but
               keeps its position in the display list.  



                                        - 1 -





          WindowPro v. 1.51                                Reference Manual



               
               ACTIVATE a window -- temporarily places a window on top of
               the display list, any previously active window is reinserted
               into its original location in the display list.  
               
               MOVE a window -- changes the position of a window on the
               physical screen relative to its current position.  
               
               LOCATE a window -- changes the position of a window on the
               physical screen to an absolute position.  
               
               BORDERS  -- Each window can have its own unique border
               characters, decided by you.  This is useful for
               distinguishing between different types of windows on the
               screen, for example menus, dialog boxes, and editing
               windows.  You can also determine a border style such as
               NORMAL, BORDERLESS, or SHADED.  Shaded borders provide you
               with several types of shadow effects.  You can determine the
               color of the border characters.  
               
               SIZE a window -- changes the size of a window relative to
               its current position.  
               
               RANGE -- virtually every function has a range oriented
               version. This allows you to define groups of windows and
               then move or size them as a group.  This is really handy
               when developing applications where an object on the screen
               is made up of a several overlapping windows, for example a
               pop-up calculator might be programmed in this way.  
               
               NAME a window -- a window can be given a name which is
               displayed in its borders.  
               
               SUSPEND a window -- operations performed on a suspended
               window are not displayed on the screen (the window is
               frozen.)  When the window is un-suspended the result of all
               the operations performed are "flashed" on the screen at
               once.  
               
               FREEZE and DEFROST the system -- If the entire system is
               "frozen" absolutely no operation is reflected on the
               screen.  "defrosting" the screen "flashes" all of the
               changes on he screen at once.  
               
               ZOOM a window -- the active window can be temporarily
               increased in size, and then un-zoomed back to its original
               size.  
               
               CREATE a tile -- sets up additional virtual screens
               associated with a window in memory.  
               
               OPEN a tile -- inserts a tile below the currently active
               tile in a window.  
               



                                        - 2 -





          WindowPro v. 1.51                                Reference Manual



               CLOSE a tile -- removes a tile from the tile display list.  
               
               DELETE a tile -- removes a tile from memory.  
               
               SIZE a tile -- changes the size of tile relative to its
               current size.  
               
               THUMBWHEELS -- thumbwheels are the center part of scroll
               bars.  The WindowPro did not support these until version
               1.31.  Thumbwheels can illustrate the relative position of
               the viewport within a document, spreadsheet, virtual screen,
               etc.  Functions are included to move the thumbwheels, sense
               them with the mouse, synchronize the thumbwheels to the same
               relative position as the virtual screen within the viewport,
               and to synchronize the viewport to the relative positions of
               the thumbwheels.
               
               NAME a tile -- a tile can be given a name which is displayed
               in its borders.  
               
               SUSPEND a tile -- similar to suspending a window described
               above.  
               
               
          VIRTUAL SCREEN FUNCTIONS: 
          
               PRINTF -- you can output to any virtual screen using a
               windows-type printf which operates pretty much like regular
               old printf, except that you can define background and
               foreground attributes.  
               
               GETS -- you can collect input inside of windows using a
               windows-type gets.  It is similar to regular gets but allows
               for the definition of character colors, and scrolling
               methods.  
               
               FILL -- you can fill any defined region in a virtual screen
               with a character and attribute (great for erasing parts of
               virtual screens)or with just an attribute (works well for
               highlighting and dehighlighting words, etc.) 
               
               CURSOR -- Every virtual screen has its own cursor position. 
               You can move it to any position you like.  
               
               SCROLL -- Because a virtual screen may actually be larger
               than the window that displays it you can define what part of
               the virtual screen is displayed in the window/tile.  This
               can be used to create scrolling effects.  
               
               
          VIDEO FUNCTIONS:
          
               CURSOR SHAPE -- you can define the shape of the cursor.  
               



                                        - 3 -





          WindowPro v. 1.51                                Reference Manual



               CURSOR LOCATION -- moves the cursor to any location on the
               screen.  
               
               PUTC -- output a character and attribute to any location on
               the screen.  
               
               SAVE/RESTORE SCREEN -- you can save any screen and use it as
               a backdrop behind your windows display.  This is useful for
               creating background screens, or in pop-up programs which
               need to restore the screen to its state prior to be
               "popped-up." 
               
               
          KEYBOARD and MOUSE FUNCTIONS:
          
               EXTENDED KEYBOARD GETCH -- returns a full integer value
               giving a scan code and ascii value.  This will let you
               distinguish between say the grey + and the white + key.  
               
               MOUSE EXISTENCE -- tells you if a MICROSOFT compatible mouse
               is installed.  
               
               MOUSE STATUS -- tells you if a button was pressed and where
               the mouse is on the screen.  
               
               MOUSE MOTION -- tells you how far the mouse has traveled and
               in what direction since you last checked its motion
               indicators.  
               
               MOUSE PRESSED/RELEASED -- tells you is button was pressed or
               released and where the mouse was located at the time of the
               event.  
               
               MOUSE CLICKS -- reports on typical macro-type mouse events
               typically used in a mouse interface, e.g. clicks,
               double-clicks, releases, and presses.
               
               MOUSE CURSOR -- you can control the style of the mouse
               cursor and turn it on and off at will.  
               

















                                        - 4 -





          WindowPro v. 1.51                                Reference Manual



          2  Keyboard and Mouse Functions
          























































                                        - 5 -





          WindowPro v. 1.51                                Reference Manual



          2.1   kb_convertcoord
          
          Summary
          
          #include "keyboard.h"
          
          void kb_convertcoords(x, y)
          
          int *x, *y;
          
          
          Description
          
          Converts mouse coordinates to physical_screen coordinates.
          
          
          2.2   kb_getshift
          
          Summary
          
          #include "keyboard.h"
          
          unsigned kb_getshift(void)
          
          
          Description
          
          Returns an integer where each bit returns the following
          information:
          
          15        Insert; active=1; inactive=0
          14        Caps Lock; active=1; inactive=0
          13        Num Lock; active=1; inactive=0
          12        Scroll Lock; active=1; inactive=0
          11        Alt Shift; active=1; inactive=0
          10        Ctrl Shift; active=1; inactive=0
          9         Normal Left Shift; active=1; inactive=0
          8         Normal Right Shift; active=1; inactive=0
          7         Ins; depressed=1
          6         Caps Lock; depressed=1
          5         Num Lock; depressed=1
          4         Scroll Lock; depressed=1
          3         Hold State Active=1
          2         PC Jr keyboard click active=1
          1         Not Used
          0         Not Used











                                        - 6 -





          WindowPro v. 1.51                                Reference Manual



          2.3   kb_getxc
          
          Summary
          
          #include "keyboard.h"
          
          unsigned kb_getxc(void)
          
          
          Description
          
          Returns a single unsignedeger where the upper byte is the scan
          code (see the IBM technical reference manual -- each physical key
          has a scan code assigned) and the lower byte is the ascii code (0
          if no ascii code.)










































                                        - 7 -





          WindowPro v. 1.51                                Reference Manual



          2.4   kb_hidemouse
          
          Summary
          
          #include "mouse.h"
          
          void kb_hidemouse(void)
          
          
          Description
          
          Turns off the mouse cursor.
          
          
          Returns
          
          None.








































                                        - 8 -





          WindowPro v. 1.51                                Reference Manual



          2.5   kb_ismouse
          
          Summary
          
          #include "mouse.h"
          
          int kb_ismouse(void)
          
          
          Description
          
          Returns TRUE if a Microsoft compatible mouse is installed,
          otherwise it returns FALSE.  Resets the mouse internal registers.












































                                        - 9 -





          WindowPro v. 1.51                                Reference Manual



          2.6   kb_mouseclicks
          
          Summary
          
          #include "mouse.h"
          
          void kb_mouseclicks(button, timeout, x, y)
          
          int button, timeout, *x, *y;
          
          
          Description
          
          kb_mouseclicks can interpret things like clicks, double-clicks,
          presses and releases.  On calling kb_mouseclicks you pass it the
          button of interest in 'button'  and a timeout value in 'timeout.'
          
          button = 1, left
          button = 2, right
          button = 3, both
          
          The timeout value represents the number of times that the PC will
          generate a clock tick interrupt (about 18 times per second)
          without kb_mouseclicks sensing button activity -- triggering a
          return to the calling function.  
          
          If there are any keys in the buffer or if any keys put in the
          keyboard buffer during kb_mouseclicks, kb_mouseclicks will
          terminate early and not report on any interim mouse events.  This
          works pretty well in practice because typically you'll want to
          stick kb_mouseclicks in the main command loop.  If every call to
          kb_mouseclicks results in a wait for timeout then keyboard entry
          slows down considerably.
          
          the mouse cursor location as of the last button event is returned
          in x, y.
          
          
          Returns
          
          DOUBLECLICK         interpreted a double-click
          CLICK               interpreted a click
          PRESS               interpreted a button press
          HOLDING             user continues to hold a button after a
                              reported button press
          RELEASE             interpreted a button release
          UNKNOWN             no activity, or unknown activity










                                       - 10 -





          WindowPro v. 1.51                                Reference Manual



          2.7   kb_mousemickeys
          
          Summary
          
          #include "mouse.h"
          
          void kb_mousemickeys(x, y)
          
          int x, y;
          
          
          Description
          
          Allows you to reset the mouse sensitivity.  The default vertical
          ratio is about one pixel for every 2 mickeys, the horizontal
          ratio is 1 to 1.  Set x to the desired number of mickeys per 8
                                x                                       
          pixels for horizontal movement, and y for vertical movement.
                                              y                       
          
          
          Returns
          
          None.



































                                       - 11 -





          WindowPro v. 1.51                                Reference Manual



          2.8   kb_mousemotion
          
          Summary
          
          #include "mouse.h"
          
          void kb_mousemotion(xcounter, ycounter)
          
          int *xcounter, *ycounter;
          
          
          Description
          
          Keeps a raw tally of mouse motion measured in mickeys (there are
          about 200 mickeys to the inch)  since the last call.  There
          doesn't seem to be a lot of use for this.  However, it is
          documented in the Microsoft Mouse Programmers Reference Manual
          and for the sake of completeness it is available to you.
          
          
          Returns
          
          None.


































                                       - 12 -





          WindowPro v. 1.51                                Reference Manual



          2.9   kb_mousepressed
          
          Summary
          
          #include "mouse.h"
          
          void kb_mousepressed(m1, m2, m3, m4)
          
          int *m1, *m2, *m3, *m4;
          
          
          Description
          
          Set m1 to the value of the button of interest (1=left, 2=right,
          3=both).  The function returns in m1 the current state of the
          buttons.  In m2 it indicates the number of times the buttons
          (indicated in m1 on input) have been pressed since the last call
          to this function. m3 (x coordinate) and m4 (y coordinate)
          indicate the position of the mouse cursor on the last press.
          
          
          Returns
          
          None.

































                                       - 13 -





          WindowPro v. 1.51                                Reference Manual



          2.10  kb_mousereleased
          
          Summary
          
          #include "mouse.h"
          
          void kb_mousereleased(m1, m2, m3, m4)
          
          int *m1, *m2, *m3, *m4;
          
          
          Description
          
          Operates identically to kb_mousepressed, but for releases.
                                  kb mousepressed                   
          
          
          Returns
          
          None.






































                                       - 14 -





          WindowPro v. 1.51                                Reference Manual



          2.11  kb_mousestatus
          
          Summary
          
          #include "mouse.h"
          
          void kb_mousestatus(m2, m3, m4)
          
          int *m2, *m3, *m4;
          
          
          Description
          
          The status of the mouse buttons is returned in m2:  1 if the left
          button is pressed, 2 if the right button is pressed and 3 if both
          buttons are pressed.
          
          The current mouse cursor x position is returned in m3, in the
          range 0 to 640.  The current mouse cursor y position is returned
          in m4, in the range 0 to 200.  It is up to you to convert these
          to character positions.  Remember the physical screen coordinate
          system starts with 1,1 not 0,0.
          
          
          Returns
          
          None.






























                                       - 15 -





          WindowPro v. 1.51                                Reference Manual



          2.12  kb_putmouse
          
          Summary
          
          #include "mouse.h"
          
          void kb_putmouse(x, y)
          
          int x, y;
          
          
          Description
          
          Places the mouse cursor at the location specified by x, y.  See
                                                               x  y      
          kb_mousestatus for an explanation of the mouse cursor coordinate
          kb mousestatus                                                  
          system.
          
          
          Returns
          
          None.




































                                       - 16 -





          WindowPro v. 1.51                                Reference Manual



          2.13  kb_resetmouse
          
          Summary
          
          #include "mouse.h"
          
          void kb_resetmouse(void)
          
          
          Description
          
          Resets various internal registers, cursor positions, etc.  
          
          
          Returns
          
          None.








































                                       - 17 -





          WindowPro v. 1.51                                Reference Manual



          2.14  kb_setgraphicsicon
          
          Summary
          
          #include "mouse.h"
          
          void kb_setgraphicsicon()
          
          
          Read the MICROSOFT MOUSE PROGRAMMERS MANUAL.  Applicable to
          WindowPro only when using the IBM PC graphics mode (available
          under The WindowPro, but requires use of the BIOS screen update
          method.)












































                                       - 18 -





          WindowPro v. 1.51                                Reference Manual



          2.15  kb_setmousexrange
          
          Summary
          
          #include "mouse.h"
          
          void kb_setmousexrange(min, max)
          
          int min, max;
          
          
          Description
          
          Limits the columns in which the mouse cursor can roam.  See
          kb_mousestatus for an explanation of the mouse coordinate system.
          kb mousestatus                                                   
          
          
          Returns
          
          None.





































                                       - 19 -





          WindowPro v. 1.51                                Reference Manual



          2.16  kb_setmouseyrange
          
          Summary
          
          #include "mouse.h"
          
          void kb_setmouseyrange(min, max)
          
          int min, max;
          
          
          Description
          
          Limits the rows in which the mouse cursor can roam.  See
          kb_mousestatus for an explanation of the mouse coordinate system.
          kb mousestatus                                                   
          
          
          Returns
          
          None.





































                                       - 20 -





          WindowPro v. 1.51                                Reference Manual



          2.17  kb_settextcursor
          
          Summary
          
          #include "mouse.h"
          
          void kb_settextcursor(cursor_type, start, stop)
          
          int cursor_type, start, stop;
          
          
          Description
          
          Set cursor_type to 0 to select the software cursor and set
          cursor_type to 1 to select the hardware text cursor.  The
          software cursor is the default setting.  If the hardware cursor
          is selected start, stop represent the beginning and ending scan
                      start  stop                                        
          lines for the cursor shape.
          
          
          Returns
          
          None.


































                                       - 21 -





          WindowPro v. 1.51                                Reference Manual



          2.18  kb_showmouse
          
          Summary
          
          #include "mouse.h"
          
          void kb_showmouse(void)
          
          
          Description
          
          Turns on the mouse cursor.
          
          
          Returns
          
          None.








































                                       - 22 -





          WindowPro v. 1.51                                Reference Manual



          2.19  kb_set_keyboard_driver
          
          Summary
          
          #include "keyboard.h"
          
          int kb_set_keyboard_driver(void)
          
          
          Description
          
          Installs the WIndowPro keyboard driver and uninstalls the BIOS
          keyboard driver.  Installing the WindowPro keyboard driver
          disables use of functions using the BIOS keyboard driver, such as
          getch(), gets(), etc.
          
          If you have installed the WindowPro keyboard driver you must
          uninstall it with kb_reset_keyboard_driver() before exiting your
          program!
          
          
          Returns
          
          Returns TRUE if successful, FALSE if WindowPro keyboard driver is
          already installed.
































                                       - 23 -





          WindowPro v. 1.51                                Reference Manual



          2.20  kb_reset_keyboard_driver
          
          Summary
          
          #include "keyboard.h"
          
          int kb_reset_keyboard_driver(void)
          
          
          Description
          
          Uninstalls the WIndowPro keyboard driver and reinstalls the BIOS
          keyboard driver.  Uninstalling the WindowPro keyboard driver
          enables use of functions using the BIOS keyboard driver, such as
          getch(), gets(), etc.
          
          If you have installed the WindowPro keyboard driver you must
          uninstall it before exiting your program!
          
          
          Returns
          
          Returns TRUE if successful, FALSE if WindowPro keyboard driver
          was not originally installed via kb_set_keyboard_driver().

































                                       - 24 -





          WindowPro v. 1.51                                Reference Manual



          2.21  kb_keypress_waiting
          
          Summary
          
          #include "keyboard.h"
          
          int kb_keypress_waiting(void)
          
          
          Description
          
          Checks for keypress information in WindowPro keyboard driver
          buffer.
          
          
          Returns
          
          Returns TRUE if their is one or more keypresses in the buffer,
          otherwise returns FALSE.






































                                       - 25 -





          WindowPro v. 1.51                                Reference Manual



          2.22  kb_get_keypress
          
          Summary
          
          #include "keyboard.h"
          
          keypress kb_get_keypress(void)
          
          
          Description
          
          Returns next keypress in WindowPro keyboard driver buffer. If no
          keypress is in buffer waits until a keypress is available.
          
          
          Returns
          
          Returns a keypress struct.
          
          typedef struct {
          
               unsigned char 
          
                    ascii,                   /* 0 if no ascii value for
                                             keypress */
                    scan,                    /* scan code for key pressed
                                             or released */
                    shift1,                  /* first shift state byte at
                                             time of event */
                    shift2;                  /* second shift state byte at
                                             time of event */
          } keypress;
          
          
          See the included sample program xkeytest.c for further
          explanation of the keypress struct.





















                                       - 26 -





          WindowPro v. 1.51                                Reference Manual



          3  Video Functions
          
          3.1   v_curshape
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          void v_curshape(start, end)
          
          char start, end;
          
          
          Description
          
          Changes the shape of an IBM-PC cursor where start is the
                                                      start       
          beginning scan line and end is the ending scan line.
                                  end                         
          
          
          Returns
          
          None


































                                       - 27 -





          WindowPro v. 1.51                                Reference Manual



          3.2   v_cursor_report
          
          Summary
          
          #include "video.h"
          
          int v_cursor_report(x, y, b, e)
          
          unsigned *x, *y, *b, *e;
          
          
          Description
          
          Returns the cursor column in x, the cursor row in y, the starting
          scan line in b, and the ending scan line in e.  Under DOS, the
          global variable vpage must be set to the correct video page
          number.  This is done automatically in wn_init.  But you can also
          obtain the current video page via v_getpage.
          
          
          Returns
          
          None.


































                                       - 28 -





          WindowPro v. 1.51                                Reference Manual



          3.3   v_getchar
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_getchar(x, y)
          
          int x, y;
          
          
          Description
          
          Uses the IBM-PC BIOS (under DOS) or Vio call (under OS/2) to read
          the character at the coordinate x,y, where the upper left corner
          of the screen is 1,1.
          
          
          Returns
          
          Returns the value of the character in the low byte and the
          attribute value in the high byte.


































                                       - 29 -





          WindowPro v. 1.51                                Reference Manual



          3.4   v_getmode
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_getmode(void)
          
          
          Description
          
          Returns the video mode of an IBM-PC or compatible.  The video
          modes are defined in vidmodes.h  Under OS/2 attemps to translate
          the OS/2 video mode definitions to the modes defined in
          vidmodes.h









































                                       - 30 -





          WindowPro v. 1.51                                Reference Manual



          3.5   v_getpage
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_getpage(void)
          
          
          Description
          
          Returns the current video page.  Always returns 0 under OS/2.












































                                       - 31 -





          WindowPro v. 1.51                                Reference Manual



          3.6   v_getwidth
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_getwidth(void)
          
          
          Description
          
          Returns the width in characters for the current video mode.












































                                       - 32 -





          WindowPro v. 1.51                                Reference Manual



          3.7   v_gotoxy
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          void v_gotoxy(x, y)
          
          int x, y;
          
          
          Description
          
          Positions the hardware cursor at location x,y where the upper
          left corner of the screen is 0,0.  If the global variable method
                                                                    method
          = ANSI it uses the ANSI method of repositioning the hardware
            ANSI                                                      
          cursor.  Otherwise it uses the IBM-PC BIOS (under DOS) or Vio
          call (under OS/2) method.
          
          
          Returns
          
          None

































                                       - 33 -





          WindowPro v. 1.51                                Reference Manual



          3.8   v_putchar
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_putchar(x, y, character, attribute)
          
          int x, y;
          char character, attribute;
          
          
          Description
          
          Puts a character on the physical screen at the coordinate (x,y)
          where (1,1) is the upper left corner of the screen.  No range
          checking is performed.  Uses IBM-PC specific BIOS calls under DOS
          or Vio calls under OS/2.
          
          
          Returns
          
          None

































                                       - 34 -





          WindowPro v. 1.51                                Reference Manual



          3.9   v_setega25
          
          Summary
          
          #include "video.h"
          
          void v_setega25(void)
          
          
          Description
          
          Changes an EGA screen to 25 line mode.
          
          
          Returns
          
          None








































                                       - 35 -





          WindowPro v. 1.51                                Reference Manual



          3.10  v_setega43
          
          Summary
          
          #include "video.h"
          
          void v_setega43(void)
          
          
          Description
          
          Changes an EGA screen to 43 line mode.
          
          
          Returns
          
          None








































                                       - 36 -





          WindowPro v. 1.51                                Reference Manual



          3.11  v_setmode
          
          Summary
          
          #include "werrors.h"
          #include "video.h"
          
          int v_setmode(vid_mode)
          
          char vid_mode;
          
          
          Description
          
          Sets the video mode of an IBM-PC or compatible.  The video modes
          are defined in vidmodes.h
          
          
          Returns
          
          BAD_PARAMS          vid_mode was not one the modes defined in
                              vid_mode                                 
                              "vidmodes.h."
          
          OK                  No errors.

































                                       - 37 -





          WindowPro v. 1.51                                Reference Manual



          4  Virtual Screen Functions
          
          4.1   vs_clr*
          
          4.1.1  vs_clrvs
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_clrvs(handle, tile_handle, foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          
          Erases an entire virtual screen defined by (handle,
          tile_handle.)  The resulting screen is blank and of color
          foreground, background.
          
          See fill_char for return values.
              fill char                   
          
          
          4.1.2  vs_clrbol
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_clrbol(handle, tile_handle, foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          
          Erases from the tile's logical cursor position to the beginning
          of the line, erased portion has the color of foreground,
                                                       foreground 
          background.
          background 
          
          See fill_char for return values.
              fill char                   
          
          
          4.1.3  vs_clreol
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_clreol(handle, tile_handle, foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          
          Erases from the tile's logical cursor position to the end of the
          line, erased portion has the color of foreground, background.
                                                foreground  background 
          
          See fill_char for return values.
              fill char                   
          
          



                                       - 38 -





          WindowPro v. 1.51                                Reference Manual



          4.1.4  vs_clrtoend
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_clrtoend(handle, tile_handle, foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          
          Erases from the tile's logical cursor position to the end of the
          virtual screen, erased portion has the color of foreground,
                                                          foreground 
          background.
          background 
          
          See fill_char for return values.
              fill char                   










































                                       - 39 -





          WindowPro v. 1.51                                Reference Manual



          4.2   vs_delcolumn
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_delcolumn(handle, tile_handle, x1, y1, x2, y2,
               vs_columns, foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          int x1, y1, x2, y2, vs_columns;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function deletes vs_columns columns on the
          left side of this rectangle and scrolls all rows to the left,
          inserting blank columns on the right side of the region.  The new
          columns have the color defined by foreground, background.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.
















                                       - 40 -





          WindowPro v. 1.51                                Reference Manual



          4.3   vs_delrow
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_delrow(handle, tile_handle, x1, y1, x2, y2, vs_rows, 
          foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          int x1, y1, x2, y2, vs_rows;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function deletes vs_rows rows from the top of
          the rectangle and scrolls all rows up, inserting blank rows at
          the bottom of the region.  The new rows have the color defined by
          foreground, background.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.
















                                       - 41 -





          WindowPro v. 1.51                                Reference Manual



          4.4   vs_drawbox
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          void vs_drawbox(handle, tile_handle, x, y, rows, columns, 
               shading, boxchars,foreground, background)
          
          unsigned handle;
          unsigned char tile_handle;
          int x, y, rows, columns;
          char shading;
          unsigned char *boxchars, foreground, background;
          
          
          Description
          
          Draws a box on a virtual screen {handle, tile_handle}.  The upper
                                           handle  tile handle             
          left hand corner of the box is located at x,y.  The inner
                                                    x y            
          dimensions of the box are row, column.  The box uses the shading
                                    row  column                           
          styles and box drawing characters discussed at wn_create, defined
          by shading and and boxchars.  The box has the color foreground,
             shading         boxchars                         foreground 
          background.
          background 
          
          
          Returns
          
          None.



























                                       - 42 -





          WindowPro v. 1.51                                Reference Manual



          4.5   vs_fillattr
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_fillattr(handle, tile_handle, x1, y1, x2, y2, foreground, 
          background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          int x1, y1, x2, y2;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function changes the color of all characters
          in the region to foreground, background.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.


















                                       - 43 -





          WindowPro v. 1.51                                Reference Manual



          4.6   vs_fillchar
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_fillchar(handle, tile_handle, x1, y1, x2, y2, character, 
          foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, character, foreground, background;
          int x1, y1, x2, y2;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
           x1,y1       x2 y2                                               
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function fills the region with the character
          'character' and the color (foreground, background.)
           character                (foreground, background.)
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.


















                                       - 44 -





          WindowPro v. 1.51                                Reference Manual



          4.7   vs_format
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_format(handle, tile_handle, foreground, background,       
               string)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          char *string;
          
          
          Description
          
          Prints a string to the virtual screen defined by {handle,
                                                            handle 
          tile_handle}, with the video attributes of foreground and
          tile_handle                                foreground    
          background.  TABS are expanded, CR/LF is interpreted, long lines
          background                                                      
          automatically wrap to the beginning of the the next line, and the
          virtual screen automatically scrolls on reaching the bottom of
          the virtual screen.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          OK                  No errors detected.




















                                       - 45 -





          WindowPro v. 1.51                                Reference Manual



          4.8   vs_gets
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_gets(handle, tile_handle, scroll, bufstr, foreground, 
               background, maxlen)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          char scroll, *buffer;
          int maxlen;
          
          
          Description
          
          Retrieves a string from the keyboard.  The string is stored at
          bufstr and may have a maximum length of maxlen.  The initial
          bufstr                                  maxlen              
          cursor position is determined by the tile's {handle, tile_handle}
          logical cursor position.  If scroll is TRUE the virtual screen
                                       scroll                           
          will scroll left or right to keep the cursor on the physical
          screen.  If scroll is FALSE, the user can continue to input (when
          the cursor advances beyond the the displayed area of the virtual
          screen) but the results of his typing are not seen on the
          physical screen.
          
          Tabs are not expanded.  Hitting the end of the virtual screen
          automatically wraps the cursor around to the beginning of the
          next line.  Terminate wn_gets with a carriage return.  Backspace
                                wn_gets                                   
          deletes the character to the left of the cursor and pulls the
          cursor back one position.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          OK                  No errors detected.










                                       - 46 -





          WindowPro v. 1.51                                Reference Manual



          4.9   vs_inscolumn
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_inscolumn(handle, tile_handle, x1, y1, x2, y2, vs_columns,
               foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          int x1, y1, x2, y2, vs_columns;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function inserts vs_columns columns on the
          left side of this rectangle and scrolls all rows to the right,
          overwriting the rightmost rows in the rectangle.  The new rows
          have the color defined by foreground, background.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.
















                                       - 47 -





          WindowPro v. 1.51                                Reference Manual



          4.10  vs_insrow
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_insrow(handle, tile_handle, x1, y1, x2, y2, vs_rows,
               foreground, background)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          int x1, y1, x2, y2, vs_rows;
          
          
          Description
          
          (x1,y1) and (x2,y2) define the upper left and lower right corners
          of a rectangular region in a virtual screen (handle,
          tile_handle.)  The function inserts vs_rows rows at the top of
          the rectangle and scrolls the lines below down, overwriting the
          bottom lines in the rectangle.  The new lines have the color
          defined by foreground, background.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          BAD_PARAMS          x1,y1 & x2,y2 did not represent an upper left
                              and lower right coordinate or were not within
                              the virtual screen.
          
          OK                  No errors detected.
















                                       - 48 -





          WindowPro v. 1.51                                Reference Manual



          4.11  vs_locatecur
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_locatecur(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          char tile_handle, ch;
          
          
          Description
          
          Positions the tile's (handle, tile_handle) logical cursor at
                                handle  tile handle                   
          coordinate x,y.
                     x,y 
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          BAD_PARAMS          x, y is not within the virtual screen.
                              x, y                                  
          
          OK                  No errors detected.
























                                       - 49 -





          WindowPro v. 1.51                                Reference Manual



          4.12  vs_printf
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_printf(handle, tile_handle, foreground, background,
               format,...)
          
          unsigned handle;
          unsigned char tile_handle, foreground, background;
          char *format;
          
          
          Description
          
          Prints a 'printf-type' formatted string to the virtual screen
          defined by the {handle, tile_handle}, with the video attributes
                          handle  tile_handle                            
          of foreground and background.  The function accepts variable
             foreground     background                                
          arguments similar to the standard printf function.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          OK                  No errors detected.






















                                       - 50 -





          WindowPro v. 1.51                                Reference Manual



          4.13  vs_putatrs
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_putattrs(handle, tile_handle, bcolumn, brow, len, out_str)
          
          unsigned handle, bcolumn, brow, len;
          unsigned char tile_handle;
          screen_char far *out_str;
          
          
          Description
          
          Outputs an attributed string pointed to by out_str on the virtual
                                                     out_str               
          screen (handle, tile_handle) starting at the coordinate (bcolumn,
                  handle, tile_handle                              bcolumn 
          brow) and in the colors designated by foreground and background. 
          brow                                  foreground     background  
          No checking is done to make sure that the string doesn't extend
          beyond the end of the virtual screen and it does not expand tabs
          or interpret carriage returns.  If the string is less than len it
                                                                     len   
          is clipped on the right side.  If it is greater than len it is
                                                               len      
          padded with spaces on the right side.  All characters 1 to 255
          are output as defined in the IBM extended character set.
          
          Note: an attributed string is an array of structures of type
          screen_char.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          OUT_OF_MEMORY       Could not allocate sufficient working space. 
                              Try breaking the string into smaller pieces.
          
          NULL_POINTER        out_str is a null pointer.
                              out_str                   
          
          OK                  No errors detected.










                                       - 51 -





          WindowPro v. 1.51                                Reference Manual



          4.14  vs_putc
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_putc(handle, tile_handle, column, row, foreground,
               background, ch)
          
          unsigned handle, column, row, foreground, background;
          unsigned char tile_handle, ch;
          
          
          Description
          
          Outputs a character {ch} to the virtual screen defined by
                               ch                                  
          {handle, tile_handle} at the position {column, row} with
           handle, tile_handle                   column, row      
          attributes of {foreground, background}.  The upper left
                         foreground, background                  
          coordinate of a virtual screen is column 1, row 1.
          
          Note that this function has no effect on the physical screen if
          the tile or window is suspended or hidden, or if the point on the
          virtual screen is obscured on the physical screen.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          BAD_PARAMS          The column or row is not within the virtual
                                  column    row                          
                              screen.
          
          OK                  No errors detected.
















                                       - 52 -





          WindowPro v. 1.51                                Reference Manual



          4.15  vs_puts
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_puts(handle, tile_handle, bcolumn, brow, maxlen,
               foreground, background, pass)
          
          unsigned handle, bcolumn, brow, maxlen;
          unsigned char tile_handle, foreground, background, *pass;
          
          
          Description
          
          Outputs the string pointed to by pass on the virtual screen
                                           pass                      
          (handle, tile_handle) starting at the coordinate (bcolumn, brow)
           handle, tile_handle                              bcolumn  brow 
          and in the colors designated by foreground and background.  No
                                          foreground     background     
          checking is done to make sure that the string doesn't extend
          beyond the end of the virtual screen and it does not expand tabs
          or interpret carriage returns.  If the string is longer than
          maxlen it is clipped if it is less than maxlen it is padded with
          maxlen                                  maxlen                  
          spaces on the right side.  All characters 1 to 255 are output as
          defined in the IBM extended character set.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          OUT_OF_MEMORY       Could not allocate sufficient working space. 
                              Try breaking the string into smaller pieces.
          
          NULL_POINTER        Pass is a null pointer.
                              Pass                   
          
          OK                  No errors detected.













                                       - 53 -





          WindowPro v. 1.51                                Reference Manual



          4.16  vs_putcods
          
          Summary
          
          #include "werrors.h"
          #include "vs.h"
          
          int vs_putcods(handle, tile_handle, bcolumn, brow, maxlen,
               foreground, background, hfg, hbg, pass)
          
          unsigned handle, bcolumn, brow, maxlen;
          unsigned char tile_handle, foreground, background, hfg, hbg,
               *pass;
          
          
          Description
          
          Outputs the string pointed to by pass on the virtual screen
                                           pass                      
          (handle, tile_handle) starting at the coordinate (bcolumn, brow)
           handle, tile_handle                              bcolumn  brow 
          and in the colors designated by foreground and background.  No
                                          foreground     background     
          checking is done to make sure that the string doesn't extend
          beyond the end of the virtual screen and it does not expand tabs
          or interpret carriage returns.  If the string is longer than
          maxlen it is clipped if it is less than maxlen it is padded with
          maxlen                                  maxlen                  
          spaces on the right side.  All characters 1 to 255 are output as
          defined in the IBM extended character set.  With the following
          exceptions.
          
          vs_putcods() differs from vs_puts() in that you can embed video
          attribute control characters into the text.  Specifically, the
          tilde ~ will output the next character with the video attributes
          hfg, hbg.  The | character will interpret the next character as a
          hfg  hbg                                                         
          change in the foreground, background video attribute to the ascii
          value of the following character less 32 (this disallows video
          attribute values of greater than 224 -- but allows entering of
          codes easier in most editors.)  If you need to output either the
          tilde ~ or the pipe | character enter them as \~ or \|, if you
          need to display the backslash character enter it as \\.
          
          the function codstrlen() will return the displayed length of a
          vs_putcods() encoded string.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          



                                       - 54 -





          WindowPro v. 1.51                                Reference Manual



          OUT_OF_MEMORY       Could not allocate sufficient working space. 
                              Try breaking the string into smaller pieces.
          
          NULL_POINTER        Pass is a null pointer.
                              Pass                   
          
          OK                  No errors detected.



















































                                       - 55 -





          WindowPro v. 1.51                                Reference Manual



          4.17  vs_putscenter
          
          Summary
          
          #include "vs.h"
          #include "werrors.h"
          
          int vs_putscenter(handle, tile_handle, string, fg, bg, row)
          
          unsigned handle;
          unsigned char tile_handle, fg, bg;
          int row;
          char *string;
          
          
          Description
          
          Outputs the string pointed to by string to the virtual screen
          indicated by handle, tile_handle.  The string is centered on the
          line indicated by parameter row.  The string is displayed with
          the attributes fg, bg.  If the string is longer than the virtual
          screen is wide the string is truncated.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                                  handle                                 
                              was probably not initialized via wn_createw,
                                                               wn createw 
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                                  tile handle                              
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                                        wn createt                        
                              corrupted.
          
          OUT_OF_MEMORY       Could not allocate sufficient working space. 
                              Try breaking the string into smaller pieces.
          
          NULL_POINTER        Pass is a null pointer.
                              Pass                   
          
          OK                  No errors detected.
















                                       - 56 -





          WindowPro v. 1.51                                Reference Manual



          5  Window and Tile Functions
          
          5.1   wn_actt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_actt(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Designates a tile as the active tile.  If another tile is already
          designated as the active tile, it is un-designated.  If the tile
          is not open it is first opened via a call to wn_opent.  See
                                                       wn_opent      
          wn_opent for further explanation.  The color of the name of the
          wn_opent                                                       
          newly active tile is changed to the value of the global variable
          active_tile_attr.  The color of the name of the previously active
          active_tile_attr                                                 
          tile is changed to the value of the global variable
          inactive_tile_attr.
          inactive_tile_attr 
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          BAD_TILE_HANDLE          Tile_handle de-references to NULL.  It
                                   was probably not initialized via
                                   wn_createt, but may have been corrupted.
          
          OK                       No errors.



















                                       - 57 -





          WindowPro v. 1.51                                Reference Manual



          5.2   wn_actw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_actw(handle)
          
          unsigned handle;
          
          
          Description
          
          Designates a window as the active window.  The active window is
          temporarily placed on top of the display list.  If the window is
          not currently displayed it is first opened via a call to
          wn_openw.  See wn_openw for further explanation.  The previously
          wn_openw       wn_openw                                         
          active window is reinserted back into the display list at its
          original position.   The border color of the previously active
          window is set to the value of the global variable inactive_attr. 
                                                            inactive_attr  
          The border color of the newly active window is set to the value
          of the global variable active_attr.
                                 active_attr 
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          OK                       No errors.

























                                       - 58 -





          WindowPro v. 1.51                                Reference Manual



          5.3   wn_bordrng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_bordrng(handle1, handle2, borders)
          
          unsigned handle1, handle2;
          char *borders;
          
          
          Description
          
          Changes the border characters for a range of windows to an array
          of 13 border characters pointed to by borders.  See wn_chgbord
                                                borders                 
          for an explanation of the border characters.
          
          The operation begins with handle1 and progresses towards the top
          of the display until it reaches handle2 or the top of the display
          list.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL. 
                              Handle1    handle2                        
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          NULL_POINTER        Borders is NULL.
                              Borders         
          
          OK                  No errors detected.
























                                       - 59 -





          WindowPro v. 1.51                                Reference Manual



          5.4   wn_chgbord
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_chgbord(handle, borders)
          
          unsigned handle;
          char *borders;
          
          
          Description
          
          Changes the border characters for a window to an array of 13
          border characters pointed to by borders.
                                          borders 
          
          Each element of the array is interpreted as follows:
          
          0    upper left corner
          1    upper right corner
          2    lower right corner
          3    lower left corner
          4    horizontal bar (top and bottom of window)
          5    vertical bar
          6    left side of window name delimiter
          7    right side of window name delimiter
          8    left side of tile name delimiter
          9    right side of tile name delimiter
          10   horizontal bar (middle bar -- the one that divides tiles)
          11   left elbow
          12   right elbow
          
          Predefined in the global variables are five border styles box0,
          box1, box2, box3 and box4.  The global variable default_box is
          automatically assigned to a window when it is created. 
          default_box is initialized to box0 for starters.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              Handle                               
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          NULL_POINTER        Borders is NULL.
                              Borders         
          
          OK                  No errors detected.








                                       - 60 -





          WindowPro v. 1.51                                Reference Manual



          5.5   wn_chgcolor
          
          Summary
          
          #include "werrors.h"
          #include "colors.h"
          #include "pro.h"
          
          int wn_chgcolor(handle, foreground, background)
          
          unsigned handle;
          unsigned char foreground, background;
          
          
          Description
          
          Changes the color of the border of the window (handle) to
                                                         handle    
          foreground, background.
          foreground  background 
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          OK                  No errors detected.






























                                       - 61 -





          WindowPro v. 1.51                                Reference Manual



          5.6   wn_closerng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_closerng(handle1, handle2)
          
          unsigned handle1, handle2;
          
          
          Description
          
          Closes a range of windows.  See wn_closew for additional
                                          wn_closew               
          information.
          
          
          Returns
          
          BAD_WDW_HANDLE           handle1 or handle2 de-references to
                                   NULL.  It was probably not initialized
                                   via wn_createw, but may have been
                                   corrupted.
          
          OK                       No errors.































                                       - 62 -





          WindowPro v. 1.51                                Reference Manual



          5.7   wn_closet
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_closet(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Closes a displayed tile.  The space is always taken by the tile
          above, or in the case of the first tile by the tile below. If the
          tile being closed was also designated as the active tile, the
          last tile in the window is designated as the active tile.
          
          This function does not delete the tile from memory.  It is still
          a valid tile handle and you may perform all operations on its
          virtual screen.  You can redisplay the tile via the wn_opent
                                                              wn_opent
          function.
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          BAD_TILE_HANDLE          Tile_handle de-references to NULL.  It
                                   was probably not initialized via
                                   wn_createt, but may have been corrupted.
          
          CANT_CLOSE_LAST_TILE     Every window must have at least one
                                   tile.  So, you can't close the last
                                   remaining tile.
          
          OK                       No errors.
















                                       - 63 -





          WindowPro v. 1.51                                Reference Manual



          5.8   wn_closew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_closew(handle)
          
          unsigned handle;
          
          
          Description
          
          Closes a displayed window, i.e. removes it from the display list.
          
          This function does not delete the window from memory.  It is
          still a valid window handle and you may perform all operations on
          its virtual screen.  You may redisplay it via the wn_openw
                                                            wn_openw
          function.
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          OK                       No errors.




























                                       - 64 -





          WindowPro v. 1.51                                Reference Manual



          5.9   wn_copyt
          
          5.9.1  Summary
          
          #include "pro.h"
          #include "werrors.h"
          
          int wn_copyt(handle, tile_handle, thandle)
          
          unsigned handle, thandle;
          unsigned char tile_handle;
          
          
          5.9.2  Description
          
          Make a copy of the tile and virtual screen associated with
          handle, tile_handle and associates it with the window referred to
          by handle.  Returning the copy's tile handle.
          
          
          5.9.3  Returns
          
          BAD_WDW_HANDLE           handle or thandle is not a valid window
                                   handle (dereferences to NULL.)
          
          BAD_TILE_HANDLE          tile_handle is not a valid tile handle
                                   (dereferences to NULL.)
          
          MAXIMUM_TILES            thandle has the maximum number of tiles
                                   associated with it.  Try deleting
                                   unnecessary tiles in thandle and then
                                   call wn_copyt again.
          
          OUT_OF_MEMORY            There was insufficient memory available
                                   to create the tile structures.
          
          >= 0 and < MAXIMUM_TILES a valid tile was created.




















                                       - 65 -





          WindowPro v. 1.51                                Reference Manual



          5.10  wn_copyw
          
          Summary
          
          #include "pro.h"
          #include "werrors.h"
          
          int wn_copyw(handle)
          
          unsigned handle;
          
          
          Description
          
          Copies the window and all of its tiles and virtual screens. 
          Returns a handle to the copy of the original window.
          
          
          Returns
          
          MAXIMUM_WINDOWS     Too many windows have been created.  Try
                              deleting some unused windows and then call
                              wn_copyw again.
          
          OUT_OF_MEMORY       There was insufficient memory to allocate the
                              new window structures.































                                       - 66 -





          WindowPro v. 1.51                                Reference Manual



          5.11  wn_createt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_createt(handle, tile_name, vs_columns, vs_rows, virtual_x,
               virtual_y)
          
          unsigned handle, vs_columns, vs_rows, virtual_x, virtual_y;
          char *tile_name;
          
          
          Description
          
          Creates a new tile.  Sets up a tile record, allocates memory for
          a virtual screen, etc.  The logical cursor is placed at location
          1,1.  The virtual screen is vs_columns wide and vs_rows high. 
                                      vs_columns          vs_rows       
          The viewport (whose actual size is not defined until the tile is
          opened) is placed over the virtual screen at coordinate
          virtual_x, virtual_y.  The tile name is defined by tile_name. 
          virtual_x, virtual_y                               tile_name  
          The tile name is displayed below the tile centered in the
          border.  If tile_name is NULL nothing is display.
                      tile_name    NULL                    
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_PARAMS          Virtual_x,virtual_y is not in the range
                              defined by vs_columns, vs_rows.
          
          OUT_OF_MEMORY       Could not allocate memory for the various
                              data structures required to set up a tile. 
                              You might try reducing the size of the
                              virtual screen.
          
          MAXIMUM_TILES       Exceeded the maximum number of tile handles
                              allocated for this window.  Try deleting some
                              unused tiles.
          
          new handle          Any value greater than or equal to 0
                              represents a valid tile handle.  Several
                              functions use tile_handles to refer to
                              virtual screens, etc.









                                       - 67 -





          WindowPro v. 1.51                                Reference Manual



          5.12  wn_createw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_createw(vs_rows, vs_columns, physical_x, physical_y,
               virtual_x, virtual_y, port_rows, port_columns, suspend,
               border, wdw_name, tile_name)
          
          unsigned vs_rows, vs_columns, physical_x, physical_y, virtual_x,
               virtual_y, port_rows, port_columns, suspend, border;
          char *wdw_name, *tile_name;
          
          
          Description
          
          Creates a window record and virtual screen.  It simply sets up
          the information in memory it does not insert the window into the
          display list.  See wn_actw and wn_openw for additional
                             wn actw     wn openw               
          information.
          
          The window is created with a single tile.  The tile_handle for
                                                         tile handle    
          the first tile in a new window is always 0.
          
          The upper left corner of the window is located at the physical
          coordinates (physical_x, physical_y).  The window has inner
          dimensions of port_rows rows and port_columns columns.  It has a
          border style of border (see wn_chgbord for additional
          information.)  You can optionally suspend the window upon
          creation by setting suspend to FALSE otherwise set suspend to
          TRUE (see wn_suspendw for additional information.)  The border
          characters are set to the global variable default_box (see
          wn_togbord for additional information.)  The virtual screen for
          the first tile in the window as dimensions of vs_rows by
          vs_columns.  The viewport is positioned over the virtual screen
          so that the logical coordinate virtual_x, virtual_y is in the
          upper left hand corner.  The logical cursor is initialized to the
          logical coordinate 1,1.  The border color is set to the value of
          the global variable inactive_attr.  The scroll bars are on if the
          global variable scroll_bars_on is TRUE.
          
          
          Returns
          
          OUT_OF_MEMORY            Not enough memory to initialize the
                                   window structures.  Try using a smaller
                                   virtual screen.
          
          MAXIMUM_WINDOWS          There are no more window handles left to
                                   allocate.  Try deleting some unused
                                   windows.
          



                                       - 68 -





          WindowPro v. 1.51                                Reference Manual



          new handle               any value equal to or greater than 0 and
                                   less than MAX_WINDOWS is a valid window
                                   handle.






















































                                       - 69 -





          WindowPro v. 1.51                                Reference Manual



          5.13  wn_defrost
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_defrost(lx, ly, hx, hy)
          
          unsigned lx, ly, hx, hy;
          
          
          Description
          
          Unfreezes the screen, see wn_freeze for further explanation. 
                                    wn freeze                          
          When the screen is unfrozen the rectangular area represented by
          the upper left physical screen coordinate lx,ly and the lower
          right physical screen coordinate hx,hy are updated.  To update
          the entire screen you would 1,1,physical_columns,physical_rows,
          for example.
          
          
          Returns
          
          None.
































                                       - 70 -





          WindowPro v. 1.51                                Reference Manual



          5.14  wn_deletet
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_deletet(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Deletes a displayed tile, removing it from memory forever and
          ever.  If the tile is not closed it first closes it via a call to
          wn_closet.  See wn_closet for additional information.
          wn_closet       wn_closet                            
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          BAD_TILE_HANDLE          Tile_handle de-references to NULL.  It
                                   was probably not initialized via
                                   wn_createt, but may have been corrupted.
          
          CANT_CLOSE_LAST_TILE     Every window must have at least one
                                   tile.  So, you can't close the last
                                   remaining tile.
          
          OK                       No errors.






















                                       - 71 -





          WindowPro v. 1.51                                Reference Manual



          5.15  wn_delrng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_delrng(handle1, handle2)
          
          unsigned handle1, handle2;
          
          
          Description
          
          Deletes a range of windows, removing it from memory forever and
          ever.  If the window is not closed it first closes it via a call
          to wn_closew.  See wn_closew for additional information.
             wn_closew       wn_closew                            
          
          
          Returns
          
          BAD_WDW_HANDLE           handle1 or handle2 de-references to
                                   NULL.  It was probably not initialized
                                   via wn_createw, but may have been
                                   corrupted.
          
          OK                       No errors.






























                                       - 72 -





          WindowPro v. 1.51                                Reference Manual



          5.16  wn_delw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_delw(handle)
          
          unsigned handle;
          
          
          Description
          
          Deletes a displayed window, removing it from memory forever and
          ever.  If the window is not closed it first closes it via a call
          to wn_closew.  See wn_closew for additional information.
             wn_closew       wn_closew                            
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          OK                       No errors.































                                       - 73 -





          WindowPro v. 1.51                                Reference Manual



          5.17  wn_draww
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_draww(handle)
          
          unsigned handle;
          
          
          Description
          
          Redraws the window on the physical screen.
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          NOT_DONE                 Window was designated as hidden.
          
          OK                       No errors.































                                       - 74 -





          WindowPro v. 1.51                                Reference Manual



          5.18  wn_draww_on_vs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_draww_on_vs(sh, th, tt)
          unsigned int sh, th;
          unsigned char tt;
          
          
          Description
          
          Draws the window, designated by its handle, sh, on the virtual
          screen designated by the window and tile handles, th, tt.
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          OK                       No errors.
































                                       - 75 -





          WindowPro v. 1.51                                Reference Manual



          5.19  wn_edlin
          
          Summary
          
          #include "pro.h"
          #include "xcodes.h"
          
          int wn_edlin(handle, tile_handle, txt, start_char, maxdisplen, 
               maxactlen, cursor, x, y, fg, bg, cmds)
          
          unsigned handle;
          unsigned char tile_handle, fg, bg;
          char **txt, start_char;
          int maxdisplen, maxactlen, cursor, x, y, *cmds;
          
          
          int default_ed_cmds[19] = {XENTER, XMINUS, XRIGHT, XLEFT, 
               XCTRLRIGHT, XCTRLLEFT, XHOME, XEND, XESC, XDELETE, 
               XBACKSPACE, XPLUS, -2 , -3, -1, -1, -1, -1, -1};
          
          
          
          Description
          
          A tile-oriented line editor, has word right, word left, home,
          end, delete char functions, etc.
          
          txt                 A pointer to a pointer to a dynamically
                              allocated string.  If the editing is accepted
                              the previous the memory used by this string
                              is automatically freed and the string pointer
                              is set to the edited string.
          
          start_char          If the user is replacing the current string,
                              you can supply the first letter of the string
                              via this parameter, i.e. if an alpha
                              character indicates to replace the current
                              string you can sense the alpha char in your
                              application and then pass it along to
                              wn_edlin.
          
          maxdisplen          number of columns in the edit area.
          
          maxactlen           Number of maximum characters in a response.
          
          cursor              position of the cursor on starting wn_edlin.
                              0 is the first character in the string. 
                              Generally used if you click on something with
                              a mouse and then want to edit that "thing"
                              starting at the position of the mouse cursor.
          
          x, y                logical coordinates of the start of the edit
                              area. 
          



                                       - 76 -





          WindowPro v. 1.51                                Reference Manual



          fg, bg              the attribute to use on the characters while
                              editing the string.
          
          default_ed_cmds     Set this pointer to an array of extended
                              keyboard codes (see explanation at kb_getxc,)
                              where the position in the array relates to
                              the following operations:
          
                              0    Confirm
                              1    Ascend
                              2    Character Right
                              3    Character Left
                              4    Word Right
                              5    Word Left
                              6    Home
                              7    End
                              8    Abort
                              9    Delete current character
                              10   Delete character to the left
                              11   Descend
                              12   Used internally, must be a -2
                              13   Used internally, must be a -3
                              14   Exit with specail code 1
                              15   Exit with special code 2
                              16   Exit with special code 3
                              17   Exit with special code 4
                              18   Exit with special code 5
          
          
          Returns
          
          1                   User aborted, edited string is freed, and
                              pointer to original string is returned.
          
          2                   User confirmed, returns pointer to the edited
                              string and the original string is freed.
          
          3                   User ascended, edited string is freed, and
                              poitner to original string is returned.
          
          4                   User descended, returns pointer to edited
                              string, and the original string is freed.
          
          5                   User clicked the mouse outside of the edlin
                              editing area, returns pointer to edited
                              string and original string is freed.
          
          10-14               User pressed the key attached to special
                              operations 1-5 (For application programmer
                              defined commands, like MENU, etc.)  Returns
                              pointer to the edited string and frees the
                              original string.





                                       - 77 -





          WindowPro v. 1.51                                Reference Manual



          5.20  wn_flybox
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_flybox(bx, by, br, bc, ex, ey, er, ec, granularity, 
               speed, boxchars, foreground, background)
          
          int bx, by, br, bc, ex, ey, er, ec;
          unsigned granularity, speed;
          char *boxchars;
          unsigned char foreground, background;
          
          
          Description
          
          Draws boxes and erases them.  Use this function to give the
          illusion of exploding/imploding boxes, or (a la Framework) boxes
          which emerge from a point on the screen.
          
          The first box drawn places its upper left corner at the physical
          coordinate (bx, by) and has inner dimensions of br rows and bc
                      bx  by                              br          bc
          columns and has the color foreground, background.  This box is
                                    foreground  background              
          left on the screen for the duration of 'speed' IBM-PC clock tick
                                                 'speed                   
          interrupts (about 18 per second.)  This box is then erased. 
          'granularity' additional boxes will each be drawn and erased in
          'granularity                                                   
          the same manner, with each progressing incrementally towards the
          ending dimensions (ex, ey, er, ec).
                             ex  ey  er  ec  
          
          No error checking is performed on the validity of the box
          dimensions.  If the dimensions are outside of the physical screen
          it will cause unpredictable side effects.
          
          
          Returns
          
          None.


















                                       - 78 -





          WindowPro v. 1.51                                Reference Manual



          5.21  wn_freeze
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_freeze(void)
          
          
          Description
          
          Freezes the entire screen.  No windows or virtual screen commands
          are displayed on the physical screen.  A call to wn_defrost will
                                                           wn defrost     
          update the screen for any commands executed since the call to
          wn_freeze.
          wn freeze 
          
          
          Returns
          
          None.




































                                       - 79 -





          WindowPro v. 1.51                                Reference Manual



          5.22  wn_hidecur
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_hidecur(void)
          
          
          Description
          
          Changes the IBM-PC cursor to a non-viewable shape, and sets the
          global variable cursor_on to FALSE.
                          cursor on    FALSE 
          
          
          Returns
          
          None. 






































                                       - 80 -





          WindowPro v. 1.51                                Reference Manual



          5.23  wn_hidew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_hidew(handle)
          
          unsigned handle;
          
          
          Description
          
          Designates a displayed window as hidden.  A hidden window retains
          its position in the display list, but is not seen on the screen. 
          If the window is already hidden, it is redisplayed.
          
          
          Returns
          
          BAD_WDW_HANDLE           Handle de-references to NULL.  It was
                                   probably not initialized via wn_createw,
                                   but may have been corrupted.
          
          OK                       No errors.































                                       - 81 -





          WindowPro v. 1.51                                Reference Manual



          5.24  wn_init
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_init(void)
          
          
          Description
          
          Initializes various global variables.  
          
          Initializes an array of window handle variables (the global
          integer array window[].)  With source code you can set this array
          to any size you like.  Without source you are limited to 256.
          
          Determines if the video card is set in a 40 or 80 column mode and
          initializes a screen buffer of the appropriate size.  It is not
          possible to sense the 43 line mode but by setting the global
          variable ega_mlines to 43.  It will still sense the video card
          but if it determines that it is an 80 column mode it will assume
          it to be of ega_mlines rows.
          
          Initializes a pointer to video memory (set to the video page
          which was active when wn_init was called.)  Differentiates
                                wn_init                             
          between MONO, CGA, and EGA cards.
          
          If in BIOS or DMA screen updating mode saves the screen as it
          currently appears and uses it as a background for all windowing
          activity.
          
          If in ANSI screen updating mode initializes the character
          attributes to white on black.
          
          
          Returns
          
          OUT_OF_MEMORY            Not enough memory to initialize the
                                   screen buffers.
          
          OK                       No errors.














                                       - 82 -





          WindowPro v. 1.51                                Reference Manual



          5.25  wn_ison*
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_isonwdw(x, y, rhandle)
          
          unsigned x, y, *rhandle;
          
          
          Description
          
          Determines if the point x, y on the physical screen (the upper
                                  x  y                                  
          left corner is considered to be 1,1) is on top of a window.  If
          it is rhandle returns the window handle.
                rhandle                           
          
          
          Returns
          
          TRUE                The physical screen point x, y is on a
                              window.
          
          FALSE               The physical screen point x, y is not on a
                              window.
          
          
          5.25.1   wn_isonhbar
          
          wn_isonhbar(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          horizontal bar of the tile (handle, tile_handle).
                                      handle  tile_handle  
          
          
          5.25.2   wn_isonlbar
          
          wn_isonlbar(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          lower horizontal bar of the window (handle.)
                                              handle  










                                       - 83 -





          WindowPro v. 1.51                                Reference Manual



          5.25.3   wn_isonlelb
          
          wn_isonlelb(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          left elbow of the tile (handle, tile_handle).
                                  handle  tile_handle  
          
          
          5.25.4   wn_isonllc
          
          wn_isonllc(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          lower left corner of the window (handle.)
                                           handle  
          
          
          5.25.5   wn_isonlrc
          
          wn_isonlrc(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          lower right corner of the window (handle.)
                                            handle  
          
          
          5.25.6   wn_isonnamet
          
          wn_isonnamet(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          name of the tile (handle, tile_handle).
                            handle, tile_handle) 
          
          
          5.25.7   wn_isonnamew
          
          wn_isonnamew(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          name of the window (handle).
                              handle  







                                       - 84 -





          WindowPro v. 1.51                                Reference Manual



          5.25.8   wn_isonrelb
          
          wn_isonrelb(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          right elbow the tile (handle, tile_handle).
                                handle  tile_handle  
          
          
          5.25.9   wn_isonsbd
          
          wn_isonsbd(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          down scroll bar indicator of the tile (handle, tile_handle).
                                                 handle  tile_handle  
          
          
          5.25.10  wn_isonsbl
          
          wn_isonsbl(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          left scroll bar indicator of the tile (handle, tile_handle).
                                                 handle  tile_handle  
          
          
          5.25.11  wn_isonsbr
          
          wn_isonsbr(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          right scroll bar indicator of the tile (handle, tile_handle).
                                                  handle  tile_handle  
          
          
          5.25.12  wn_isonsbu
          
          wn_isonsbu(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the up
                  TRUE                                    x y              
          scroll bar indicator of the tile (handle, tile_handle).
                                            handle  tile_handle  




                                       - 85 -





          WindowPro v. 1.51                                Reference Manual



          5.25.13  wn_isontile
          
          wn_isontile(handle, rhandle, x, y)
          
          unsigned handle, x, y;
          unsigned char *rhandle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          window (handle), and returns the value of the particular tile it
                  handle                                                  
          is on in rhandle.
                   rhandle 
          
          
          5.25.14  wn_isonubar
          
          wn_isonubar(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          upper horizontal bar of the window (handle.)
                                              handle  
          
          
          5.25.15  wn_isonulc
          
          wn_isonulc(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          upper left corner of the window (handle.)
                                           handle  
          
          
          5.25.16  wn_isonurc
          
          wn_isonurc(handle, x, y)
          
          unsigned handle, x, y;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          upper right corner of the window (handle.)
                                            handle  
          
          
          5.25.17  wn_isonvlbar
          
          wn_isonvlbar(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          vertical left bar of the tile (handle, tile_handle).
                                         handle  tile_handle  






                                       - 86 -





          WindowPro v. 1.51                                Reference Manual



          5.25.18  wn_isonvrbar
          
          wn_isonvrbar(handle, tile_handle, x, y)
          
          unsigned handle, x, y;
          unsigned char tile_handle;
          
          Returns TRUE if the physical screen coordinate (x,y) is on the
                  TRUE                                    x y           
          vertical right bar of the tile (handle, tile_handle).
                                          handle  tile_handle  
          
          
          5.25.19  wn_isonvs
          
          int wn_isonvs(handle, tile_handle, x, y)
          
          unsigned handle, *x, *y;
          unsigned char tile_handle;
          
          determines if a physical screen coordinate (x,y) is on the
                                                      x y           
          virtual screen (handle, tile_handle).  If wn_isonvs returns TRUE
                                                    wn_isonvs         TRUE
          it is and the physical coordinates (x,y) are transformed into
                                              x y                      
          virtual screen logical coordinates 
          
          
          5.25.20  wn_isonvtw
          
          int wn_isonvvtw(handle, tile_handle, x, y)
          
          unsigned handle, *x, *y;
          unsigned char tile_handle;
          
          determines if a physical screen coordinate (x,y) is on the
                                                      x y           
          vertical thumbwheel of the tile (handle, tile_handle).
          
          
          5.25.21  wn_isonhtw
          
          int wn_isonvvtw(handle, tile_handle, x, y)
          
          unsigned handle, *x, *y;
          unsigned char tile_handle;
          
          determines if a physical screen coordinate (x,y) is on the
                                                      x y           
          horizontal thumbwheel of the tile (handle, tile_handle).













                                       - 87 -





          WindowPro v. 1.51                                Reference Manual



          5.25.22  wn_whereon
          
          wn_whereon(rhandle, rtile_handle, x, y)
          
          unsigned *rhandle, *x, *y;
          unsigned char *tile_handle;
          
          Returns 0 if the physical coordinate (x,y) is not on any window.
          Otherwise it returns the handle of the window in rhandle and the
          handle of the tile in rtile_handle.  The return value corresponds
          to these parts of a window.
          
          1         Is on the upper left corner of a window
          2         Is on the upper right corner of a window
          3         Is on the lower right corner of a window
          4         Is on the lower left corner of a window
          5         Is on the name of a window
          6         Is on the upper horizontal bar of a window
          7         Is on the name of a tile
          8         Is on the horizontal bar of a tile
          9         Is on the vertical right bar of a tile
          10        Is on the vertical left bar of a tile
          11        Is on the scroll bar up indicator of a tile
          12        Is on the scroll bar down indicator of a tile
          13        Is on the scroll bar left indicator of a tile
          14        Is on the scroll bar right indicator of a tile
          15        Is on the left elbow of a tile
          16        Is on the right elbow of a tile
          17        Is on the virtual screen of a tile (in this case the
                    physical coordinates (x,y) are also transformed in
                    logical tile coordinates.
          18        Is on the vertical thumbwheel of a tile.
          19        Is on the horizontal thumbwheel of a tile.
























                                       - 88 -





          WindowPro v. 1.51                                Reference Manual



          5.26  wn_locatetwabs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_locatetwabs(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          unsigned x, y;
          
          
          Description
          
          Moves the horizontal and/or vertical thumbwheels to the character
          positions at x (for horizontal) character columns and y (for
          vertical) character rows.  The first position is the 0th
          position.  The maximum x position is port_columns - 2.  The
          maximum y position is port_rows - 2.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.























                                       - 89 -





          WindowPro v. 1.51                                Reference Manual



          5.27  wn_locatetwrel
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_locatetwrel(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          float x, y;
          
          
          
          Description
          
          Moves the horizontal and/or vertical thumbwheels to the character
          positions at x percentage  (for horizontal) character columns and
          y percentage (for vertical) character rows.  The minimum
          percentage position is 0 and the maximum is 1.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.























                                       - 90 -





          WindowPro v. 1.51                                Reference Manual



          5.28  wn_locatevs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_locatevs(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          int x, y;
          
          
          Description
          
          Changes the portion of the virtual screen viewed through the tile
          (handle, tile_handle.)  the 'viewport' is positioned so that the
          tile coordinate (x,y) is in the upper left corner of the
          viewport.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  One was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          MODIFIED            The operation was performed but x or y had to
                              be modified to keep the viewport entirely
                              within the virtual screen.
          
          OK                  No errors detected.
























                                       - 91 -





          WindowPro v. 1.51                                Reference Manual



          5.29  wn_locatew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_locatew(handle, x, y)
          
          unsigned handle;
          signed int x, y;
          
          
          Description
          
          Moves the upper left corner of a window to the absolute position
          defined by x, y.
                     x, y 
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL. 
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          MODIFIED            Operation was performed but parameter x or y
                              had to be modified in order to keep the
                              window positioned completely on the physical
                              screen.
          
          OK                  No errors detected.


























                                       - 92 -





          WindowPro v. 1.51                                Reference Manual



          5.30  wn_moverng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_moverng(handle1, handle2, x, y)
          
          unsigned handle1, handle2;
          signed int x, y;
          
          
          Description
          
          Moves a range of windows from their current position to the
          position y rows above if positive and below if negative and x
          rows to the right if positive and to the left if negative.
          
          The operation begins with handle1 and progresses towards the top
          of the display list until handle2 is reached or the top of the
          display list, whichever comes first.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL. 
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          MODIFIED            Operation was performed but parameter x or y
                              had to be modified (for one or more windows)
                              in order to keep the window positioned
                              completely on the physical screen.
          
          OK                  No errors detected.





















                                       - 93 -





          WindowPro v. 1.51                                Reference Manual



          5.31  wn_movetwabs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_movetwabs(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          signed int x, y;
          
          
          
          Description
          
          Moves the horizontal and/or vertical thumbwheels, x (for
          horizontal) absolute character columns left (-) or right (+), and
          y (for vertical) absolute character rows up (-) or down (+).
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.
























                                       - 94 -





          WindowPro v. 1.51                                Reference Manual



          5.32  wn_movetwrel
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_movetwrel(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          float x, y;
          
          
          
          Description
          
          Moves the horizontal and/or vertical thumbwheels, x percentage 
          (for horizontal) character columns left (-) or right (+), and y
          percentage (for vertical) character rows up (-) or down (+).
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.
























                                       - 95 -





          WindowPro v. 1.51                                Reference Manual



          5.33  wn_movew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_movew(handle, x, y)
          
          unsigned handle;
          signed int x, y;
          
          
          Description
          
          Moves a window from its current position to the position y rows
          above if y is positive and below if y is negative and x rows to
          the right of its position if x is positive and to the left if
          negative.
          
          If the window is designated as the active window it is first
          unzoomed before moving it.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          MODIFIED            Operation was performed but parameter x or y
                              had to be modified in order to keep the
                              window positioned completely on the physical
                              screen.
          
          OK                  No errors detected.





















                                       - 96 -





          WindowPro v. 1.51                                Reference Manual



          5.34  wn_namet
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_namew(handle, tile_handle, new_name)
          
          unsigned handle;
          unsigned char tile_handle;
          char *new_name;
          
          
          Description
          
          Changes the name of a tile to the string pointed to by new_name. 
                                                                 new_name  
          If new_name is NULL no name is displayed.  Tile names are
             new_name                                              
          displayed in the center of the border just below the tile.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.

























                                       - 97 -





          WindowPro v. 1.51                                Reference Manual



          5.35  wn_namew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_namew(handle, new_name)
          
          unsigned handle;
          char *new_name;
          
          
          Description
          
          Changes the name of a window to the string pointed to by
          new_name.  If new_name is NULL no name is displayed.  Window
          new_name      new_name                                      
          names are displayed in the upper left border of a window.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          OK                  No errors detected.






























                                       - 98 -





          WindowPro v. 1.51                                Reference Manual



          5.36  wn_openabst
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_openabst(handle, tile_handle, rows)
          
          unsigned handle, rows;
          unsigned char tile_handle;
          
          
          Description
          
          Splits the active tile in the window (handle) into two pieces. 
                                                handle                   
          Assigns the lower half to the new tile (tile_handle) and the
                                                  tile_handle         
          upper half to the active tile.  The new tile has has rows number
          of rows.
          
          If any window is zoomed it is un-zoomed.
          
          If the tile being opened was already opened it is first closed,
          via a call to wn_closet.  See wn_closet for an explanation of how
                        wn_closet       wn_closet                          
          the space is reclaimed on closing.
          
          
          Returns
          
          BAD_WDW_HANDLE      handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          NO_ACTIVE_TILE      No tile in the display is designated as
                              active.  This cannot happen if you use the
                              application level functions exclusively.  But
                              could happen if you access the window_rec
                                                             window_rec
                              directly or use the kernel functions.
          
          NO_SPACE            The active_tile was less than rows + 2 rows
                              high.
          
          OK                  No errors detected.










                                       - 99 -





          WindowPro v. 1.51                                Reference Manual



          5.37  wn_openrelt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_openrelt(handle, tile_handle, rows)
          
          unsigned handle;
          unsigned char tile_handle;
          double rows;
          
          
          Description
          
          Splits the active tile in the window (handle) into half.  Assigns
                                                handle                     
          the lower half to the new tile (tile_handle) and the upper half
                                          tile_handle                    
          to the active tile.  The new tile gets rows percent of the active
          tile's rows.
          
          If any window is zoomed it is un-zoomed.
          
          If the tile being opened was already opened it is first closed,
          via a call to wn_closet.  See wn_closet for an explanation of how
                        wn_closet       wn_closet                          
          the space is reclaimed on closing.
          
          
          Returns
          
          BAD_WDW_HANDLE      handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          NO_ACTIVE_TILE      No tile in the display is designated as
                              active.  This cannot happen if you use the
                              application level functions exclusively.  But
                              could happen if you access the window_rec
                                                             window_rec
                              directly or use the kernel functions.
          
          NO_SPACE            The active tile had less than 3 rows
                              available.
          
          OK                  No errors detected.









                                       - 100 -





          WindowPro v. 1.51                                Reference Manual



          5.38  wn_opent
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_opent(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Splits the active tile in the window (handle) into half.  Assigns
                                                handle                     
          the lower half to the new tile (tile_handle) and the upper half
                                          tile_handle                    
          to the active tile.
          
          If any window is zoomed it is un-zoomed.
          
          If the tile being opened was already opened it is first closed,
          via a call to wn_closet.  See wn_closet for an explanation of how
                        wn_closet       wn_closet                          
          the space is reclaimed on closing.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          NO_ACTIVE_TILE      No tile in the display is designated as
                              active.  This cannot happen if you use the
                              application level functions exclusively.  But
                              could happen if you access the window_rec
                                                             window_rec
                              directly or use the kernel functions.
          
          NO_SPACE            The active tile was less than 3 rows high.
          
          OK                  No errors detected.












                                       - 101 -





          WindowPro v. 1.51                                Reference Manual



          5.39  wn_openw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_openw(handle)
          
          unsigned handle;
          
          
          Description
          
          Permanently places a window on the top of the display list and
          designates it as the active window.  If a window was previously
          active it is reinserted back into its original position in the
          display list.  If the window is already open, it is first closed
          via a call to wn_closew, and then re-opened.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          OK                  No errors detected.





























                                       - 102 -





          WindowPro v. 1.51                                Reference Manual



          5.40  wn_putslist
          
          Summary
          
          #include "pro.h"
          #include "werrors.h"
          
          int wn_putslist(strings, fg, bg, row, column, borders, namew, namet)
          
          unsigned char fg, bg;
          char *strings[], *namew, *namet;
          int row, column, borders;
          
          
          Description
          
          Determines the width and length required for a virtual screen
          which will hold the strings pointed to by the NULL terminated
          list of strings, strings.  Creates a window with a virtual screen
          of the same size and a viewport of the same size and then outputs
          the strings to the virtual screen (tabs, CR/LF, and backspaces
          are not interpreted.)  Returns the handle of the new window.
          
          
          Returns
          
          OUT_OF_MEMORY            Not enough memory to initialize the
                                   window structures.  Try using a smaller
                                   virtual screen.
          
          MAXIMUM_WINDOWS          There are no more window handles left to
                                   allocate.  Try deleting some unused
                                   windows.
          
          new handle               any value equal to or greater than 0 and
                                   less than MAX_WINDOWS is a valid window
                                   handle.




















                                       - 103 -





          WindowPro v. 1.51                                Reference Manual



          5.41  wn_redraw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_redraw(void)
          
          
          Description
          
          Redraws all of the windows on the screen.
          
          
          Returns
          
          None.







































                                       - 104 -





          WindowPro v. 1.51                                Reference Manual



          5.42  wn_restorescr
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_restorescr(void)
          
          
          Description
          
          This function writes the information pointed to by the global
          variable screen_buffer to the physical screen.  This is typically
                   screen buffer                                           
          used to restore a screen after some kind of pop-up utility.  If
          screen_buffer is NULL it does nothing.
          screen buffer                         
          
          
          Returns
          
          None.




































                                       - 105 -





          WindowPro v. 1.51                                Reference Manual



          5.43  wn_savescr
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_savescr(void)
          
          
          Description
          
          This function copies the entire physical screen to an area
          pointed to by the global variable screen_buffer.  This saved
                                            screen buffer             
          screen is always used as the backdrop for all windowing
          activity.  Anything written directly to the screen will not be
          saved unless you call wn_savescr.  This function does nothing
                                wn savescr                             
          under the ANSI method.
          
          
          Returns
          
          None.


































                                       - 106 -





          WindowPro v. 1.51                                Reference Manual



          5.44  wn_scrollvs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_scrollvs(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          int x, y;
          
          
          Description
          
          Changes the portion of the virtual screen viewed through the tile
          (handle, tile_handle.)  the 'viewport' is scrolled up(-) or
          down(+) y rows, and left(+) or right(-) x rows.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  One was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          MODIFIED            The operation was performed but x or y had to
                              be modified to keep the viewport entirely
                              within the virtual screen.
          
          OK                  No errors detected.

























                                       - 107 -





          WindowPro v. 1.51                                Reference Manual



          5.45  wn_showcur
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          void wn_showcur(void)
          
          
          Description
          
          Changes the IBM-PC cursor to the shape defined by the global
          variables cursor_e (ending scan line) and cursor_b (beginning
                    cursor e                        cursor b           
          scan line) and sets the global variable curson_on to TRUE.
                                                  curson on    TRUE 
          
          
          Returns
          
          None.





































                                       - 108 -





          WindowPro v. 1.51                                Reference Manual



          5.46  wn_sizerng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_sizerng(handle1, handle2, x, y)
          
          unsigned handle1, handle2;
          signed int x, y;
          
          
          Description
          
          Increments the sizes of a range of windows by x columns and y
          rows.  Only the last tile is incremented row wise.  All tiles are
          incremented column wise.
          
          The operation begins with handle1 and progresses towards the top
          of the display list until handle2 is reached or the top of the
          display list, whichever comes first.
          
          If any window was zoomed it is unzoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL. 
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          MODIFIED            Operation was performed but parameter x or y
                              had to be modified (for one or more windows)
                              in order to keep the window positioned
                              completely on the physical screen.
          
          OK                  No errors detected.



















                                       - 109 -





          WindowPro v. 1.51                                Reference Manual



          5.47  wn_sizet
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_sizerng(handle, tile_handle, x, y)
          
          unsigned handle;
          unsigned char tile_handle;
          signed int x, y;
          
          
          Description
          
          Increments the size of a tile (handle, tile_handle)  by x columns
          and y rows.  tiles are incremented column wise.  The designated
          tile is incremented row wise.  The tile below the designated tile
          is decreased in size.  If no tile is below the designated tile
          (i.e. if it is the last tile) the window is increased in size.
          
          This operation does not check to make sure that the resulting
          viewport stays within the virtual screen.  If the viewport
          extends beyond the virtual screen those corresponding areas in
          the tile will display 'garbage'.
          
          If any window was zoomed it is unzoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          MODIFIED            Operation was performed but parameter x or y
                              had to be modified (for one or more windows)
                              in order to keep the window positioned
                              completely on the physical screen.
          
          OK                  No errors detected.















                                       - 110 -





          WindowPro v. 1.51                                Reference Manual



          5.48  wn_suspendt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_suspendt(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Freezes a tile.  Any changes made to the tile name, or the
          position or contents of a virtual screen are not reflected on the
          physical screen.  Currently, this does not work reliably on any
          which partially obscures another window.
          
          If the tile is already 'suspended' it 'un-suspends' it and
          updates the physical screen.
          
          
          Returns
          
          BAD_WDW_HANDLE      The handle passed de-references to NULL, it
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     The tile_handle passed de-references to NULL,
                              it was probably not properly initialized via
                              a call to wn_createt, but may also have been
                              corrupted.
          
          OK                  No errors detected.





















                                       - 111 -





          WindowPro v. 1.51                                Reference Manual



          5.49  wn_suspendw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_suspendw(handle)
          
          unsigned handle;
          
          
          Description
          
          Freezes a window.  Any changes made to the window borders, the
          tile names, the size, position, or contents of a virtual screen
          are not reflected on the physical screen.  This does not work
          reliably on any window which partially obscures another window,
          or if a move or size operation is performed.
          
          If the window is already 'suspended' it 'un-suspends'it and
          updates the physical screen.
          
          
          Returns
          
          BAD_WDW_HANDLE      The window handle dereferences to NULL.  It
                              was most likely not initialized via
                              wn_createw or has been corrupted.
          
          OK                  No errors.


























                                       - 112 -





          WindowPro v. 1.51                                Reference Manual



          5.50  wn_swapt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_swapt(handle1, tile_handle1, handle2, tile_handle2)
          
          unsigned handle1, handle2;
          unsigned char tile_handle1, tile_handle2;
          
          
          Description
          
          Swaps the names and virtual screens of two tiles.  If any window
          is currently zoomed it is unzoomed.  Checks to make sure that the
          new viewports are completely filled by the virtual screens, if
          not it first attempts to readjust the virtual screen and then
          resizes the viewport if necessary.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL, one
                              was probably not initialized via wn_createw,
                              but may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle1 or tile_handle2 de-references to
                              NULL, one was probably not properly
                              initialized via a call to wn_createt, but may
                              also have been corrupted.
          
          MODIFIED            Either a virtual screen was moved, or
                              viewport resized to keep all viewports filled
                              with virtual screen data.
          
          OK                  No errors detected.



















                                       - 113 -





          WindowPro v. 1.51                                Reference Manual



          5.51  wn_swapt2
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_swapt2(handle, tile_handle1, tile_handle2)
          
          unsigned handle;
          unsigned char tile_handle1, tile_handle2;
          
          
          Description
          
          Swaps the positions of the tile_handle1 and tile_handle2 in the
          window's display list.
          
          
          Returns
          
          BAD_WDW_HANDLE      handle de-references to NULL, it was probably
                              not initialized via wn_createw, but may have
                              been corrupted.
          
          BAD_TILE_HANDLE     tile_handle1 or tile_handle2 de-references to
                              NULL, one was probably not properly
                              initialized via a call to wn_createt, but may
                              also have been corrupted.
          
          OK                  No errors detected.


























                                       - 114 -





          WindowPro v. 1.51                                Reference Manual



          5.52  wn_sync_tw_to_vs
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_sync_tw_to_vs(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Positions the thumbwheels to equate to the same relative position
          as the virtual screen within the viewport.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.



























                                       - 115 -





          WindowPro v. 1.51                                Reference Manual



          5.53  wn_sync_vs_to_tw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_sync_vs_to_tw(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Positions the virtual screen to equate to the same relative
          position as the thumbwheels.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.



























                                       - 116 -





          WindowPro v. 1.51                                Reference Manual



          5.54  wn_togborder
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togborder(handle, border_type)
          
          unsigned handle;
          unsigned char border_type;
          
          
          Description
          
          Changes the border style of a window.  The styles are defined in
          "pro.h"  The effect of each style is:
          
          UPPER_LEFT          Only the upper and left sides of the border
                              are displayed.  If the borders characters are
                              defined as a block-style character this
                              produces a shadow effect.
          
          UPPER_RIGHT         Only the upper and right sides of the border
                              are displayed.
          
          LOWER_LEFT          Only the lower and left sides of the border
                              are displayed.
          
          LOWER_RIGHT         Only the lower and right side of the border
                              are displayed.
          
          HEAD_ON             All of the border characters are displayed. 
                              This is the default.
          
          NONE                None of the border characters are displayed
                              and all tiles are increased in width by two
                              characters (taking over the border area) the
                              first tile in the window is increased in
                              height by 2 rows all others are increased in
                              height by 1 row.
          
          
          Any zoomed windows are un-zoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          OK                  No errors detected.




                                       - 117 -





          WindowPro v. 1.51                                Reference Manual



          5.55  wn_togbordrng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togbordrng(handle1, handle2, border_type)
          
          unsigned handle1, handle2;
          unsigned char border_type;
          
          
          Description
          
          Identical to wn_togborder, but operates on a range of windows. 
                       wn_togborder                                      
          The operation begins at handle1 and progresses towards the top of
                                  handle1                                  
          the display list, stopping at handle2 or the top of the list,
                                        handle2                        
          whichever comes first.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1, or handle2, de-references to NULL. 
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          OK                  No errors detected.





























                                       - 118 -





          WindowPro v. 1.51                                Reference Manual



          5.56  wn_togscroll
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togscroll(handle, tile_handle, scroll_bars)
          
          unsigned handle;
          unsigned char tile_handle, scroll_bars;
          
          
          Description
          
          Turns the scroll bar character display on or off for a single
          tile.  The legal values NO_BARS, BOTH_BARS, VERTICAL_BAR, and
          HORIZONTAL_BAR are defined in PRO.H.
          
          If any window is zoomed it is un-zoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.
























                                       - 119 -





          WindowPro v. 1.51                                Reference Manual



          5.57  wn_togscrollallt
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togscrollallt(handle, scroll_bars)
          
          unsigned handle;
          unsigned char scroll_bars;
          
          
          Description
          
          Turns the scroll bar character display on or off for all tiles in
          the window (handle)  If scroll_bars is TRUE they are turned on;
                      handle      scroll_bars    TRUE                    
          if scroll_bars is FALSE they are turned off.
             scroll_bars    FALSE                     
          
          If any window is zoomed it is un-zoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          OK                  No errors detected.




























                                       - 120 -





          WindowPro v. 1.51                                Reference Manual



          5.58  wn_togscrollrng
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togscrollrng(handle1, handle2, scroll_bars)
          
          unsigned handle1, handle2;
          unsigned char scroll_bars;
          
          
          Description
          
          Turns the scroll bar character display on or off for all windows
          in the range (handle1, handle2.)  If scroll_bars is TRUE they are
                        handle1  handle2       scroll_bars    TRUE         
          turned on; if scroll_bars is FALSE they are turned off.
                        scroll_bars    FALSE                     
          
          If any window is zoomed it is un-zoomed.
          
          The operation begins at handle1 and progresses towards the top of
          the display list until it reaches handle2 or the top of the
          display list.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle1 or handle2 de-references to NULL. 
                              One was probably not initialized via
                              wn_createw, but may have been corrupted.
          
          OK                  No errors detected.
























                                       - 121 -





          WindowPro v. 1.51                                Reference Manual



          5.59  wn_togthumb
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_togthumb(handle, tile_handle, thumbwheels)
          
          unsigned handle;
          unsigned char tile_handle, thumbwheels;
          
          
          Description
          
          Turns the thumbwheel character display on or off for a single
          tile.  The legal values NO_BARS, BOTH_BARS, VERTICAL_BAR, and
          HORIZONTAL_BAR are defined in PRO.H.
          
          If any window is zoomed it is un-zoomed.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          OK                  No errors detected.
























                                       - 122 -





          WindowPro v. 1.51                                Reference Manual



          5.60  wn_updatet
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_updatet(handle, tile_handle)
          
          unsigned handle;
          unsigned char tile_handle;
          
          
          Description
          
          Updates the virtual screen defined by {handle, tile_handle} to
          the physical screen.  Regardless of whether or not the tile is
          suspended.  Useful for selectively updating suspended tiles.
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          BAD_TILE_HANDLE     Tile_handle de-references to NULL.  It was
                              probably not initialized via wn_createt, but
                              may have been corrupted.
          
          NOT_DONE            Tile is designated as hidden.
          
          OK                  No errors detected.
























                                       - 123 -





          WindowPro v. 1.51                                Reference Manual



          5.61  wn_updatew
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_updatew(handle)
          
          unsigned handle;
          
          
          Description
          
          Updates the window defined by handle to the physical screen.
                                        handle                        
          
          
          Returns
          
          BAD_WDW_HANDLE      Handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          NOT_DONE            window is designated as hidden, or suspended.
          
          OK                  No errors detected.































                                       - 124 -





          WindowPro v. 1.51                                Reference Manual



          5.62  wn_zoomw
          
          Summary
          
          #include "werrors.h"
          #include "pro.h"
          
          int wn_zoomw(void)
          
          
          Description
          
          Zooms the active window to full screen size.  A subsequent call
          to wn_zoomw will shrink it back to its original size.
          
          
          Returns
          
          NO_ACTIVE_WDW       No active window is designated or the active
                              window handle de-references to NULL.  It was
                              probably not initialized via wn_createw, but
                              may have been corrupted.
          
          NO_ACTIVE_TILE      No active tile is designated or the active
                              tile handle de-references to NULL.
          
          OK                  No errors detected.






























                                       - 125 -





          WindowPro v. 1.51                                Reference Manual



          6  Global Variables and Data Structures
          
          6.1   active_attr, inactive_attr
          
          When a window is activated (see wn_actw for further explanation)
                                          wn actw                         
          its border colors are set to the value of active_attr and the
                                                    active attr        
          previously active window's border colors are set to the value of
          inactive_attr.  Also, when a window is first created its border
          inactive attr                                                  
          colors are set to the value of inactive_attr.
                                         inactive attr 
          
          
          6.2   active_tile_attr, inactive_tile_attr
          
          When a tile is activated its name color is set to the value of
          active_tile_attr and the previously active tile's name color is
          active tile attr                                               
          set to the value of inactive_tile_attr.
                              inactive tile attr 
          
          
          6.3   active_wdw
          
          active_wdw is equal to the handle of the window designated as the
          active wdw                                                       
          active window.  See the Overview and wn_actw for additional
                                               wn actw               
          explanation regarding the significance of the active window
          designation.
          
          
          6.4   ansi_fcolor_table, ansi_fcolor_table
          
          After foreground and background are converted to the values based
          on their offsets into the ibm_fcolor_table and ibm_bcolor_table,
                                    ibm fcolor table     ibm bcolor table 
          the ANSI colors are converted to their respected values by using
          the converted foreground and background colors as offsets into
          the 16 element char * arrays ansi_fcolor_table and
                                       ansi fcolor table    
          ansi_bcolor_table.  These strings are then used to change the
          ansi bcolor table                                            
          default output color of the terminal.  This is helpful for
          creating terminal specific versions.  
          
          
          6.5   balance1
          
          balance1 is incremented for every call to the WindowPro memory
          balance1                                                      
          allocation function and decremented for every call to the
          WindowPro free memory function.  Used in debugging to determine
          that no bits and pieces of stuff have been left around.
          
          
          6.6   blkrec
          
          typedef struct {
               unsigned x, y, rows, columns;
               char far *buffer;
          } blkrec;
          




                                       - 126 -





          WindowPro v. 1.51                                Reference Manual



          The active window keeps a copy of the image underneath it in this
          form.
          
          x,y            the physical screen coordinate where the image is
                         located.
          
          rows, columns  the dimensions of the image.
          
          buffer         a pointer to the image.
          
          
          6.7   buf[]
          
          Initialized to point to a 1000 byte area use as working space by
          wn_printf.  If this isn't enough space set the pointer to a
          wn printf                                                  
          larger area.
          
          
          6.8   cursor_e, cursor_b, cursor_on
          
          WindowPro hides the cursor when performing certain functions by
          changing the cursor's shape.  It restores the cursor's shape
          using cursor_e and cursor_b as the ending and beginning scan line
                cursor e     cursor b                                      
          values.
          
          If cursor_on is FALSE the cursor is not restored automatically as
             cursor on                                                     
          described above.  cursor_on is modified by calls to wn_hidecur
                                                              wn hidecur
          and wn_showcur.
              wn showcur 
          
          
          6.9   cursor_position, change_color
          
          position_cursor is a printf-type string constant that is used to
          position the cursor when method = ANSI.  Upon initialization it
          is set to this:
          
               position_cursor = "\033[%d;%dH"
          
          If you want to change it you can do it at any time.  However, if
          using the ANSI method and the above is not the correct string for
          your terminal you should change it before calling wn_init.  The
          first %d must correspond the x coordinate and the second to the y
          coordinate.
          
          change_color is a printf-type string constant that is used to
          change the the color of the next character to be printed when
          method = ANSI.  Upon initialization it is set to this
          
               change_color = "\033[%s;%sm"
          







                                       - 127 -





          WindowPro v. 1.51                                Reference Manual



          You can change it at any time.  However, if using the ANSI method
          and the above is not the correct string for your terminal you
          should modify it before calling wn_init.  The first %s
          corresponds to the foreground color string and the second to the
          background color.
          
          
          6.10  default_box, box0, box1, box2, box3, box4
          
          default_box is a char pointer to an array of 13 chars.  The array
          default box                                                      
          is described in greater detail at wn_togbord.  When a window is
                                            wn togbord                   
          initially created it is assigned the box characters pointed to by
          default_box.
          default box 
          
          box0, box1, box2, box3 and box4 are various styles of box
          box0  box1  box2  box3     box4                          
          characters.  default_box is initially set equal to box0.
                       default box                                
          
          
          6.11  ega_mline
          
          If this global variable is not 0 before calling wn_init.  And
          wn_init determines that it is in an 80 column text mode.  It will
          assume that the display has ega_mlines lines.  Otherwise the
          display is assumed to have 25 lines.
          
          
          6.12  error_flag
          
          If TRUE the WindowPro error handler is invoked on detecting an
          error.  Otherwise error values are returned to the calling
          function.
          
          
          6.13  first_wdw, last_wdw
          
          first_wdw is the first window in the display and designates the
          first wdw                                                      
          window on the bottom.
          
          last_wdw is the last window in the display list and designated
          last wdw                                                      
          the window on the top.
          
          
          6.14  frozen
          
          If TRUE indicates that all screen output is re-routed to the area
          pointed to by alt_scr.
                        alt scr 
          
          
          6.15  ibm_fcolor_table, ibm_bcolor_table
          
          These 16 byte tables correspond to the colors in the file
          colors.h.  All functions requesting a foreground and background
          color use the foreground and background values as offsets into




                                       - 128 -





          WindowPro v. 1.51                                Reference Manual



          these tables (where they get the value they actually use.)  You
          can then easily make programs which modify colors by allowing the
          user to modify these tables.
          
          This can be useful to map colors into other video modes that
          don't support color, like the monochrome display, or some CGA
          cards and monitors don't display some colors clearly (you can
          just use this table to map those colors to ones that do.)
          
          
          6.16  justify
          
          This global variable can be set to LEFT_JUSTIFY, RIGHT_JUSTIFY,
          or CENTER_JUSTIFY.  These values are defined in PRO.H.  This
          variable is used to initialize the window_rec member "justify"
          when the data structure is created via wn_createw.
          
          
          6.17  justify_tile
          
          This global variable can be set to LEFT_JUSTIFY, RIGHT_JUSTIFY,
          or CENTER_JUSTIFY.  These values are defined in PRO.H.  This
          variable is used to initialize the tile_rec member "justify" when
          the data structure is created via wn_createt.
          
          
          6.18  method
          
          method can be set to DMA, BIOS, or ANSI.  See the overview for a
          method               DMA  BIOS     ANSI                         
          discussion of the various screen update methods.  method is
                                                            method   
          initialized to DMA, you can change it during run time to any of
                         DMA                                             
          the 3 supported methods.  If a particular method is not supported
          by your machine you should make sure that it is not set to that
          value before calling wn_init.
                               wn init 
          
          
          6.19  mouse_installed
          
          wn_init sets mouse_installed to TRUE if a Microsoft compatible
          mouse and hardware are available.  Otherwise mouse_installed is
          set to FALSE.
          
          
          6.20  oldx, oldy, oldb, olde
          
          On calling wn_init, oldx and oldy are set to the current cursor
                     wn init  oldx     oldy                              
          position and oldb and olde are set to the starting and ending
                       oldb     olde                                   
          scan line values.  You can use this to restore the cursor to its
          original state on exiting your application.
          
          






                                       - 129 -





          WindowPro v. 1.51                                Reference Manual



          6.21  overlay
          
          This item is a far pointer of type blkrec and holds an image of
                                             blkrec                      
          what is behind the active window (this is why operations on
          active windows are sometimes faster -- because we don't rebuild
          the whole screen, and conversely why operations on background
          windows are sometimes slower.)
          
          
          6.22  physical_columns, physical_rows
          
          physical_columns indicates the number of columns on the physical
          physical columns                                                
          screen.  physical_rows indicates the number of rows on the
                   physical rows                                    
          physical screen.
          
          
          6.23  primary_scr, alt_scr, curr_scr
          
          primary_scr is a far pointer to real video ram area -- it is only
          primary scr                                                      
          important if using the DMA screen update method.
          
          alt_scr is a far pointer to an area of the same size as video ram
          alt scr                                                          
          -- we can build complex screens there and then dump them very
          fast to real video ram.  This is the area where WindowPro sends
          its output when the screen is frozen (See frozen, wn_freeze, and
                                                    frozen  wn freeze     
          wn_defrost for further explanation.)
          wn defrost                          
          
          curr_scr points to where WindowPro is currently sending output. 
          curr scr                                                        
          It is generally set to primary_scr if the system is not frozen
                                 primary scr                            
          and to alt_scr if it is.
                 alt scr          
          
          
          6.24  screen_buffer
          
          a far pointer to where the windows background screen is saved. 
          See wn_savescr and wn_restorescr for further explanation.
              wn savescr     wn restorescr                         
          
          
          6.25  scroll_bars_on
          
          When a tile is created its scroll bars indicator is set to the
          value of scroll_bars_on.  The legal values NO_BARS, BOTH_BARS,
                   scroll bars on                                       
          VERTICAL_BAR, and HORIZONTAL_BAR are defined in PRO.H.
          
          
          6.26  tab_expansion
          
          tab_expansion indicates at what column position tab stops are
          located.  This is used by vs_printf and vs_format for tab
          expansion.  For example, a tab_expansion setting of 8 would
          position tab stops at column 8, 16, 24, and so on.  If
          tab_expansion is set to zero or is larger than the current
          virtual screen there will be unpredictable results.
          



                                       - 130 -





          WindowPro v. 1.51                                Reference Manual



          tab_expansion is set at 10, by default.
          
          
          6.27  thumbwheels_on
          
          When a tile is created its thumbwheels indicator is set to the
          value of thumbwheels_on.  The legal values NO_BARS, BOTH_BARS,
                   thumbwheels on                                       
          VERTICAL_BAR, and HORIZONTAL_BAR are defined in PRO.H.
          
          
          6.28  tile_rec
          
          /* tile record */
          typedef struct {
               char far *virtual_screen, *tile_name, border_color;
               unsigned char forward, backward, scroll_bars, thumbwheels;
               int suspend, hide, port_rows, vs_rows, vs_columns,
                    cursor_x, cursor_y, virtual_x, virtual_y, offset_y;
               float vertical_thumb, horizontal_thumb;
               char justify;
               void *resource;
          } tile_rec;
          
          virtual_screen           pointer to the tile's virtual screen.
          
          tile_name                pointer to the tile's name
          
          border_color             attribute value for the tile's name
          
          forward                  pointer to the tile displayed below this
                                   tile.
          
          backward                 pointer to the tile displayed above this
                                   tile.
          
          scroll_bars              if true the scroll bars are displayed
                                   for this tile.
          
          suspend                  if true most operations on the tile will
                                   not be seen on the physical screen.
          
          hide                     if true the tile is not currently
                                   displayed in its window.
          
          port_rows, port_columns  the inner dimensions of the tile (if
                                   displayed.)
          
          vs_rows, vs_columns      the dimensions of the tile's virtual
                                   screen.
          
          cursor_x, cursor_y       the location of the tile's cursor.
          





                                       - 131 -





          WindowPro v. 1.51                                Reference Manual



          virtual_x, virtual_y     the upper left corner of the tile's
                                   viewport displays this virtual screen
                                   coordinate.
          
          offset_y                 the tile is displayed this many rows
                                   from the top of the window.
          
          horizontal_thumb,
          vertical_thumb           indicates the relative position of the
                                   thumbwheels within their respective
                                   display areas.
          
          thumbwheels              indicates which thumbwheel displays are
                                   turned on.  Legal values are BOTH_BARS,
                                   NO_BARS, VERTICAL_BAR, and
                                   HORIZONTAL_BAR.
          
          justify                  Set this value to LEFT_JUSTIFY,
                                   RIGHT_JUSTIFY, or CENTER_JUSTIFY to
                                   determine where to locate the tile title
                                   in the tile border.  This value is
                                   initialized when a tile is created to
                                   the value of the global variable
                                   justify_tile.
                                   justify_tile 
          
          resource                 This void pointer is set aside for
                                   applications program use.  Typically you
                                   would point to a structure which
                                   contained information regarding the
                                   context of the current tile.  Upon
                                   activating the tile you can use this
                                   information to return the program to its
                                   state prior to exiting that tile.
          
          
          6.29  vpage
          
          Equal to the video page active on calling wn_init. 
                                                    wn init  
          
          
          6.30  wdw[]
          
          An array of far pointers to window_rec.  The handles used to
          refer to windows are actually offsets into this array.  Although
          WindowPro allows a theoretically unlimited number of windows. 
          The actual maximum is determined at compilation time so that
          sufficient space is allocated for this array (This may change in
          the future -- perhaps some kind of dynamic allocation where you
          can decide the maximum at run-time -- or a linked list.....)








                                       - 132 -





          WindowPro v. 1.51                                Reference Manual



          6.31  wdw_rec
          
          typedef struct {
               unsigned physical_x, physical_y, suspend, hide, border,
                    forward, backward, first_tile, last_tile, active_tile;
               int port_columns, port_rows;
               unsigned char  *wdw_name, border_color, *border_chars;
               tile_rec far *tiles[MAX_TILES + 1];
               char justify;
               void *resource;
          } wdw_rec;
          
          physical_x, physical_y   the upper left corner of the window is
                                   positioned on this physical screen
                                   coordinate.
          
          suspend                  if this is > 0 operations on the window
                                   will not be reflected on the virtual
                                   screen.
          
          hide                     if this is true the window is not
                                   displayed on the physical screen.
          
          border                   defines the border style (see
                                   wn_togborer for additional explanation.)
          
          forward                  handle of the window underneath this
                                   window.
          
          backward                 handle of the window on top of this
                                   window.
          
          first_tile               tile handle of the tile displayed at the
                                   top of the window.
          
          last_tile                tile handle of the tile displayed at the
                                   bottom of the window.
          
          active_tile              tile handle of the active tile in this
                                   window.
          
          port_columns, port_rows  inner dimensions of the window.
          
          wdw_name                 pointer to the name of the window.
          
          border_color             attribute value of the window borders.
          
          border_chars             pointer to a 13 byte array of border
                                   characters. (See wn_chgborder for
                                   additional explanation.)
          






                                       - 133 -





          WindowPro v. 1.51                                Reference Manual



          tiles                    array of far pointers to the tiles
                                   contained by this window.  The shareware
                                   version sets this to a maximum of 10. 
                                   With source code you can reserve
                                   whatever amount of space you require.
          
          justify                  Set this value to LEFT_JUSTIFY,
                                   RIGHT_JUSTIFY, or CENTER_JUSTIFY to
                                   determine where to locate the window
                                   title in the window border.  This value
                                   is initialized when a window is created
                                   to the value of the global variable
                                   justify.
                                   justify 
          
          resource                 This void pointer is set aside for
                                   applications program use.  Typically you
                                   would point to a structure which
                                   contained information regarding the
                                   context of the current window.  Upon
                                   activating the window you can use this
                                   information to return the program to its
                                   state prior to exiting that window.
          
          
          6.32  zoomed
          
          If TRUE indicates that the window currently designated as active
          is also zoomed.  See wn_zoomw for further explanation.
                               wn zoomw                         
          
          
          6.33  zoomed_tile
          
          Only the last tile in the zoomed window is effected by zooming so
          this item holds the original values for the last tile of a zoomed
          window (for the same reasons as explained in zoomed_wdw.)
                                                       zoomed wdw  
          
          
          6.34  zoomed_wdw
          
          zoomed_wdw is a window_rec which holds a copy of the  zoomed
          zoomed wdw      window rec                                  
          window -- so we can reset the zoomed window back to its original
          state when we unzoom it.















                                       - 134 -



