Category : C Source Code
Archive   : WINPRO.ZIP
Filename : GUIDE.TXT

 
Output of file : GUIDE.TXT contained in archive : WINPRO.ZIP






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 -





  3 Responses to “Category : C Source Code
Archive   : WINPRO.ZIP
Filename : GUIDE.TXT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/