Menu *MakeConfigMenu(bool popup) { char menu_id[200]; Menu *m; Core_IDString(menu_id, "Configuration"); m = CfgMenuMaker(NLS0("Configuration"), "@BBCfg.", cfg_main, popup, menu_id); #if 0 char buff[MAX_PATH]; FindRCFile(buff, "plugins\\bbleanskin\\bblsmenu.rc", NULL); Menu *s = MakeRootMenu("Configuration_BBLS", buff, NULL, popup); if (s) MakeSubmenu(m, s, NULL); #endif return m; }
Menu *CfgMenuMaker(const char *title, const char *defbroam, const struct cfgmenu *pm, bool pop, char *menu_id) { char buf[100]; char *broam_dot; char *end_id; Menu *pMenu, *pSub; end_id = strchr(menu_id, 0); pMenu = MakeNamedMenu(title, menu_id, pop); broam_dot = strchr(strcpy_max(buf, defbroam, sizeof buf), 0); for (;pm->text; ++pm) { const char *item_text = pm->text; const void *v = pm->pvalue; const char *cmd = pm->command; const struct int_item *iip; bool disabled, checked; MenuItem *pItem; disabled = checked = false; if (cmd) { if ('@' != *cmd) strcpy(broam_dot, cmd), cmd = buf; if (NULL != (iip = get_int_item(v))) { pItem = MakeMenuItemInt( pMenu, item_text, cmd, *iip->v, iip->minval, iip->maxval); if (-2 != iip->offval) MenuItemOption(pItem, BBMENUITEM_OFFVAL, iip->offval, 10000 == iip->maxval ? NLS0("auto") : NULL); continue; } else if (is_string_item(v)) { MakeMenuItemString(pMenu, item_text, cmd, (const char*)v); continue; } else if (is_fixed_string(v)) { checked = 0 == stricmp((const char *)v, strchr(cmd, ' ')+1); } else if (v) { checked = *(bool*)v; } disabled = (v == &Settings_styleXPFix && Settings_altMethod) || (v == &Settings_menu.dropShadows && false == usingXP) ; pItem = MakeMenuItem(pMenu, item_text, cmd, checked && false == disabled); } else if (v) { sprintf(end_id, "_%s", item_text); if ((DWORD_PTR)v <= SUB_PLUGIN_SLIT) pSub = PluginManager_GetMenu(item_text, menu_id, pop, (int)(DWORD_PTR)v); else pSub = CfgMenuMaker(item_text, defbroam, (struct cfgmenu*)v, pop, menu_id); if (NULL == pSub) continue; pItem = MakeSubmenu(pMenu, pSub, NULL); } else { pItem = MakeMenuNOP(pMenu, item_text); } if (disabled) MenuItemOption(pItem, BBMENUITEM_DISABLED); } return pMenu; }
void Toolbar_ShowMenu(bool popup) { TCHAR menu_id[200]; _tcsncpy_s(menu_id, 200, _T("IDRoot_configuration_TB"), _TRUNCATE); ShowMenu(CfgMenuMaker(NLS0(_T("Toolbar")), tb_main, popup, menu_id, 200)); }
void Toolbar_ShowMenu(bool popup) { char menu_id[200]; strcpy(menu_id, "IDRoot_configuration_TB"); ShowMenu(CfgMenuMaker(NLS0("Toolbar"), tb_main, popup, menu_id)); }