void MenuSystem::displayMenu(){ if (_curMenu == 0){ if(_curSubMenu < _numMenuTitles){ printTopMenu(getMenuTitle(_curMenu), _screenWidth); printSubMenu(getMenuTitle(_curSubMenu), _screenWidth - 4); } }else{ printTopMenu(getMenuTitle(_curMenu), _screenWidth); if(getMenuOption(_curSubMenu, _curOption)){ printSubMenu(getActionTitle(getMenuOption(_curSubMenu,_curOption) - 1), _screenWidth - 4); } } }
void UserMenuTree::insertIntoSubmenu(QTreeWidgetItem *current, UserMenuData::MenuType type) { QString menulabel; if ( type == UserMenuData::Text || type == UserMenuData::Submenu ) { menulabel = getMenuTitle(i18n("Please enter a label for this entry:")); if ( menulabel.isEmpty() ) { return; } } UserMenuItem *item = new UserMenuItem(type,menulabel); insertItem(current,0,item); setCurrentItem(item); }
// insert a submenu item bool UserMenuTree::insertSubmenu(QTreeWidgetItem *current, bool below) { QString menulabel = getMenuTitle(i18n("Please enter a label for this submenu:")); if ( menulabel.isEmpty() ) { return false; } if ( below ) { insertMenuItemBelow(current,UserMenuData::Submenu,menulabel); } else { insertMenuItemAbove(current,UserMenuData::Submenu,menulabel); } return true; }
void GUI::initMenu(Menu &menu) { _menuButtonList = 0; _screen->hideMouse(); int textX; int textY; int menu_x2 = menu.width + menu.x - 1; int menu_y2 = menu.height + menu.y - 1; _screen->fillRect(menu.x + 2, menu.y + 2, menu_x2 - 2, menu_y2 - 2, menu.bkgdColor); _screen->drawShadedBox(menu.x, menu.y, menu_x2, menu_y2, menu.color1, menu.color2); if (menu.titleX != -1) textX = menu.titleX; else textX = getMenuCenterStringX(getMenuTitle(menu), menu.x, menu_x2); textY = menu.y + menu.titleY; if (_vm->game() == GI_LOL) { printMenuText(getMenuTitle(menu), textX, textY, menu.textColor, 0, 9); } else { if (_vm->gameFlags().platform != Common::kPlatformAmiga) printMenuText(getMenuTitle(menu), textX - 1, textY + 1, defaultColor1(), defaultColor2(), 0); printMenuText(getMenuTitle(menu), textX, textY, menu.textColor, 0, 0); } int x1, y1, x2, y2; for (int i = 0; i < menu.numberOfItems; ++i) { if (!menu.item[i].enabled) continue; x1 = menu.x + menu.item[i].x; y1 = menu.y + menu.item[i].y; x2 = x1 + menu.item[i].width - 1; y2 = y1 + menu.item[i].height - 1; if (i < 7) { Button *menuButtonData = getButtonListData() + i; menuButtonData->nextButton = 0; menuButtonData->x = x1; menuButtonData->y = y1; menuButtonData->width = menu.item[i].width - 1; menuButtonData->height = menu.item[i].height - 1; menuButtonData->buttonCallback = menu.item[i].callback; menuButtonData->keyCode = menu.item[i].keyCode; menuButtonData->keyCode2 = 0; menuButtonData->arg = menu.item[i].itemId; _menuButtonList = addButtonToList(_menuButtonList, menuButtonData); } _screen->fillRect(x1, y1, x2, y2, menu.item[i].bkgdColor); _screen->drawShadedBox(x1, y1, x2, y2, menu.item[i].color1, menu.item[i].color2); if (getMenuItemTitle(menu.item[i])) { if (menu.item[i].titleX != -1) textX = x1 + menu.item[i].titleX + 3; else textX = getMenuCenterStringX(getMenuItemTitle(menu.item[i]), x1, x2); textY = y1 + 2; if (_vm->game() == GI_LOL) { textY++; if (i == menu.highlightedItem) printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].highlightColor, 0, 8); else printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].textColor, 0, 8); } else { Screen::FontId of = _screen->_currentFont; if (menu.item[i].saveSlot > 0) _screen->setFont(Screen::FID_8_FNT); if (_vm->gameFlags().platform != Common::kPlatformAmiga) printMenuText(getMenuItemTitle(menu.item[i]), textX - 1, textY + 1, defaultColor1(), 0, 0); if (i == menu.highlightedItem) printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].highlightColor, 0, 0); else printMenuText(getMenuItemTitle(menu.item[i]), textX, textY, menu.item[i].textColor, 0, 0); _screen->setFont(of); } } } for (int i = 0; i < menu.numberOfItems; ++i) { if (getMenuItemLabel(menu.item[i])) { if (_vm->game() == GI_LOL) { menu.item[i].labelX = menu.item[i].x - 1; menu.item[i].labelY = menu.item[i].y + 3; printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX, menu.y + menu.item[i].labelY, menu.item[i].textColor, 0, 10); } else { if (_vm->gameFlags().platform != Common::kPlatformAmiga) printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX - 1, menu.y + menu.item[i].labelY + 1, defaultColor1(), 0, 0); printMenuText(getMenuItemLabel(menu.item[i]), menu.x + menu.item[i].labelX, menu.y + menu.item[i].labelY, menu.item[i].textColor, 0, 0); } } } if (menu.scrollUpButtonX != -1) { Button *scrollUpButton = getScrollUpButton(); scrollUpButton->x = menu.scrollUpButtonX + menu.x; scrollUpButton->y = menu.scrollUpButtonY + menu.y; scrollUpButton->buttonCallback = getScrollUpButtonHandler(); scrollUpButton->nextButton = 0; scrollUpButton->mouseWheel = -1; _menuButtonList = addButtonToList(_menuButtonList, scrollUpButton); updateMenuButton(scrollUpButton); Button *scrollDownButton = getScrollDownButton(); scrollDownButton->x = menu.scrollDownButtonX + menu.x; scrollDownButton->y = menu.scrollDownButtonY + menu.y; scrollDownButton->buttonCallback = getScrollDownButtonHandler(); scrollDownButton->nextButton = 0; scrollDownButton->mouseWheel = 1; _menuButtonList = addButtonToList(_menuButtonList, scrollDownButton); updateMenuButton(scrollDownButton); } _screen->showMouse(); _screen->updateScreen(); }