00001 /*! \file GUIMenu.h 00002 \brief Moteur de menu. 00003 00004 Création et gestion de menus graphique. 00005 00006 \author aerith (contact@aerith.biz - www.aerith.biz) 00007 \version 4.0 00008 \date 01/05/2005 00009 00010 */ 00011 00012 #ifndef INCLUDE_RSRC_GUI_MENU 00013 #define INCLUDE_RSRC_GUI_MENU 00014 00015 00016 00017 //! Moteur de menu. 00018 /*! Création et gestion de menus graphique. 00019 */ 00020 class GUIMenu 00021 { 00022 private : 00023 char *Titre; /*!< Titre du menu. */ 00024 char **Items; /*!< Nom des items du menu. */ 00025 int NbItem; /*!< Nombre d'items dans le menu. */ 00026 int Selected; /*!< Numero de l'item selectionner. */ 00027 MVirtuel Image; /*!< Buffer d'ecran. */ 00028 00029 public : 00030 /*! Inialisé avec des paramètres par defaut et definie le tire. 00031 */ 00032 Menu(char *pTitre = ""); 00033 00034 /*! Libère la mémoire proprement. 00035 */ 00036 ~Menu(); 00037 00038 //! Ajoute un item. 00039 /*! Ajoute un item au menu. 00040 \param iId Id de l'item. 00041 \param pNom Nom de l'item. 00042 \return \a NbItem (= à iId). 00043 */ 00044 int AddItem(int iId, char *pNom); 00045 00046 //! Selectionne un item. 00047 /*! Selection l'item dans le menu. 00048 \param iId Id de l'item. 00049 \return \a Selected. 00050 */ 00051 inline int SetSelected(int iId) 00052 { 00053 Selected = iId; 00054 00055 return Selected; 00056 }; 00057 00058 //! Affiche le menu. 00059 /*! Construi et affiche l'imade du menu. 00060 \return pointeur sur \a Image. 00061 */ 00062 MVirtuel Affiche(); 00063 00064 //! Retourne le buffer d'ecran du menu. 00065 /*! Retourne le buffer d'ecran \a Image du menu. 00066 \return pointeur sur \a Image. 00067 */ 00068 inline MVirtuel GetImage() 00069 { 00070 return Image; 00071 }; 00072 00073 //! Gere le menu. 00074 /*! Gere le menu, touche \i Haut, \i Bas et \i Entrée. 00075 \return \a Selected sur appuie sur \i Entrée. 00076 */ 00077 int Gere(); 00078 }; 00079 00080 #endif