The WindowPro * * * * * Users Guide * * * * * 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 Shareware Manual I. Introduction . . . . . . . . . . . . . . . . . . . . . 1 II. Technical Notes . . . . . . . . . . . . . . . . . . . 2 III. Shareware . . . . . . . . . . . . . . . . . . . . . . 4 IV. Registration . . . . . . . . . . . . . . . . . . . . . 5 V. Support Details . . . . . . . . . . . . . . . . . . . 7 VI. Diskette . . . . . . . . . . . . . . . . . . . . . . . 8 VII. Installation . . . . . . . . . . . . . . . . . . . . . 10 VIII. Compiling and linking the demo . . . . . . . . . . . . 11 IX. Overview . . . . . . . . . . . . . . . . . . . . . . . 12 X. Glossary . . . . . . . . . . . . . . . . . . . . . . . 13 XI. Tutorial . . . . . . . . . . . . . . . . . . . . . . . 16 XII. Common Problems . . . . . . . . . . . . . . . . . . . 20 XIII. Forthcoming Enhancements . . . . . . . . . . . . . . . 21 XIV. Functions Overview . . . . . . . . . . . . . . . . . . 21 XV. Other Seabreeze Products . . . . . . . . . . . . . . . 26 - Table of Contents 1 - WindowPro v. 1.51 Shareware Manual I. Introduction WindowPro is one of the most comprehensive, compact, and easiest to use screen control libraries available for "C" language development of applications and systems software. . WindowPro lets you easily create programs that look and feel like Framework, Lotus, dBase III, and other top-sellers. Dialog boxes, context-sensitive help, pop-up and pull-down menus are a snap to implement. . Your programs will be able to drag, zoom, split, hide, and scroll windows fast, flicker-free, and without snow. . Sensing video cards, setting video modes, and cursor control are simple straight-forward operations. . WindowPro is compiler and machine independent. You can use the same applications interface for your VAX, IBM PC, or APPLE II. - Table of Contents 1 - WindowPro v. 1.51 Shareware Manual II. Technical Notes . Compatibility - Seabreeze Software currently supports WindowPro under MS-DOS and OS/2 running on the IBM-PC/XT/AT, PS/2 and compatibles. It works with CGA, MDA, EGA, and VGA cards in black and white or color and operates in 40 X 25, 80 X 25, and 80 X 43 modes. It also supports the multi-page capabilities of the CGA, EGA, and VGA video cards. WindowPro supports the large, medium, and small models under Turbo C version 2.0, Microsoft C 5.X, and Miscrosoft Quick C. - The number of windows on the screen is algorithmically unlimited. Your compiler or hardware may limit the number of windows. . Error handling - WindowPro has extensive error handling capabilities. The centralized error handling feature can be switched on or off during run-time via a function call. With the feature disabled WindowPro functions return extensive error handling information for customized error handling, with it enabled WindowPro reports all errors to the screen. . Machine independence - WindowPro use three methods of screen updating: .. Direct memory access ("DMA") - Usable on IBM PC/XT/AT, PS/2 and compatibles. This is the fastest and most efficient method. .. IBM PC BIOS method ("BIOS") - Considered well-behaved by programs such as DESQVIEW, and MICROSOFT WINDOWS. .. Direct cursor positioning ("ANSI") - Requires a terminal that can position the cursor at a coordinate on the screen. This is by default setup for an ANSI type terminal, but can be modified at run-time for others. In all modes no assumptions are made about screen size, video memory locations, etc. But you are provided with several functions for sensing and setting video modes on an IBM-PC. . Compiler independence - WindowPro is pretty straight forward -- it has proven quite easy to port to other compilers. Although we are in the process of testing WindowPro with several compilers we can only recommend Borland Turbo C, Microsoft C 5.X, and Quick-C 1.X. For now, If you would like to use another compiler, you will have to purchase the source code (see registration, next section.) WindowPro uses the following functions from the - Table of Contents 2 - WindowPro v. 1.51 Shareware Manual compilers' libraries. Your compiler will need to support these functions, or you will need to provide suitable substitutes, to make use of the WindowPro source code: . farmalloc, farfree, and movedata. . vsprintf. Necessary for the wprintf feature. . int86. Necessary for sensing the video card, setting the video mode, setting the cursor size and position, and other IBM PC specific functions. . getch. Necessary for WindowPro's vs_gets function. . putchar. Necessary for ANSI mode. - Table of Contents 3 - WindowPro v. 1.51 Shareware Manual III. Shareware Seabreeze Software distributes WindowPro under the shareware marketing concept. Because WindowPro is shareware you can freely copy and share the WindowPro shareware diskette with its programs and manual. You can also obtain it from Seabreeze Software for $15 (the cost of the diskette, postage, and handling.) In fact, we hope you do help us by sharing unmodified copies of the WindowPro shareware diskette with other programmers. You may incorporate WindowPro into your programs and distribute those programs absolutely royalty free (see registration section for details.) You may not however sell, or give away, the WindowPro source code -- even if you purchase the right to use it (see registration section.) - Table of Contents 4 - WindowPro v. 1.51 Shareware Manual IV. Registration Shareware is software which can be freely copied and distributed. It is copyrighted software which the author encourages people to copy and share with others. You can register WindowPro with Seabreeze Software for three levels of support: . For $50 (DOS) or $100 (OS/2 & DOS) you receive . A serialized diskette containing all the latest libraries for one specified compiler and all memory models. . Single user telephone support (Compuserve and voice.) See next section for details. . Notification of updates for one year. . For $100 (DOS) or $200 (OS/2 & DOS) you receive . the above, and . one hundred pages of liberally commented source code (on diskette,) This support-level is usable for non-commercial programs. Non-commercial programs are those created for limited user (less than 50 users) installations (as typically might be found in a small consulting situation or a small corporate software development setting,) or for unlimited freeware distribution. . For $200 (DOS) or $400 (OS/2 & DOS) you receive . the above, plus . the right to use The WindowPro in commercial applications. . Call for details regarding site licensing, consulting services, and customizations. Seabreeze Software retains the following rights: . If you purchase the source code you may not distribute it except as part of an application program. In other words, you can't resell the source in its current or modified form in a way that competes with the original product. . If you provide the WindowPro source code to a purchaser of your applications software you must leave the remarks in the source code indicating that the original copyright is held by - Table of Contents 5 - WindowPro v. 1.51 Shareware Manual Seabreeze Software. If you rewrite portions of WindowPro you may point out the modifications made by yourself but you are still legally obligated to leave the original copyright notice in the source code. . Seabreeze Software may modify its pricing and distribution policies at any time without notification. This does not imply that we will not honor our contractual obligations. But that we reserve the right to not contract for the above services at the above prices, i.e. we are not bound by 'old' advertising. The registration form is at the back of this manual. - Table of Contents 6 - WindowPro v. 1.51 Shareware Manual V. Support Details Support is provided under three methods. . E-mail. Send mail to Seabreeze Software, Compuserve ID# 72330, 705 . Voice. You may call Seabreeze Software directly at 214-437-2729, Monday through Friday, 9 a.m. to 5 p.m. Central Time. Technical support is available to registered users only, you must leave your license agreement number, your name, and instructions for answering the question (like - "please answer via Compuserve E-mail ID# XXXXX, XXX." or "Please call me at XXX-XXX-XXXX for verbal consultation.") Give as many details as possible. Answers will generally be received within 24 hours or less, Monday through Friday. Seabreeze Software will respond to general questions from unregistered users, like "I have version X.XX, what is the latest version?" or "What is the current price for support level X?" We cannot respond to technical questions from unregistered users. - Table of Contents 7 - WindowPro v. 1.51 Shareware Manual VI. Diskette The shareware diskettes should contain the following files: Read.me Any last minute corrections, additions, etc. Pkxarc.exe Unarchives Pro.arc Pro1.arc & Pro2.arc Contain the manual and libraries Pro1.arc & Pro2.arc contain: Guide.txt An introductin to the WindowPro Ref.txt The WindowPro function reference manual Demo.c Source code for the WindowPro demo program Demo.exe The WindowPro demo program Demol.prj Project file, Borland Turbo C (large model) Demom.prj Project file, Borland Turbo C (medium model) Demos.prj Project file, Borland Turbo C (small model) Initwdws.c The initialization module source code Msc_prol.bat MS C5 compile/link batch file (large model) Msc_prom.bat MS C5 compile/link batch file (medium model) Msc_pros.bat MS C5 compile/link batch file (small model) Qc_prol.bat Quick C compile/link batch file (QCL.EXE - large model) Qc_prom.bat Quick C compile/link batch file (QCL.EXE - medium model) Qc_pros.bat Quick C compile/link batch file (QCL.EXE - small model) Tc_prol.bat Turbo C compile/link batch file (TCC.EXE and TLINK.EXE - large model) Tc_prom.bat Turbo C compile/link batch file (TCC.EXE and TLINK.EXE - medium model) Tc_pros.bat Turbo C compile/link batch file (TCC.EXE and TLINK.EXE - small model) pro.h Type checking include files (wn_ functions) vs.h " (vs_ functions) video.h " (v_ functions) keyboard.h " (kb_ functions) mouse.h " (kb_mouse functions) colors.h Color definition macros for IBM-PC xcodes.h Macros for some extended keyboard codes (returned by kb_getxc().) werrors.h Error handler definitions vidmodes.h Video mode definition macros for IBM-PC initwdws.c The initialization module source code globals.h Global declarations (for initwdws.c) xglobals.h Global external declarations tcpowerl.lib Turbo C large model WindowPro library tcpowerm.lib Turbo C medium model WindowPro library tcpowers.lib Turbo C small model WindowPro library mscpowl.lib MS C 5 & QC large model WindowPro library mscpowm.lib MS C 5 & QC medium model WindowPro library mscpows.lib MS C 5 & QC small model WindowPro library - Table of Contents 8 - WindowPro v. 1.51 Shareware Manual qcpower.c "stub" function for creating Quick C 1.X quicklibs. See the Quick C manual for further information Tutor1.c Source and turbo project files (medium, large & small model) for tutorial number 1. Tutor1l.prj " Tutor1m.prj " Tutor1s.prj " Tutor2.c Source and turbo project files for tutorial number 2. Tutor2l.prj " Tutor2m.prj " Tutor2s.prj " Tutor3.c Source and turbo project files for tutorial number 3. Tutor3l.prj " Tutor3m.prj " Tutor3s.prj " Tutor4.c Source and turbo project files for tutorial number 4. Tutor4l.prj " Tutor4m.prj " Tutor4s.prj " Tutor5.c Source and turbo project files for tutorial number 5. Tutor5l.prj " Tutor5m.prj " Tutor5s.prj " Note: BBS operators may repackage The WindowPro files to optimize on-line time. If you received your files via a BBS please make sure you have all of The WindowPro shareware files. - Table of Contents 9 - WindowPro v. 1.51 Shareware Manual VII. Installation 1. Backup your shareware diskette. 2. Type "pkxarc Pro1" at the dos prompt and press ENTER, and then "pkxarc Pro2". Pkxarc will unarc Pro1.arc & Pro2.arc into the current default directory. You can run pkxarc.exe from another directory, and unarc Pro1.arc located on another drive or directory by preceding each with a drive and directory specification, for example C:\Pro>a:pkxarc a:Pro1 will run pkxarc from the a: drive and unarc Pro1.arc located on the a: drive into the c: drive and the "Pro" sub-directory. 3. Copy the library file (extension of ".lib") to the diskette or sub-directory you usually use with your C compiler. The lib files should be in the same sub-directory as your C runtime libraries. 4. Copy the compiler/linker driver batch file that corresponds to your compiler to PRO.BAT - Table of Contents 10 - WindowPro v. 1.51 Shareware Manual VIII. Compiling and linking the demo Compile the demo by typing PRO DEMO at the dos prompt. Note: The compile/link batch files assume that you have installed the your compiler as suggested by your compiler's manual. If you are using Turbo-C it assumes that the sub-directories LIB and INCLUDE are child directories of the default directory. If you are using MSC or Quick-C it assumes that the BIN sub-directory is in your PATH, and that the environment variables LIB and INCLUDE are properly set. - Table of Contents 11 - WindowPro v. 1.51 Shareware Manual IX. Overview WindowPro is a virtual screen manager. Instead of working with a single screen like a traditional program, you can define hundreds of screens. And with simple commands, like vs_gets and vs_printf, you send output to any virtual screen. You can display parts of a virtual screen on the physical screen through a window. Windows may overlap one another so that some windows will obscure others. A collection of overlapping windows on a screen could like this. +--------------------+ | | | window #1 | | | | |-------------+ | | | | | | | | | | | | | | | +--------------------+ | | | | | | window #2 | | | | | | | | +-------------------+ | | | window #3 | | | +----------------------+ Because all WindowPro operation modes can be decided at runtime. You can support several MS-DOS supported machines with one executable file. Creating programs with fancy terminal installations is very simple, or for the IBM PC world, creating programs that automatically sense, or set, video modes, sense display adapters, etc. is quite easy. WindowPro provides mouse support. Mice and windows are a team. So we have provided extensive and sophisticated support for MICROSOFT MOUSE compatible devices. WindowPro, for all of its added features just doesn't take much space. If you use just the basic functions you will only add about 35K of code to your application. If you use all of the features you will add about 65K. (Depends on you compiler.) - Table of Contents 12 - WindowPro v. 1.51 Shareware Manual X. Glossary . Physical screen - the physical screen is your computer or terminal screen. Unlike a virtual screen it is limited in size to whatever modes your computer or terminal supports. . Virtual screen - WindowPro allows you to create an unlimited number of virtual screens. Instead of sending output to the physical screen, you send output to the virtual screen of your choice. WindowPro will update the physical screen only if there is a window onto the virtual screen displayed on the physical screen. Virtual screens are not limited in size. A virtual screen does not have to have an open window on the physical screen, i.e. a program can update a virtual screen without affecting the physical screen. . Window - a window allows you to show part of a virtual screen on the physical screen. WindowPro lets you open a window and place it anywhere on the physical screen. Windows can be moved or resized through simple function calls. Windows may overlap on the physical screen. You can control the overlapping of windows in several ways. If you need to see a window which is partially or completely obscured you can 'activate' the window, which will bring it temporarily to the top of the physical screen. You put the the 'active' window back into its original position by 'deactivating' it. A window may be brought to the top permanently by 'opening' it. You remove a window from the physical screen by 'closing' it. . Handle - when a window is created WindowPro returns an internal name - a handle - by which the window can be referred to. . Viewport - The rectangular region of a virtual screen displayed within a window. . Border - the area of the window which surrounds the viewport is called the border. You can specify the border characters and can select from several types of display styles to create shadowing effects. . Freezing or Suspending - A physical screen, virtual screen, or window may be frozen or suspended. If an item is frozen the results of any actions performed on it are not updated to the physical screen. Defrosting the item flashes the results of all the operations subsequent to the freeze to the physical screen. (Suspending is identical to freezing but is a toggle. Unlike suspend, every call to freeze must be matched by the same number of defrosts to un-freeze the item.) - Table of Contents 13 - WindowPro v. 1.51 Shareware Manual . Display List - WindowPro uses the display list to keep track of the windows which have been opened on the physical screen, and the order in which they are shown. The display list is used to make sure that the windows on the physical screen are stacked up in the right order when the physical screen is redrawn. You can reorder the list through various function calls. Although you will never deal with this list directly it is referred to often in the WindowPro functions reference. . Hiding a window - if a window is hidden it retains its position in the display list, but it is not displayed on the physical screen. (Some useful effects can be programmed by hiding and unhiding windows.) . Tiles - a tile is a subdivision of a window. This is very similar to the old split screen approach used by many word processors and spreadsheets, and looks something like this: +--------------------+ | | | window #1 | | tile #1 | | |-------------+ |--------------------| | | | | | window #1 | | | tile #2 | | | | | +--------------------+ | | | | |window #3| window #2 | | tile #1 | tile #1 | | | | | +-------------------+ |----------------------| | window #3 | | tile #2 | +----------------------+ Many WindowPro functions which are available at window level are also available at tile level. All operations applied to the window will affect its tiles. If the window is hidden, then all the tiles are hidden. If the window is made bigger, then the size of the tiles is adjusted too. Each window has a tile display list (similar to the window display list,) which controls how tiles are displayed within the window. The advantage of tiles is that you can display several virtual screens in a single window. This is useful when creating segmented pull down menus, or in creating window based editors. For example, a text editor might use one - Table of Contents 14 - WindowPro v. 1.51 Shareware Manual tile for editing text, and a second to display formatting information. There are lots of uses for this feature, and you will not find it anywhere else. Tiles are also referred to by 'handles.' A single virtual screen is always associated with a tile. . Scroll Bars - scroll bars consist of two scrolling hot points, a thumbwheel, and a thumbwheel area. There may be vertical scroll bars, horizontal scroll bars, or both. Each tile can have its own set of scroll bars. Although you can use them in anyway you like. Scroll bars are typically setup to let the user scroll through a document (or whatever) by holding the mouse on the hot points, by dragging the thumbwheel, or by clicking in the thumbwheel area to go to a specific point in a document. - Table of Contents 15 - WindowPro v. 1.51 Shareware Manual XI. Tutorial The easiest way to understand WindowPro is to study some code which employs the WindowPro library. I've included a few simple examples to show you how to get started. The following illustration is also found in TUTOR1.C. You can compile and link TUTOR1 by typing PRO TUTOR1 at the dos prompt. There are five tutorials in all, TUTOR1 to TUTOR5. I suggest that you run through each in order by first printing the source code, compiling and linking the source, running the executable, and simultaneously tracing through the source code to see how the various screen effects were performed. There are numerous getch() statements sprinkled through each tutor?.c file to help slow down the action. The TUTOR source code is liberally commented. You should not have a great deal of trouble comparing the code to the screen action. - Table of Contents 16 - WindowPro v. 1.51 Shareware Manual Lets put a window on the screen and type the words 'WindowPro' inside of it. /* * We'll need this for type checking on the windows functions */ #include "pro.h" /* * You've got to have this. It will setup the WindowPro global * variables. */ #include "xglobals.h" /* * We'll need this for type checking on the virtual screen * functions */ #include "vs.h" /* * This is really handy, it defines the IBM-PC colors */ #include "colors.h" int main() { /* * We'll use this to store the window and tile handle * returned when we create a window. */ unsigned int window_handle; /* * Initialize WindowPro. If you don't do this -- forget * it, everything blows up. */ wn_init(); /* * Create a window and get a handle back. * The window's virtual screen will be 25 rows by 80 * columns, */ window_handle = wn_createw(25, 80, - Table of Contents 17 - WindowPro v. 1.51 Shareware Manual /* * The upper left corner of the window will be located at the * physical screen coordinates of (2,3); second column and * third row. */ 2, 3, /* * The upper left corner of the window will map to the * virtual screen coordinate (1,1); first column and * first row. */ 1, 1, /* * The inner dimensions of the window will be 5,10; * 5 rows by 10 columns. */ 5, 10, */ * The window will not be suspended, i.e. all output * to the virtual screen will be immediately displayed * on the physical screen. */ FALSE, */ * We won't use any shadowing effects. */ HEAD_ON, /* * Nor will we assign a name to the tile or window. */ NULL, NULL); /* * More simply put: * wn_createw(25,80,2,3,1,1,5,10,FALSE,HEAD_ON,NULL,NULL); */ */ * Here comes the confusing part: * All windows, even those that aren't divided into tiles * have tiles. You really should think of windows as a - Table of Contents 18 - WindowPro v. 1.51 Shareware Manual * way of grouping tiles together. In the above case * When we created the window, we also created a tile, and * a virtual screen. The first tile created in a new * window always has a handle of 0 and every virtual * screen is associated with a tile. We always * reference a virtual screen by a pair of handles: * A window handle (pointing to a group of tiles), and * a tile handle. In the window we just created the window * has a handle of 'window_handle', the tile has a handle * of 0, and we reference the virtual screen using * {window_handle, 0}. */ /* * Now let's put something in the virtual screen * */ /* * first we reference the virtual screen */ vs_puts(window_handle, 0, /* * Then we say where we want the string put (column, row). */ 1, 1, /* * Now we indicate the maximum length of the string to output */ 10, /* Now the foreground and background color of the string. * Note, if the string is shorter than the maximum length * The function pads spaces to the end. */ white, blue, /* * And finally, the string to output. */ "WindowPro"); /* * More simply put: * vs_puts(window_handle,0,1,1,10,WHITE,BLUE,"WindowPro"); */ - Table of Contents 19 - WindowPro v. 1.51 Shareware Manual /* * However, before anything happens on the screen we need to * open it. */ wn_openw(window_handle); /* * That's it: *********************************************************** * { * * wn_init(); * * * * window_handle = * * wn_createw(25,80,2,3,1,1,5,10,FALSE,HEAD_ON,NULL,NULL); * * * * vs_puts(window_handle,0,1,1,10,white,blue, * * "WindowPro"); * * * * wn_openw(window_handle); * * } * *********************************************************** } XII. Common Problems Most problems are caught by the automatic error checking. The most common problems are: . Not calling wn_init() before using The WindowPro functions and calling wn_init() more than once in an application. Call wn_init() before using TWP functions and only call it once. . Failure to use prototypes. Each class of functions is preceded by a one or two character identifier and then an underbar, e.g. vs_gets, wn_createw, or vs_puts. These function identifiers also indicate the include file containing the function prototype. vs_, vs.h; kb_, keyboard.h or mouse.h; wn_, pro.h; k_, kernel.h; and v_, video.h. - Table of Contents 20 - WindowPro v. 1.51 Shareware Manual XIII. Forthcoming Enhancements Several enhancements are in the works for The WindowPro. . Support for the Lattice C compiler, Watcom C, and Aztec C. . More Presentation Manager style functionality. .. Child windows (clipped and unclipped) .. Minimize/Maximize points on window frames . Simplification of the application programmer interface. We have received several comments regarding the complexity of the functions. While most functions work as expected and do much more than any other similar product there are two problems which user feedback points out: .. There are a lot of arguments for some functions. We intend to add some additional defaults to the window and tile structures and create functions which will use those defaults, as alternatives to the functions which let you specify all of the options, for example, we may add default background and foreground colors for the virtual screens, and supply an alternative set of functions or macros which will use the defaults rather than require you to pass them as arguments on each call. All, of the existing functions will remain in their current form, these will only be enhancements. .. There is some inconsistency in the use of row, column or column, row designations -- these will be cleared up, but again the original functions will remain intact. XIV. Functions 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. - Table of Contents 21 - WindowPro v. 1.51 Shareware Manual 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. 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. - Table of Contents 22 - WindowPro v. 1.51 Shareware Manual 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. 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. - Table of Contents 23 - WindowPro v. 1.51 Shareware Manual 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. 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. - Table of Contents 24 - WindowPro v. 1.51 Shareware Manual 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. - Table of Contents 25 - WindowPro v. 1.51 Shareware Manual XV. Other Seabreeze Products Seabreeze Software also distributes and supports these products. Product Status ------------------------ -------------------------------- Dialog Pro C-code for making and running several types of dialog boxes (like the MAC.) Available Now. Pop-up Programmable Accountant's Calculator C-code. An excellent lesson in using The WindowPro shareware library. Available Now. - Table of Contents 26 -