
Copyright 1996-2000 Vincenzo MORELLO
All rights reserved

MGUI Designer is a graphic tool that helps you in the construction and
maintenance of your dialog windows layout. It provides a large set of
MGUI Objects and the possibility to set many of the Objects attributes.
Part of the Program (dialogs in the sample 'objedit.mdp') has been
written using the Designer itself.
MGUI Designer produces binary, machine independent project files; that
is: they can be written on DOS PC and read on Sparc Station. These files
can be read, modified and saved at any time, allowing you to maintain
your dialogs easily.
To make use of your project file in a program, the Designer offers you
the possibility to generate 'C' source file that can be linked with your
code to produce a complete program.

MGUI Designer has currently the following limitations:

- Some Objects (PagedForm, EditList, StatusBar ...) are not
  supported.
- Multi selection is not allowed, so you can't change attributes to a
  set of Objects at once.
- MENU Object editing is uncomfortable

Nevertheless, I think MGUI Designer is helpful to you because it shows
the real window layout while you construct it, and lets you experiment
many of the MGUI features like the automatic Object positioning and
resizing.

Since there is no help in the program, here I want to give you some
guidelines.

The layout construction is made up by creating an Object hierarchy,
starting with a SHELL Object, proceeding with the containers FORM
Objects and ending with terminal Objects (like a LABEL or a PBUTTON).
To create an Object you must push the corresponding button situated at
the left side of the Designer window. The Object is added as 
the last child of the selected container Object and an icon linked to the
container appears in the modeling area.
Color, font and text attributes for the created Object are those selected
in the editing areas. You can change all attributes (including name, shadow
and resize policy) by selecting the Object in the modeling area and
clicking in the 'Apply' button after the changes.
If a name is specified for an Object, a global variable with that name
will reference the Object in the generated C source file, an 'extern'
declaration for the variable will appear in the generated 'include' file.
You should avoid using names beginning with '_' as this is the first
character for all automatic Object names in the generated source file.

There are two methods for moving an Object and all its descendant in the
layout hierarchy.
The first can be realized by simply dragging in the modeling area the
Object to the new container. As a result, the moved Object becomes the
last child of the container.
This method is equivalent to doing the following steps:
- select the Object to be moved in the modeling area.
- press the 'Del' key or select the 'Cut' item in the 'Edit' menu.
- select the desired new container.
- press the 'Insert' key or select the 'Paste' item in the 'Edit' menu.
The second method lets you make an Object take the place of another.
To realize it, you must hold the 'Shift' key down while dragging the
Object to the desired position.

When the Object hierarchy becomes complex, you may pack the containers
whose Objects you want to disappear from the modeling area.
To do so, you should select the container to be packed and then press the
'-' key or select the 'Pack' item from the 'Edit' menu.
To unpack the previously packed Object, select the container to be unpacked
and then press the '+' key or select the 'Unpack' item from the 'Edit'
menu.

To access the Object specific editing function, you can either double
click the mouse button over an Object icon, or select the Object and
then choose the 'Object specific' item in the 'Edit' menu.

Via the 'Attachment' option in the 'Edit' menu it's possible to vary the
geometric links between the selected Object and its brothers or its
parent.

An advanced option in the 'Edit' menu, named 'Callbacks', permits you
to set the callbacks for the selected Object. If you don't specify the
callback's 'Application Data', the 'NULL' constant will be used.
By clicking in the push button describing the callback, the Designer
opens a dialog window letting you define the callback source code.

The 'Post creation code' option in the 'Edit' menu allows you to insert
source code lines relating to the selected Object. This code will follow the
Object creation code in the generated source file.


What's new in release 2

- Now it's possible to duplicate single Objects and Object trees.
- The project color palette can be changed, saved and loaded.
- By clicking the right mouse button over an Object, both in the
  hierarchical area and the real layout, the 'Attributes' menu
  is open. To open the 'Edit' menu, hold down the Ctrl key while
  clicking.
- The 'Enable customizing' option in the 'Generate' pulldown
  enables the run-time Object Customization for the generated code.

What's new in release 2.4

- C++ code generation now supported
- OptionEdit now supported
- 'Include MGUIMain' and 'Enable Customizing' options are now saved
  in the project file.
- The 'Attribute-Class Options' menu item makes it possible to add
  user defined attrs and methods int the C++ class bound to the
  selected SHELL.
- Support for the new container object Table Form.
- The 'Attachment' dialog now allows the setting of the object's alignment

What's new in release 2.6

- Support for Object transparency added

