bsp
|
00001 #ifndef _MENU_H_ 00002 #define _MENU_H_ 00003 00004 //flags 00005 #define MENU_FLAG_SOFT 1 //option visible in software mode only 00006 #define MENU_FLAG_GL 2 //option visible in gl mode only 00007 #define MENU_FLAG_BMP 4 //menu should draw assoc. bmp 00008 // 0xF8 reserved for new rendering modes or stuff 00009 #define MENU_FLAG_SUBMENU 0x100 //menuitem is submenu rather than ccmd_t 00010 #define MENU_FLAG_SEPARATOR 0x200 //separator 00011 #define MENU_FLAG_RECENT 0x400 //evaluate to recent list 00012 #define MENU_FLAG_EXPORT 0x800 //evaluate to export list 00013 #define MENU_FLAG_GAME 0x1000 //check game value 00014 #define MENU_FLAG_GAME_MASK 0xF0000000 //upper 4 bits == set.game_mode 00015 #define MENU_MAKE_GAME_VAL(v) (((v)&0xF)<<28) //convert game number to or'able value 00016 #define MENU_GET_GAME_VAL(v) ((int)(((v)>>28)&0xF)) 00017 //tokens 00018 #define MENU_TOKEN_SOFT "SOFT" 00019 #define MENU_TOKEN_GL "GL" 00020 #define MENU_TOKEN_GAME "GAME" 00021 #define MENU_TOKEN_BMP "BMP" 00022 #define MENU_TOKEN_MENU "MENU" 00023 #define MENU_TOKEN_POPUP "POPUP" 00024 #define MENU_TOKEN_SUBMENU "SUBMENU" 00025 #define MENU_TOKEN_ENTER_SCOPE "{" 00026 #define MENU_TOKEN_LEAVE_SCOPE "}" 00027 #define MENU_TOKEN_SEPARATOR "-" 00028 #define MENU_TOKEN_RECENT "recent_files" 00029 #define MENU_TOKEN_EXPORT "exporters" 00030 //menu_t types 00031 #define MENU_TYPE_MENU 1 00032 #define MENU_TYPE_POPUP 2 00033 //stuff 00034 #define MENU_MAX_SUBMENUS 8 00035 00036 //built-in menus 00037 #define MENU_BSP_MAIN "bspmenu" 00038 00039 typedef struct menuitem_s 00040 { 00041 ccmd_t *cmd; 00042 unsigned int flags; 00043 char *submenu_text; 00044 menuitem_s *submenu; 00045 menuitem_s *next; 00046 menuitem_s *prev; 00047 } menuitem_t; 00048 00049 typedef struct menu_s 00050 { 00051 char name[30]; 00052 HMENU hMenu; 00053 int type; 00054 menuitem_t *menu; 00055 menu_s *next; 00056 } menu_t; 00057 extern void Menu_Initialize(); 00058 extern void Menu_Destroy(); 00059 extern void Menu_DestroyMenus(); 00060 extern void Menu_LoadConfig(char *file); 00061 00062 extern bool Menu_Create(menu_t *menu); 00063 extern menu_t *Menu_Find(char *name); 00064 00065 #endif //_MENU_H_