
MGUI 2.1

Copyright 1996-1998 Vincenzo MORELLO (morellov@tin.it)

MGUI (MORELLO Graphic User Interface) is a user interface currently available
in DOS (16 and 32 bit), Windows, Win32 and Unix X-Window environments.
The main features of MGUI API are:

- Total source code compatibility among all supported platforms
  (excluding graphics printing only available under Windows).
- Same look & feel in all environments (similar to OSF/Motif).
- Coding process is very smart and produces a compact source code.
- A manager object automatically positions and resizes its children, making
  layout construction very simple.
- A designing tool (MGUI Designer) generates both C and C++ source files
  that can be compiled in all supported environments.
- Supports 16, 256, 32K and 64K colors under DOS BGI, up to 16 million in DOS
  32 bit, Windows and X-Window environments.
- Text Cut & Paste capabilities.
- Drawing primitives for line, rectangle, circle, polyline etc...
- Image drawing up to 24 planes (True color).
- Log facility with run-time user modifiable tracing level.
- Resource file handling to customize Object attributes as text, font and color
- Run-time Object attribute changing (with optional store in the resource file)
- Graphics printing (only available under Windows).

MGUI has been successfully compiled and tested in the following environments:

- Borland C++ 4.5 with BGI graphic library
- Borland C++ 4.5 / PowerPack with BGI graphic library
- Borland C++ 4.5 with GRX 2.3 graphic library
- DJGPP  with GRX 2.3 graphic library
- RSXNTDJ for Win32 (requires DJGPP)
- Cygnus GNU Win32
- LCC Win32
- Borland C++ 4.5 under Windows 3.1 & Win32
- Visual C++ 4.0 under Win32
- Linux Slackware 3.4 (X11 & GRX/svgalib)
- Watcom C++ 11.0 under Windows 3.1 & Win32
- Watcom C++ 11.0 under DOS/4GW
- Watcom C++ 11.0 under DOS/4GW/GRX


Limitations:

- Documentation is still incomplete.
- Font loading is not supported under DOS BGI.
- 24 bit Image format is not supported under DOS BGI.
- EDIT Object does'nt currently support proportional fonts.
- Graphics printing is not yet supported under DOS & Unix.

Requirements for PC platforms:

CPU:		386 or higher
VIDEO CARD:	VGA or SVGA
Windows:	3.1 Enhanced mode or higher


INSTALLATION NOTES

This distribution is obtained from one of the following compressed binaries:

- mgdos21x.zip          DOS: Borland BGI, DJGPP, Watcom DOS/4GW
- mgwin21x.zip          Windows 3.1: Borland, Watcom
- mgwnt21x.zip          Win32: Borland, Microsoft, Watcom
- mglin21x.tgz          Linux X11
- mgui-2.1.x.tar.gz     Linux X11

where 21x stands for the release (for example: 210 for release 2.1.0).
All of the above files generate, after the extraction, the following directory
structure:

mgui                    Base MGUI directory
mgui/designer           MGUI Designer samples
mgui/medit              MEdit Text Editor
mgui/doc                Documentation
mgui/examples           Simple sample sources
mgui/include            Includes of the library
mgui/lib                Library files
mgui/sys                Run time bitmaps and DOS fonts.
mgui/test               The library capabilities demo sources

In addition, for the DOS and Windows 'mixable' version, these directories can
be found:

mgui\bgi_bin		Executables for DOS BGI
mgui\djg_bin		Executables for DOS DJGPP
mgui\win_bin		Executables for Windows 3.1

mgui\bgitest		C Test project dir for DOS BGI (Borland C++)
mgui\bwintest		C Test project dir for Windows 3.1 (Borland C++)
mgui\bw32test		C Test project dir for Win32 (Borland C++)
mgui\djgtest		C Test project dir for DOS DJGPP
mgui\rsxtest		C Test project dir for RSX Win32
mgui\lcctest		C Test project dir for LCC-Win32
mgui\mw32test		C Test project dir for Win32 (Visual C++ 4.0)
mgui\w4gwtest		C Test project dir for DOS/4GW (Watcom C++)
mgui\wgrxtest		C Test project dir for DOS/4GW/GRX (Watcom C++)
mgui\wwintest		C Test project dir for Windows 3.1 (Watcom C++)
mgui\ww32test		C Test project dir for Win32 (Watcom C++)

mgui\bgitspp		C++ Test project dir for DOS BGI (Borland C++)
mgui\bwintspp		C++ Test project dir for Windows 3.1 (Borland C++)
mgui\bw32tspp		C++ Test project dir for Win32 (Borland C++)
mgui\djgtspp		C++ Test project dir for DOS DJGPP
mgui\rsxtspp		C++ Test project dir for RSX Win32
mgui\mw32tspp		C++ Test project dir for Win32 (Visual C++ 4.0)
mgui\w4gwtspp		C++ Test project dir for DOS/4GW (Watcom C++)
mgui\wgrxtspp		C++ Test project dir for DOS/4GW/GRX (Watcom C++)
mgui\wwintspp		C++ Test project dir for Windows 3.1 (Watcom C++)
mgui\ww32tspp		C++ Test project dir for Win32 (Watcom C++)

Main locations where to find MGUI in the Internet are:

MGUI home page:
http://www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index_e.htm

WEB sites:
Simtel		http://www.simtel.net
Coast to Coast	http://www.coast.net
Sunsite		http://www.sunsite.unc.edu

FTP sites:
Simtel		ftp.simtel.net
Coast to Coast	ftp.coast.net
Sunsite		ftp.sunsite.unc.edu

At run time, MGUI applications should be able to read files in the directory 
'mgui/sys'. Its location is determined by the MGUIDIR environment variabile
which must point to the absolute path of the 'sys' directory
(i.e. '/usr/mgui/sys' if you choose '/usr' as the base extraction point in
Unix and 'D:\TOOLS\MGUI\SYS' if you extract the library in 'D:\TOOLS').
If you don't set MGUIDIR, the program uses the first existing directory
among the following.

In DOS & Windows:

\mgui\sys
\mguisys
c:\mgui\sys
c:\mguisys

In Unix:

$(HOME)/mgui/sys
$(HOME)/mguisys
/mgui/sys
/mguisys
/usr/local/mgui/sys
/usr/local/mguisys
/usr/local/lib/mguisys


In order to use the DOS BGI or the Windows version, you need a BORLAND C
compiler. If you have Borland C++ 4.5, you can use the project file supplied
in the directory 'mgui\*test'. If you have an earlier version (like Turbo C
3.0), then you should create a .prj file in 'mgui\*test', add to it all .c
modules in the 'test' directory and the 'bgimgui.lib' (for DOS BGI) or
'bwinmgui.lib' (for Windows 16 bit) library file in the '..\lib' directory.
The project should also have '..\include' added in the include search path,
the compiler memory model set to large and code generation for the 386
instruction set.

If you are using a UNIX version of the library, you need an ANSI C
compiler (like gcc) and the Xlib library and include files.


HOW TO START

I suggest you to follow these steps in order to learn MGUI programming
techniques.
First compile the test program in the directory 'test' and run it (makefile
and project files for DOS and Windows in 'mgui\*test'.
This program uses all available Objects and many of the library capabilities.
Almost all windows open with this program show the source code file
that realizes them (provided that the program runs from the directory in which
it is compiled).
Once you have tested the whole provided sample windows in the program, you can
quit and proceed with next step: compile all examples in the 'examples'
directory. Then you should read carefully the programming guide in the 'doc'
directory, running the compiled examples as you encounter them in the manual.
Unfortunately this guide is incomplete 'cause I'm still translating it from
italian to english.
Then, running the test program again, you should understand how it works
simply looking at the displayed source code while you use it.
	Next you can start the MGUI Designer (from the 'designer' directory)
and experiment with it the layout construction and maintenance process.
I think it's a good practice to proceed as I suggest in the following in order
to learn about how to use MGUI Designer.
Read the designer.txt file, run the program 'designer' and then load the
sample project file 'project1.mdp'. Activate the option 'include MGUIMain()'
and generate the source code. Create a project (or makefile) taking care of
adding the 'mgui/include' directory in the compiler search path and to link
the program with the library in the 'mgui/lib' directory. If you run this
program you should obtain the same window layout as that displayed by the
Designer.
Finally you can try to clone the project sample 'project1.mdp'. In order to
do this, you should load the 'project1.mdp' file, create the same Object
hierarchy in the Designer modeling area, then try to change attributes to
each Object to make both windows identical.
You can repeat all the above steps for examples 'project2.mdp' and
'project3.mdp'.


FUTURE RELEASES

MGUI could be extended in the future with some of the following, given in
random order:

- Window iconifying under DOS.
- MENU Object editing simplification in MGUI Designer.
- New Cap 'MGUI advanced programming' in the programming guide.
- Completion of the HTML MGUI Reference guide.
- SLIDER Object.
- Graphics printing under DOS/GRX.


If you have suggestions, bugs to report or any feedback about MGUI, you can
contact me at e-mail: morellov@tin.it

Stay tuned into MGUI home page if you need informations about latest release
and ftp sites where you can find MGUI.

http://www.volftp.tin.it/IT/IT/ITALIANI/MORELLO/index_e.htm

If you like MGUI, and want me to continue enhancing it, please register
your copy. Congratulations are welcome, but they are not a sufficient
support for me to keep updated MGUI distributions.

