Aloshi/EmulationStation — pull request #138 by shi-xiong (2013-10-17 10:44:54+00:00)
Title: Persistent game selection, Display of last time played, multiple game images and a theme <text> component

Hi Aloshi,

thank your for writing the EmulationStation. It really is a great frontend!
Excuse for writing such a large pull request. Originally I intended to send you pull requests for my separate feature branches, but as I merged the feature branches from and to my unstable branch, I cannot separate the changes in one pull request it seems. Although I suspect it's only my ignorance of how github works... Please contact me if you want me to create the pull request in some other way.

As my vacation is almost over I won't have the time to play around with the EmulationStation in the near future. Maybe my contributions are of some use to you or others. So here comes the description of the feature branches: (I'm sure it will be possible for you to only merge some of them)

persistent_gui_state:
This branch adds the feature to reselect the system and game from the last time when EmulationStation is restarted. This is done by storing the timestamp of the last selection for the selected entry in the current folder. (The selected tag is only added to one game per folder, so the gamelist.xml doesn't grow much in size.)
This allows not only to reselect the entry from the last run of EmulationStation, but also remembers the last item selected in a folder or system. So when switching between the systems the position is always remembered.

more_statistics:
Added display of "Last played: " to the game description.

multiple-images:
Support for multiple images for one game. Multiple tags may be used for every game. The MetaData class wasn't up to containing lists of strings, so I had to add a workaround there (creating multiple entries). The images are placed in a ScrollableContainer. Because of this some of Theme options for the game images do not work anymore. Images are always expanded to fit the width of the ScrollableContainer, the size of the scrollable container is controlled by the theme setting originally used for image positioning and resizing.

theme_system_path:
Adds

component to ThemeComponent. Allows creation of floating text from the theme.xml. Also introduces variables that are expanded by ThemeComponent (%SYSTEM_NAME%, %SYSTEM_FULLNAME%, %SYSTEM_GAMECOUNT%). Variable names are also expanded on path names. This allows to write a single es_theme.xml with different images for every system.
BTW: could be declared obsolete and mHeaderText could be removed from GuiGameList with this patch, as the header can now easily be customized.

Keep up the great work!

Best Regards
Shi-Xiong