
MGUI 1.8

Copyright 1996-1997 Vincenzo MORELLO

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.
- 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 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.

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

- Borland C++ 4.5 with BGI graphic library.
- Borland C++ 4.5 with Csaba Biegl GRX 2.0 graphic library.
- DJGPP  with Csaba Biegl GRX 2.0 graphic library.
- Borland C++ 4.5 under Windows 3.1 & Win32
- Visual C++ 4.0 under Windows 95
- SUN Solaris 2.4 (x86 & sparc)
- IBM AIX 3.2.5 Risc 6000
- Linux Slackware 3.0 (X11)

It is under testing in:

- Watcom C++

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.

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:

- mgdos18x.zip          DOS BGI + DJGPP
- mgwin18x.zip          Windows 3.1 + Win32
- mgui-18x.tgz          Linux
- mgui-1.8.x.tar.gz     Linux

or by combining:

- mguic18x.zip + mguib18x.zip	Borland C++ (DOS BGI)
- mguic18x.zip + mguid18x.zip	DJGPP (32 bit DOS)
- mguic18x.zip + mguiw18x.zip	Borland C++ (Windows 3.1 + Win32)
- mguic18x.zip + mguiv18x.zip	Visual C++ 4.0 (Win32)

where 18x stands for the release (for example: 180 for release 1.8.0).
All of the above files generate, after the extraction, the following directory
structure:

mgui                    Base MGUI directory
mgui/bin		Binary supplied programs
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 BGI 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\w32_bin		Executables for Win32
mgui\bgitest		Test project directory for DOS BGI (Borland C++)
mgui\djgtest		Test project directory for DOS DJGPP
mgui\wintest		Test project directory for Windows 3.1 (Borland C++)
mgui\w32test		Test project directory for Win32 (Borland C++)
mgui\vc4test		Test project directory for Win32 (Visual C++ 4.0)


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 (except for 'rs232.c' for non Windows 3.1)
and the 'bgimgui.lib' (for DOS BGI) or 'winmgui.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'.
Thisprogram 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:

- Resource file handling to customize Object attributes as text, font and color
- Run-time Object attribute changing (with optional store in the resource file)
- Window iconify in DOS
- Menu item separator
- MENU Object editing simplify in MGUI Designer
- Color & Font browsing in MGUI Designer
- New Cap 'MGUI advanced programming' in the programming guide.
- MGUI Reference guide
- SLIDER Object
- Graphics printing


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

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

http://www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index.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.
