
MGUI 1.9

Copyright 1996-1997 Vincenzo MORELLO

MGUI (MORELLO Graphic User Interface) e' un'interfaccia utente disponibile al
momento per gli ambienti DOS (16 e 32 bit), Windows, Win32 e Unix X-Window.
Caratteristiche salienti di MGUI sono:

- Totale compatibilita' (a livello di codice sorgente) fra le piattaforme
  supportate.
- Identico look & feel in tutti gli ambienti (ispirato a OSF/Motif).
- Il processo di codifica e' semplice e genera codice sorgente compatto.
- Un Oggetto contenitore posiziona e ridimensiona automaticamente gli Oggetti
  contenuti, rendendo molto semplice la costruzione dei layout.
- Un generatore di codice (MGUI Designer) produce sorgenti C che possono
  essere compilati su una qualunque piattaforma supportata.
- Supporta 16, 256, 32K e 64K colori sotto DOS BGI, fino a 16 milioni sotto DOS
  32 bit, Windows e X-Window.
- Possibilita' di Cut & Paste di testo anche da e verso altre applicazioni.
- Disponibilita' di primitive di disegno di linee, rettangoli, polilinee etc.
- Visualizzazione di immagini fino a 24 piani (True Color).
- Possibilita' di tracciamento (per debug) sia su finestra che su file, con
  livello modificabile anche run-time.
- Personalizzazione risorse degli oggetti su file ascii con possibilita'
  di editing run-time con salvataggio.


MGUI e' stata compilata e provata con successo sulle seguenti piattaforme:

- Borland C++ 4.5 con grafica BGI
- Borland C++ 4.5 con grafica GRX 2.0
- Borland C++ 4.5 + PowerPack con grafica BG
- DJGPP 2.0 con grafica GRX 2.0
- RSXNTDJ per Win32 (richiede DJGPP)
- Cygnus GNU per Win32
- Borland C++ 4.5 sotto Windows 3.1 e Win32
- Microsoft Visual C++ 4.0 sotto Windows 95
- Linux Slackware 3.0 (X11)
- Watcom C++ 11.0 sotto Windows 3.1 & Win32
- Watcom C++ 11.0 sotto DOS/4GW


Limiti:

- Documentazione ancora incompleta.
- Caricamento di Font non supportato sotto DOS BGI.
- Immagini a 24 bit non supportato sotto DOS BGI.
- L'Oggetto EDIT non supporta al momento font proporzionali.
- Stampa grafica non ancora supportata.

Requisiti per HardWare PC:

CPU:		386 o superiore
VIDEO CARD:	VGA o SVGA
Windows:	3.1 Enhanced mode o superiore


INSTALLAZIONE

Questo kit e' stato ottenuto da uno dei seguenti archivi compressi:

- mgdos19x.zip          DOS: Borland BGI, DJGPP, Watcom DOS/4GW
- mgwin19x.zip          Windows 3.1: Borland, Watcom
- mgwnt19x.zip          Win32: Borland, Microsoft, Watcom, RSX+DJGPP
- mglin19x.tgz          Linux X11
- mgui-1.9.x.tar.gz     Linux X11

dove 19x indica la release (per esempio: 190 per release 1.9.0).
Tutti i suddetti file generano, dopo l'estrazione, la struttura di directory:

mgui                    Directory MGUI base
mgui/designer           Esempi per MGUI Designer
mgui/doc                Documentazione
mgui/examples           Sorgenti di semplici esempi
mgui/include            Include della libreria
mgui/lib                Librerie
mgui/medit              Editor di testo MEdit
mgui/sys                Bitmap per il run time e font per DOS BGI.
mgui/test               Programma dimostrativo delle potenzialita' di MGUI

In aggiunta, per le versioni DOS e Windows 'mixabili', si possono trovare le
ulteriori directory:

mgui\bgi_bin		Eseguibili per DOS BGI
mgui\djg_bin		Eseguibili per DOS DJGPP
mgui\win_bin		Eseguibili per Windows 3.1
mgui\bgitest		Progetto per il test sotto DOS BGI (Borland C++)
mgui\bwintest		Progetto per il test sotto Windows 3.1 (Borland C++)
mgui\bw32test		Progetto per il test sotto Win32 (Borland C++)
mgui\djtest		Makefile per il test sotto DOS DJGPP
mgui\mw32test		Progetto per il test sotto Win32 (Visual C++ 4.0)
mgui\rsxtest		Makefile per il test sotto RSX Win32
mgui\w4gwtest		Progetto per il test sotto DOS/4GW (Watcom C++)
mgui\wwintest		Progetto per il test sotto Windows 3.1 (Watcom C++)
mgui\ww32test		Progetto per il test sotto Win32 (Watcom C++)

Per l'esecuzione, l'applicativo MGUI necessita dei file contenuti nella
directory 'mgui/sys'. La sua dislocazione viene determinata dalla variabile
di ambiente MGUIDIR che deve puntare al percorso assoluto della directory 'sys'
(es. '/usr/mgui/sys' se '/usr' e' il punto base di estrazione in Unix oppure
D:\TOOLS\MGUI\SYS' la libreria viene estratta in 'D:\TOOLS').
In assenza di definizione della variabile MGUIDIR, l'applicativo usera'
la prima fra le directory sotto riportate che trovera'.

In DOS e 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


Per potere utilizzare le versioni DOS BGI o Windows, e' necessario disporre
di un compilatore Borland C.
   Se si possiede una versione (come la 4.5) che usa il formato .ide per il
file di progetto, allora si puo' utilizzare il file 'mguitest.ide' fornito
nella directory 'mgui\*test'.
   Se si dispone invece di una versione vecchia del compilatore, allora occorre
creare un file di progetto, aggiungere ad esso tutti i moduli .c della directory
'mgui\test' e la libreria opportuna dalla directory 'mgui\lib'. Occorre
inoltre aggiungere la directory 'mgui\include' fra quelle di sistema,
impostare il modello del compilatore a 'Large' e attivare l'opzione per
il set di istruzioni del 386.

Per l'uso della versione Unix e' necessario disporre di un compilatore ANSI C,
delle librerie di sistema e della Xlib.


COME INIZIARE

Affinche' la fase di apprendimento della programmazione con MGUI sia veloce e
non tediosa, e' consigliabile procedere come di seguito suggerito.

   Prima di tutto compilare e lanciare il programma di test che si trova nella
directory 'mgui/test' (makefile o progetto per DOS o Windows in mgui\*test).
Questo programma usa tutti gli Oggetti MGUI disponibili e molte delle 
funzionalita' della libreria.
Quasi tutte le finestre create dal programma visualizzano il codice sorgente
che le realizza (sempre che il programma sia lanciato dalla stessa directory
in cui e' stato compilato).
   Dopo avere provato per intero le funzionalita' offerte dal programma,
compilare tutti esempi nella directory 'mgui/examples', leggere attentamente
la guida alla programmazione che si trova nella la directory 'mgui/doc' ed
eseguire i programmi esempio gia' compilati, man mano che si incontrano nella
guida.
   Sfortunatamente non esiste ancora un manuale per il Designer. Alcune linee
guida sono comunque riportate nel file 'designer.ita'.
Eseguire MGUI Designer e caricare il file esempio 'project1.mdp'. Dopo avere
attivato l'opzione 'include MGUIMain()', generare il codice sorgente, compilare
il modulo generato 'project1.c' usando come modello il makefile o il .ide
di 'mguitest'. Il programma risultante aprira' una finestra identica a quella
visualizzata dal Designer.
   Come ultimo passo si puo' provare a replicare con il Designer le finestre
dell'esempio 'project1.mdp'. Conviene dapprima creare una gerarchia di Oggetti
MGUI identica a quella dell'esempio, quindi, ad ogni Oggetto che ha un aspetto
diverso rispetto al suo corrispondente nell'esempio, provare a modificare gli
attributi colore, shadow, font, scalabilita' orizzontale e verticale, legami.
Si raggiungera' una buona padronanza dello strumento quando si riuscira' a
clonare l'esempio 'project3.mdp'.


FORSE NELLE VERSIONI FUTURE

Le prossime versioni di MGUI potrebbero contenere qualcuna delle seguenti
estensioni, in ordine casuale:

- Frame C++
- Iconizzazione delle finestre in DOS
- Linee di separazione nelle voci di menu
- Semplificazione della gestione dell'Oggetto MENU nel Designer
- Aggiunta del capitolo 'Uso avanzato di MGUI' nella guida alla programmazione
- Manuale di riferimento di MGUI
- Oggetto SLIDER
- Stampa grafica

Suggerimenti, critiche, report di bug o segnalazioni di preferenze sui contenuti
delle prossime release, saranno apprezzati dall'autore.
Scrivere a: morellov@mbox.vol.it

La home page di MGUI contiene informazioni sull'ultima release disponibile
e sui nodi ftp da cui si puo' prelevare MGUI:

http://www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index.htm

Se MGUI torna utile e si vuole che continui ad evolvere, allora val la pena
valutare l'opportunita' di registrare la propria copia. Le congratulazioni
non sono un incentivo sufficiente per continuare a mantenere aggiornata la
distribuzione di MGUI.
