home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 18
/
CD_ASCQ_18_111294_W.iso
/
dos
/
prg
/
c
/
x_lib10
/
demo01.cpp
next >
Wrap
C/C++ Source or Header
|
1994-10-18
|
3KB
|
160 lines
/*----- demo01.cpp
sujets :
- initialisation du système
- boucle de lecture des événements
- création d'une fenêtre standard
*/
/*-----
définitions
*/
#include "xe.h" /* gestionnaire d'événements */
#include "xk.h" /* constantes clavier */
#include "xw.h" /* gestionnaire de fenêtres */
/*-----
classe de fenêtre MyWin
Constructeur de MyWin :
- titre str.
Destructeur de MyWin :
- aucun destructeur spécifique.
Définition de MyWin :
- largeur de 50 colonnes,
- hauteur de 15 lignes,
- fenêtre standard (cadre, titre, ombre, déplaçable, modale).
*/
class MyWin : public XWin
{
public :
MyWin (const char *str);
};
MyWin::MyWin (const char *str)
: XWin(50, 15)
{
/* associe un titre à la fenêtre
*/
head(str);
}
/*-----
app_init() - initialisation de l'application
L'initialisation de l'application passe par :
- l'initialisation globale du gestionnaire de fenêtres,
- l'affichage du bureau.
*/
void app_init (void)
{
/* initialise tous les gestionnaires en une seule passe
*/
xw.full(1);
/* affiche le bureau
*/
xw.desk();
}
/*-----
app_quit() - terminaison de l'application
La terminaison de l'application passe par :
- la terminaison globale du gestionnaire de fenêtres.
*/
void app_quit (void)
{
/* quitte tous les gestionnaires en une seule passe
*/
xw.full(0);
}
/*-----
app_exec() - exécution de l'application
L'exécution de l'application passe par :
- la création d'une fenêtre de type MyWin,
- l'ouverture de la fenêtre,
- la lecture de chaque événement,
- l'évaluation de l'événement récupéré.
L'exécution prend fin avec la touche ESCAPE.
*/
void app_exec (void)
{
XEvn evn;
MyWin * win;
/* crée une fenêtre MyWin
*/
win = new MyWin("MA FENETRE");
/* ouvre la fenêtre créée
*/
win->topw();
/* boucle de lecture des événements
*/
while (1)
{
/* lit le prochain événement
*/
xe.next(evn);
/* si événement en provenance du clavier
*/
if (evn.val == xe_CHAR)
{
/* si touche de fin ESCAPE
*/
if (evn.ar1 == xk_ESC)
break;
}
/* évalue l'événement récupéré
*/
xw.eval(evn);
}
/* ferme et détruit la fenêtre
*/
delete win;
}
void main (void)
{
/* initialisation de l'application
*/
app_init();
/* exécution de l'application
*/
app_exec();
/* fin de l'application
*/
app_quit();
}