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 >
C/C++ Source or Header  |  1994-10-18  |  3KB  |  160 lines

  1. /*----- demo01.cpp
  2.  
  3.     sujets :
  4.  
  5.         - initialisation du système
  6.         - boucle de lecture des événements
  7.         - création d'une fenêtre standard
  8.  
  9. */
  10.  
  11. /*-----
  12.     définitions
  13. */
  14. #include    "xe.h"                /* gestionnaire d'événements    */
  15. #include    "xk.h"                /* constantes clavier            */
  16. #include    "xw.h"                /* gestionnaire de fenêtres        */
  17.  
  18. /*-----
  19.     classe de fenêtre MyWin
  20.  
  21.     Constructeur de MyWin :
  22.  
  23.         - titre str.
  24.  
  25.     Destructeur de MyWin :
  26.  
  27.         - aucun destructeur spécifique.
  28.  
  29.     Définition de MyWin :
  30.  
  31.         - largeur de 50 colonnes,
  32.         - hauteur de 15 lignes,
  33.         - fenêtre standard (cadre, titre, ombre, déplaçable, modale).
  34.  
  35. */
  36.  
  37. class    MyWin : public XWin
  38.         {
  39.         public :
  40.             MyWin (const char *str);
  41.  
  42.         };
  43.  
  44. MyWin::MyWin (const char *str)
  45.         : XWin(50, 15)
  46.         {
  47.         /* associe un titre à la fenêtre
  48.         */
  49.         head(str);
  50.         }
  51.  
  52. /*-----
  53.     app_init() - initialisation de l'application
  54.  
  55.     L'initialisation de l'application passe par :
  56.  
  57.         - l'initialisation globale du gestionnaire de fenêtres,
  58.         - l'affichage du bureau.
  59.  
  60. */
  61.  
  62. void    app_init (void)
  63.         {
  64.         /* initialise tous les gestionnaires en une seule passe
  65.         */
  66.         xw.full(1);
  67.  
  68.         /* affiche le bureau
  69.         */
  70.         xw.desk();
  71.         }
  72.  
  73. /*-----
  74.     app_quit() - terminaison de l'application
  75.  
  76.     La terminaison de l'application passe par :
  77.  
  78.         - la terminaison globale du gestionnaire de fenêtres.
  79.  
  80. */
  81.  
  82. void    app_quit (void)
  83.         {
  84.         /* quitte tous les gestionnaires en une seule passe
  85.         */
  86.         xw.full(0);
  87.         }
  88.  
  89. /*-----
  90.     app_exec() - exécution de l'application
  91.  
  92.     L'exécution de l'application passe par :
  93.  
  94.         - la création d'une fenêtre de type MyWin,
  95.         - l'ouverture de la fenêtre,
  96.         - la lecture de chaque événement,
  97.         - l'évaluation de l'événement récupéré.
  98.  
  99.     L'exécution prend fin avec la touche ESCAPE.
  100.  
  101. */
  102.  
  103. void    app_exec (void)
  104.         {
  105.         XEvn    evn;
  106.         MyWin *    win;
  107.  
  108.         /* crée une fenêtre MyWin
  109.         */
  110.         win = new MyWin("MA FENETRE");
  111.  
  112.         /* ouvre la fenêtre créée
  113.         */
  114.         win->topw();
  115.  
  116.         /* boucle de lecture des événements
  117.         */
  118.         while (1)
  119.             {
  120.             /* lit le prochain événement
  121.             */
  122.             xe.next(evn);
  123.  
  124.             /* si événement en provenance du clavier
  125.             */
  126.             if (evn.val == xe_CHAR)
  127.                 {
  128.  
  129.                 /* si touche de fin ESCAPE
  130.                 */
  131.                 if (evn.ar1 == xk_ESC)
  132.                     break;
  133.  
  134.                 }
  135.  
  136.             /* évalue l'événement récupéré
  137.             */
  138.             xw.eval(evn);
  139.             }
  140.  
  141.         /* ferme et détruit la fenêtre
  142.         */
  143.         delete win;
  144.         }
  145.  
  146. void    main (void)
  147.         {
  148.         /* initialisation de l'application
  149.         */
  150.         app_init();
  151.  
  152.         /* exécution de l'application
  153.         */
  154.         app_exec();
  155.  
  156.         /* fin de l'application
  157.         */
  158.         app_quit();
  159.         }
  160.