int GUI_HoF::audioOptions(Button *caller) { updateMenuButton(caller); restorePage1(_vm->_screenBuffer); backUpPage1(_vm->_screenBuffer); initMenu(_audioOptions); const int menuX = _audioOptions.x; const int menuY = _audioOptions.y; const int maxButton = 3; // 2 if voc is disabled for (int i = 0; i < maxButton; ++i) { int x = menuX + _sliderBarsPosition[i*2+0]; int y = menuY + _sliderBarsPosition[i*2+1]; _screen->drawShape(0, _vm->_buttonShapes[16], x, y, 0, 0); drawSliderBar(i, _vm->_buttonShapes[17]); _sliderButtons[0][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[0][i].x = x; _sliderButtons[0][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[0][i]); _sliderButtons[2][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[2][i].x = x + 10; _sliderButtons[2][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[2][i]); _sliderButtons[1][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[1][i].x = x + 120; _sliderButtons[1][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[1][i]); } _isOptionsMenu = true; updateAllMenuButtons(); bool speechEnabled = _vm->speechEnabled(); while (_isOptionsMenu) { processHighlights(_audioOptions); getInput(); } restorePage1(_vm->_screenBuffer); backUpPage1(_vm->_screenBuffer); if (speechEnabled && !_vm->textEnabled() && (!_vm->speechEnabled() || _vm->getVolume(KyraEngine_v1::kVolumeSpeech) == 2)) { _vm->_configVoice = 0; choiceDialog(0x1D, 0); } _vm->writeSettings(); initMenu(*_currentMenu); updateAllMenuButtons(); return 0; }
int GUI_HoF::gameOptions(Button *caller) { updateMenuButton(caller); restorePage1(_vm->_screenBuffer); backUpPage1(_vm->_screenBuffer); initMenu(_gameOptions); _isOptionsMenu = true; const int menuX = _gameOptions.x; const int menuY = _gameOptions.y; for (int i = 0; i < 4; ++i) { int x = menuX + _sliderBarsPosition[i*2+0]; int y = menuY + _sliderBarsPosition[i*2+1]; _screen->drawShape(0, _vm->_buttonShapes[16], x, y, 0, 0); drawSliderBar(i, _vm->_buttonShapes[17]); _sliderButtons[0][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[0][i].x = x; _sliderButtons[0][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[0][i]); _sliderButtons[2][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[2][i].x = x + 10; _sliderButtons[2][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[2][i]); _sliderButtons[1][i].buttonCallback = _sliderHandlerFunctor; _sliderButtons[1][i].x = x + 120; _sliderButtons[1][i].y = y; _menuButtonList = addButtonToList(_menuButtonList, &_sliderButtons[1][i]); } while (_isOptionsMenu) { processHighlights(_gameOptions); getInput(); } restorePage1(_vm->_screenBuffer); backUpPage1(_vm->_screenBuffer); _vm->writeSettings(); initMenu(*_currentMenu); updateAllMenuButtons(); return 0; }
void KNPreferenceCategoryList::addCategory(const QString &text, const QPixmap &pixmap) { //Generate a item for this category KNPreferenceCategoryItem *currentItem=new KNPreferenceCategoryItem(this); currentItem->setText(text); currentItem->setIcon(pixmap); //Add the item to the list. addButtonToList(currentItem); }
void ShopState::init(){ for(int i = 0; i < 6; i++){ float x = 0, y = 0, width = 0, height = 0; int buttonId = i+4; width = 256, height = 64; x = screenWidth-384, y = 64+96*i; Button *newButton = new Button(); newButton->setPos(x, y); newButton->setDimensions(width, height); newButton->setButtonId(buttonId); addButtonToList(newButton); } for(int i = 0; i < 2; i++){ float x = 0, y = 0, width = 0, height = 0; int buttonId = i+10; width = 256, height = 64; x = screenWidth-640, y = 64+96*i; Button *newButton = new Button(); newButton->setPos(x, y); newButton->setDimensions(width, height); newButton->setButtonId(buttonId); addButtonToList(newButton); } for(int i = 0; i < MAX_BUTTONS; i++) bulletList[i] = NULL; inShop = true; printf("ShopState Init\n"); }
void MenuState::init(){ int i = (inGame) ? 0 : 1; int loopValue = 3; for(; i < loopValue; i++){ float x = 0, y = 0, width = 0, height = 0; int buttonId = i; width = 256, height = 64; x = screenWidth/2-width/2, y = screenHeight/2-height/2-height*(((inGame) ? loopValue-1.0 : loopValue+0.0)/2)+height*i; Button *newButton = new Button(); newButton->setPos(x, y); newButton->setDimensions(width, height); newButton->setButtonId(buttonId); addButtonToList(newButton); } printf("MenuState Init\n"); }
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(); }