mirror of
				https://github.com/RetroDECK/ES-DE.git
				synced 2025-04-10 19:15:13 +00:00 
			
		
		
		
	Merge 94e32f198b from unstable branch top master
				
					
				
			Had to hand-merge GuiGameList.cpp again :/
This commit is contained in:
		
						commit
						ded54a6884
					
				|  | @ -18,8 +18,9 @@ public: | |||
| 	{ | ||||
| 		ComparisonFunction & comparisonFunction; | ||||
| 		bool ascending; | ||||
|         std::string description; | ||||
| 
 | ||||
| 		SortState(ComparisonFunction & sortFunction, bool sortAscending) : comparisonFunction(sortFunction), ascending(sortAscending) {} | ||||
| 		SortState(ComparisonFunction & sortFunction, bool sortAscending, const std::string & sortDescription) : comparisonFunction(sortFunction), ascending(sortAscending), description(sortDescription) {} | ||||
| 	}; | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
|  | @ -7,17 +7,15 @@ const std::string GuiFastSelect::LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; | |||
| const int GuiFastSelect::SCROLLSPEED = 100; | ||||
| const int GuiFastSelect::SCROLLDELAY = 507; | ||||
| 
 | ||||
| GuiFastSelect::GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent<FileData*>* list, char startLetter, GuiBoxData data,  | ||||
| 	int textcolor, std::shared_ptr<Sound> & scrollsound, Font* font) : GuiComponent(window) | ||||
| GuiFastSelect::GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent<FileData*>* list, char startLetter, ThemeComponent * theme) | ||||
|     : GuiComponent(window), mParent(parent), mList(list), mTheme(theme) | ||||
| { | ||||
| 	mLetterID = LETTERS.find(toupper(startLetter)); | ||||
| 	if(mLetterID == std::string::npos) | ||||
| 		mLetterID = 0; | ||||
| 
 | ||||
| 	mParent = parent; | ||||
| 	mList = list; | ||||
| 	mScrollSound = scrollsound; | ||||
| 	mFont = font; | ||||
|     mScrollSound = mTheme->getSound("menuScroll"); | ||||
|     mTextColor = mTheme->getColor("fastSelect"); | ||||
| 
 | ||||
| 	mScrolling = false; | ||||
| 	mScrollTimer = 0; | ||||
|  | @ -25,9 +23,7 @@ GuiFastSelect::GuiFastSelect(Window* window, GuiGameList* parent, TextListCompon | |||
| 
 | ||||
| 	unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight(); | ||||
| 	mBox = new GuiBox(window, (int)(sw * 0.2f), (int)(sh * 0.2f), (int)(sw * 0.6f), (int)(sh * 0.6f)); | ||||
| 	mBox->setData(data); | ||||
| 
 | ||||
| 	mTextColor = textcolor; | ||||
| 	mBox->setData(mTheme->getBoxData()); | ||||
| } | ||||
| 
 | ||||
| GuiFastSelect::~GuiFastSelect() | ||||
|  | @ -41,11 +37,14 @@ void GuiFastSelect::render() | |||
| 	unsigned int sw = Renderer::getScreenWidth(), sh = Renderer::getScreenHeight(); | ||||
| 
 | ||||
| 	if(!mBox->hasBackground()) | ||||
| 		Renderer::drawRect((int)(sw * 0.2f), (int)(sh * 0.2f), (int)(sw * 0.6f), (int)(sh * 0.6f), 0x000FF0FF); | ||||
| 		Renderer::drawRect((int)(sw * 0.3f), (int)(sh * 0.3f), (int)(sw * 0.4f), (int)(sh * 0.4f), 0x000FF0AA); | ||||
| 
 | ||||
| 	mBox->render(); | ||||
| 
 | ||||
| 	Renderer::drawCenteredText(LETTERS.substr(mLetterID, 1), 0, (int)(sh * 0.5f - (mFont->getHeight() * 0.5f)), mTextColor, mFont); | ||||
| 	Renderer::drawCenteredText(LETTERS.substr(mLetterID, 1), 0, (int)(sh * 0.5f - (mTheme->getFastSelectFont()->getHeight() * 0.5f)), mTextColor, mTheme->getFastSelectFont()); | ||||
|     Renderer::drawCenteredText("Sort order:", 0, (int)(sh * 0.6f - (mTheme->getDescriptionFont()->getHeight() * 0.5f)), mTextColor, mTheme->getDescriptionFont()); | ||||
|     std::string sortString = "<- " + mParent->getSortState().description + " ->"; | ||||
|     Renderer::drawCenteredText(sortString, 0, (int)(sh * 0.6f + (mTheme->getDescriptionFont()->getHeight() * 0.5f)), mTextColor, mTheme->getDescriptionFont()); | ||||
| } | ||||
| 
 | ||||
| bool GuiFastSelect::input(InputConfig* config, Input input) | ||||
|  | @ -64,6 +63,19 @@ bool GuiFastSelect::input(InputConfig* config, Input input) | |||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
| 	if(config->isMappedTo("left", input) && input.value != 0) | ||||
| 	{ | ||||
| 		mParent->setPreviousSortIndex(); | ||||
|         mScrollSound->play(); | ||||
| 		return true; | ||||
| 	} | ||||
|     else if(config->isMappedTo("right", input) && input.value != 0) | ||||
| 	{ | ||||
| 		mParent->setNextSortIndex(); | ||||
|         mScrollSound->play(); | ||||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
| 	if((config->isMappedTo("up", input) || config->isMappedTo("down", input)) && input.value == 0) | ||||
| 	{ | ||||
| 		mScrolling = false; | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
| #include "../SystemData.h" | ||||
| #include "../FolderData.h" | ||||
| #include "../Sound.h" | ||||
| #include "ThemeComponent.h" | ||||
| #include "TextListComponent.h" | ||||
| #include "GuiBox.h" | ||||
| 
 | ||||
|  | @ -13,8 +14,7 @@ class GuiGameList; | |||
| class GuiFastSelect : public GuiComponent | ||||
| { | ||||
| public: | ||||
| 	GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent<FileData*>* list, char startLetter, GuiBoxData data,  | ||||
| 		int textcolor, std::shared_ptr<Sound> & scrollsound, Font* font); | ||||
| 	GuiFastSelect(Window* window, GuiGameList* parent, TextListComponent<FileData*>* list, char startLetter, ThemeComponent * theme); | ||||
| 	~GuiFastSelect(); | ||||
| 
 | ||||
| 	bool input(InputConfig* config, Input input); | ||||
|  | @ -41,7 +41,7 @@ private: | |||
| 	bool mScrolling; | ||||
| 
 | ||||
| 	std::shared_ptr<Sound> mScrollSound; | ||||
| 	Font* mFont; | ||||
| 	ThemeComponent * mTheme; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
|  |  | |||
|  | @ -34,16 +34,16 @@ GuiGameList::GuiGameList(Window* window) : GuiComponent(window), | |||
| { | ||||
| 	//first object initializes the vector
 | ||||
| 	if (sortStates.empty()) { | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareFileName, true)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareFileName, false)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareRating, true)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareRating, false)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, true)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, false)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, true)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, false)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, true)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, false)); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareFileName, true, "file name, ascending")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareFileName, false, "file name, descending")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareRating, true, "database rating, ascending")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareRating, false, "database rating, descending")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, true, "your rating, ascending")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareUserRating, false, "your rating, descending")); | ||||
|         sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, true, "played least often")); | ||||
|         sortStates.push_back(FolderData::SortState(FolderData::compareTimesPlayed, false, "played most often")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, true, "played least recently")); | ||||
| 		sortStates.push_back(FolderData::SortState(FolderData::compareLastPlayed, false, "played most recently")); | ||||
| 	} | ||||
| 
 | ||||
| 	mImageAnimation.addChild(&mScreenshot); | ||||
|  | @ -212,7 +212,7 @@ bool GuiGameList::input(InputConfig* config, Input input) | |||
| 	//open the fast select menu
 | ||||
| 	if(config->isMappedTo("select", input) && input.value != 0) | ||||
| 	{ | ||||
| 		mWindow->pushGui(new GuiFastSelect(mWindow, this, &mList, mList.getSelectedObject()->getName()[0], mTheme->getBoxData(), mTheme->getColor("fastSelect"), mTheme->getSound("menuScroll"), mTheme->getFastSelectFont())); | ||||
|         mWindow->pushGui(new GuiFastSelect(mWindow, this, &mList, mList.getSelectedObject()->getName()[0], mTheme)); | ||||
| 		return true; | ||||
| 	} | ||||
| 
 | ||||
|  | @ -231,6 +231,11 @@ bool GuiGameList::input(InputConfig* config, Input input) | |||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| const FolderData::SortState & GuiGameList::getSortState() const | ||||
| { | ||||
|     return sortStates.at(sortStateIndex); | ||||
| } | ||||
| 
 | ||||
| void GuiGameList::setSortIndex(size_t index) | ||||
| { | ||||
| 	//make the index valid
 | ||||
|  |  | |||
|  | @ -35,6 +35,7 @@ public: | |||
| 
 | ||||
| 	void updateDetailData(); | ||||
| 
 | ||||
|     const FolderData::SortState & getSortState() const; | ||||
| 	void setSortIndex(size_t index); | ||||
| 	void setNextSortIndex(); | ||||
| 	void setPreviousSortIndex(); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Bim
						Bim