void JumpButtonBar::letterClicked() { JumpButton *button = (JumpButton*)sender(); QString character = button->firstChar(); emit jumpToLetter( character ); }
GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : GuiComponent(window), mSystem(system), mMenu(window, "OPTIONS") { addChild(&mMenu); // jump to letter char curChar = toupper(getGamelist()->getCursor()->getName()[0]); if(curChar < 'A' || curChar > 'Z') curChar = 'A'; mJumpToLetterList = std::make_shared<LetterList>(mWindow, "JUMP TO LETTER", false); for(char c = 'A'; c <= 'Z'; c++) mJumpToLetterList->add(std::string(1, c), c, c == curChar); ComponentListRow row; row.addElement(std::make_shared<TextComponent>(mWindow, "JUMP TO LETTER", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); row.addElement(mJumpToLetterList, false); row.input_handler = [&](InputConfig* config, Input input) { if(config->isMappedTo("a", input) && input.value) { jumpToLetter(); return true; } else if(mJumpToLetterList->input(config, input)) { return true; } return false; }; mMenu.addRow(row); // sort list by mListSort = std::make_shared<SortList>(mWindow, "SORT GAMES BY", false); for(unsigned int i = 0; i < FileSorts::SortTypes.size(); i++) { const FileData::SortType& sort = FileSorts::SortTypes.at(i); mListSort->add(sort.description, &sort, i == system->sortId); } mMenu.addWithLabel("SORT GAMES BY", mListSort); // edit game metadata row.elements.clear(); row.addElement(std::make_shared<TextComponent>(mWindow, "EDIT THIS GAME'S METADATA", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); row.addElement(makeArrow(mWindow), false); row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::openMetaDataEd, this)); mMenu.addRow(row); // center the menu setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); mMenu.setPosition((mSize.x() - mMenu.getSize().x()) / 2, (mSize.y() - mMenu.getSize().y()) / 2); }
GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : GuiComponent(window), mSystem(system), mMenu(window, "OPTIONS") { LOG(LogDebug) << "GUIGamelistOptions::GuiGamelistOptions()"; addChild(&mMenu); // jump to letter char curChar = toupper(getGamelist()->getCursor()->getName()[0]); if(curChar < 'A' || curChar > 'Z') curChar = 'A'; mJumpToLetterList = std::make_shared<LetterList>(mWindow, "JUMP TO LETTER", false); for(char c = 'A'; c <= 'Z'; c++) mJumpToLetterList->add(std::string(1, c), c, c == curChar); ComponentListRow row; row.addElement(std::make_shared<TextComponent>(mWindow, "JUMP TO LETTER", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); row.addElement(mJumpToLetterList, false); row.input_handler = [&](InputConfig* config, Input input) { if(config->isMappedTo("a", input) && input.value) { jumpToLetter(); return true; } else if(mJumpToLetterList->input(config, input)) { return true; } return false; }; mMenu.addRow(row); row.elements.clear(); row.addElement(std::make_shared<TextComponent>(mWindow, "SURPRISE ME!", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); row.input_handler = [&](InputConfig* config, Input input) { if(config->isMappedTo("a", input) && input.value) { SurpriseMe(); return true; } return false; }; mMenu.addRow(row); // sort list by mListSort = std::make_shared<SortList>(mWindow, "SORT GAMES BY", false); for(unsigned int i = 0; i < FileSorts::SortTypes.size(); i++) { const FileData::SortType& sort = FileSorts::SortTypes.at(i); mListSort->add(sort.description, &sort, i == 0); // TODO - actually make the sort type persistent } mMenu.addWithLabel("SORT GAMES BY", mListSort); // Show favorites-only auto favorite_only = std::make_shared<SwitchComponent>(mWindow); favorite_only->setState(Settings::getInstance()->getBool("FavoritesOnly")); mMenu.addWithLabel("FAVORITES ONLY", favorite_only); addSaveFunc([favorite_only, this] { Settings::getInstance()->setBool("FavoritesOnly", favorite_only->getState()); mFavoriteStateChanged = true; }); // edit game metadata - only in Full UI mode if(Settings::getInstance()->getString("UIMode") == "Full") { row.elements.clear(); row.addElement(std::make_shared<TextComponent>(mWindow, "EDIT THIS GAME'S METADATA", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true); row.addElement(makeArrow(mWindow), false); row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::openMetaDataEd, this)); mMenu.addRow(row); } // center the menu setSize((float)Renderer::getScreenWidth(), (float)Renderer::getScreenHeight()); mMenu.setPosition((mSize.x() - mMenu.getSize().x()) / 2, (mSize.y() - mMenu.getSize().y()) / 2); }