typedef struct WINBOX_MENU {
int magicNumber; // = 1
char *title;
int nItems;
void **items; // pointe vers un tableau de Menus et d'Items
int nSelected;
struct WINBOX_MENU *parent;
} wMENU;
typedef struct WINBOX_ITEM {
int magicNumber; // = 2
char *str;
BOOL isSelected;
} wITEM; wMENU et wITEM sont les structures utilisées par WinBox pour dessiner les menus.
wMENU *wMenu(const char *title) - Créé un menu vierge et son titre.
wMENU *wMenu_AddItem(wMENU *menu, const char *item) - Ajoute un item à un menu. Si celui-ci n'existe pas il est créé.
wMENU *wMenu_AddItemList(wMENU *menu, const char *items) - Ajoute plusieurs items à un menu. Si celui-ci n'existe pas il est créé.
wMENU *wMenu_NewItemList(const char *menuTitle, const char *items) - Créé un menu et ajoute des items.
wMENU *wMenu_SetItem(wMENU *menu, const char *str, int item) - Remplace le texte de l'élément item du menu m par str. Si item est supérieur au nombre d'items, la fonction en rajoute un nouveau. Cette fonction peut également modifier un sous-menu.
wMENU *wMenu_SetTitle(wMENU *menu, const char *title) - Change le titre du menu.
wMENU *wMenu_AddMenu(wMENU *menu, wMENU *subMenu) - Ajoute subMenu à menu. Si menu n'existe pas il est créé.
wMENU *wMenu_FileList(const char *title, const char *path, const char *pattern, int depth) - Créé un menu et son titre. Le menu contiendra tous les fichiers et sous-répertoires du dossier indiqué par l'argument path.
wMENU *wMenu_FolderList(const char *title, const char *path, const char *pattern) - Créé un menu et son titre. Le menu contiendra tous les sous-répertoires du dossier indiqué par l'argument path.
void wMenu_Close(wMENU *menu) - Libère un menu et tous ses sous-menus.
Le format attendu pour l'argument items de la méthode wMenu_AddItemList est le suivant :
"chaîne1|chaîne2|chaîne3"
Le caractère '|' sépare les chaînes entre elles. Il n'y a pas besoin d'indiquer le nombre de chaînes.
Autres Méthodes de Menus
int wMenu_GetSelectedItem(wMENU *menu) - Retourne le numéro du premier item sélectionné.
char *wMenu_GetSelectedStr(wMENU *menu) - Retourne la chaîne du premier item sélectionné.
BOOL wMenu_HasSelectedItemOrMenu(wMENU *menu) - Renvoie 1 si le menu a un item ou sous-menu sélectionné.
int wMenu_IsSelected(wMENU *menu, int item) - Retourne 1 si l'item est sélectionné, 0 sinon.
void wMenu_DeselectAll(wMENU *menu) - Déselectionne tous les items du menu.