Page principale | Hiérarchie des classes | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier

GUI.h

Aller à la documentation de ce fichier.
00001 /*! \file GUI.h
00002     \brief GUI en console.
00003 
00004     Interface graphique en console.
00005 
00006     \author     aerith (contact@aerith.biz - www.aerith.biz)
00007     \version    5.0
00008     \date       03/05/2005  
00009 */
00010 
00011 #ifndef INCLUDE_RSRC_GUI
00012 #define INCLUDE_RSRC_GUI
00013 
00014 #include    "../Surcouche/SurcoucheConsole.h"
00015 #include    "../Tools/Tools.h"
00016 
00017 #define     GUI_NBC         80          /*!< Nombre de colone.  */
00018 #define     GUI_NBL         24          /*!< Nombre de ligne.   */
00019 
00020 #define     GUI_HG          "\xC9"      /*!< Coin haut gauche.  */
00021 #define     GUI_HD          "\xBB"      /*!< Coin haut droite.  */
00022 #define     GUI_BG          "\xC8"      /*!< Coin bas gauche.   */
00023 #define     GUI_BD          "\xBC"      /*!< Coin bas droite.   */
00024 #define     GUI_YG          "\xCC"      /*!< Y gauche.          */
00025 #define     GUI_YD          "\xB9"      /*!< Y droite.          */
00026 #define     GUI_YH          "\xCB"      /*!< Y haut.            */
00027 #define     GUI_YB          "\xCA"      /*!< Y bas.             */
00028 #define     GUI_TH          "\xCD"      /*!< Trait horizontal.  */
00029 #define     GUI_TV          "\xBA"      /*!< Trait vertical.    */
00030 
00031 
00032 //! Interface graphique en console.
00033 /*! Interface graphique portable et couleur en console.
00034 */
00035 class GUI
00036 {
00037 private :
00038     static int          NbWindow;       /*!< Nombre de fenetre.                             */
00039     static GUIWindow    **Windows;      /*!< Chaque lignes est une fenetre.                 */
00040     static int          ActiveWindow;   /*!< Id de la fenetre active.                       */
00041     static int          GUIInstance;    /*!< Compte les instances de la class.              */
00042     static MUTEX        GUIMutex;       /*!< Utiliser des que l'on accede à la console.     */
00043 
00044 public  :
00045     /*! Initialise la GUI.
00046     */
00047     GUI();
00048 
00049     /*! Libere la mémoire proprement.
00050     */
00051     ~GUI();
00052 
00053     //! Ajoute une fenetre.
00054     /*! Ajoute une fenetre avec un nouvelle Id.
00055         \param iId ID de la fenetre.
00056         \param pTitre Titre de la fenetre (en haut).
00057         \param iX Position en X de la fenetre, si -1 alors centrée.
00058         \param iY Position en Y de la fenetre, si -1 alors centrée.
00059         \param iL Largeur de la fenetre, si 0 largeur de la console.
00060         \param iH Hauteur de la fenetre, si 0 hauteur de la console.
00061         \param pHelp Message d'aide (en bas).
00062         \return Code d'erreur.
00063         \sa DelWindow(), GetWindow(), GetWindowNo() et GetNbWindow().
00064     */
00065     int     AddWindow(int iId, char *pTitre, int iL = 0, int iH = 0, int iX = -1, int iY = -1, char *pHelp = NULL);
00066 
00067     //! Supprime une fenetre.
00068     /*! Supprime la fenetre d'id \a iId.
00069         \param iId ID de la fenetre.
00070         \return Code d'erreur.
00071         \sa AddWindow(), GetWindow(), GetWindowNo() et GetNbWindow().
00072     */
00073     int     DelWindow(int iId);
00074 
00075     //! Retourne une fenetre.
00076     /*! Permet l'acces à la fenetre ayant l'id \a iId.
00077         \param iId Id de la fenetre.
00078         \return pointeur sur la class de la fenetre.
00079         \sa AddWindow(), DelWindow(), GetWindowNo() et GetNbWindow().
00080     */
00081     GUIWindow   *GetWindow(int iId);
00082 
00083     //! Retourne une fentre par sa position.
00084     /*! Permet l'acces à la fenetre étant à la position \a iPos.
00085         \param iPos position de la fenetre.
00086         \return pointeur sur la class de la fenetre.
00087         \sa AddWindow(), DelWindow(), GetWindow() et GetNbWindow().
00088     */
00089     inline GUIWindow    *GetWindowNo(int iPos)
00090     {
00091         if(iPos > NbWindow)
00092             iPos = 0;
00093 
00094         return Windows[iPos];
00095     };
00096 
00097     //! Retourne le nombre de fenetre.
00098     /*! Retourne le nombre de fenetre contenu dans la GUI.
00099         \return nombre de fenetre dans la GUI.
00100         \sa AddWindow(), DelWindow(), GetWindow() et GetWindowNo().
00101     */
00102     inline int      GetNbWindow()
00103     {
00104         return NbWindow;
00105     };
00106 
00107     //! Retourne le nombre d'instance.
00108     /*! Retourne le nombre d'instance de la class (pour multitache ou multiGUI).
00109         \return nombre d'instance de la class.
00110     */
00111     inline int      GetNbInstance()
00112     {
00113         return GUIInstance;
00114     };
00115 
00116     //! Affiche la GUI.
00117     /*! Rend active et affiche la GUI.
00118         \return Code d'erreur.
00119     */
00120     int     Print()
00121 
00122 KeyBoard()
00123 
00124 SetLenght()
00125 GetLenght()
00126 SetHeigth()
00127 GetHeigth()
00128 
00129 
00130 }
00131 
00132 
00133 #endif
00134 

Généré le Thu Jan 24 12:36:03 2008 pour A.I.F. par  doxygen 1.3.9.1