
MGUI 3.2

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

MGUI (MORELLO Graphic User Interface) is a user interface 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 (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
- Watcom C++ 11.0 under DOS/4GW/MetaWINDOW


Limitations:

- Documentation is still incomplete.
- 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 complete, OS
specific archives:

- mgdos32x.zip          DOS: Borland BGI, DJGPP, Watcom DOS/4GW
- mgwin32x.zip          Windows 3.1: Borland, Watcom
- mgwnt32x.zip          Win32: Borland, Microsoft, Watcom, LCC, RSXNTDJ
- mglin32x.tgz          Linux X11
- mgui-3.2.x.tar.gz     Linux X11

Altenatively you can obtain a correct DOS/Windows installation by using the
combination of the base archive:

- mgcom32x.zip		Common DOS & Windows files

along with one or both of the following (at least one is mandatory):

- mdos32xc.zip		All DOS platforms for C developing
- mwin32xc.zip		All Window platforms for C developing

In order to get C++ libraries you have to install one (or both) the following
archives (of course you need the corresponding C archive mdos32xc.zip or
mwin32xc):

- mdos32xp.zip		DOS C++ libraries
- mwin32xp.zip		Windows C++ libraries

Finally, if you want to install MGUI Designer, you need archive

- mgdes2xx.zip		MGUI Designer for DOS & Windows.

This is the 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
mgui/x11test		build directory for X11 in C language
mgui/x11testpp		build directory for X11 in C++ language
mgui/grxtest		build directory for GRX/svgalib in C language
mgui/grxtestpp		build directory for GRX/svgalib in C++ language

The DOS and Windows 'mixable' version generates the following directory
tree:

mgui\djg_bin		Executables for DOS DJGPP
mgui\win_bin		Executables for Win32

mgui\bgitest		C Test project dir for DOS BGI (Borland C++)
mgui\bgrxtest		C Test project dir for DOS GRX (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\bgrxtspp		C++ Test project dir for DOS GRX (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 (also provides online and downloadable HTML documentation):
http://web.tiscalinet.it/morello/MGui/index.html

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

FTP sites:
Simtel		ftp.simtel.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' and bormgui.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'.


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 the new MGUI home page if you need informations about
latest release and documentation.

http://web.tiscalinet.it/morello/MGui/index.html


