Commit graph

490 commits

Author SHA1 Message Date
Aloshi bbb8aeeac3 Completely rewrote ComponentGrid to use shared pointers, have support for
borders, work better with nested components, and generally suck less.
Split the scraper screen into a "ScraperSearchComponent" so it can be reused in other menus (what could this possibly mean for the future?!).
Re-designed the ScraperSearchComponent to fit UI concepts.
Added the ability to put a row of buttons at the bottom of a MenuComponent.
Redid GuiMetaDataEd to use a MenuComponent instead of ComponentGrid.
Redid GuiGameScraper to use a ComponentGrid containing a ScraperSearchComponent.
Fixed Renderer::pushClipRect not clipping new rects to be within the bounds of the existing clipRect stack.
A ton of little fixes that I forgot to mention.
It's a good thing I'm the only developer currently, or I would have to actually break this into multiple commits.
2014-03-11 22:00:08 -05:00
Aloshi 70b3408823 Renamed all theme "header" elements to "logo" (and "headerText" to
"logoText"). Documentation updated to reflect the change.
2014-03-08 13:07:16 -06:00
Aloshi 6db26742ff Renamed all the internal "Settings" identifiers to be consistent in
capitalization style.  Probably should delete your old es_settings.cfg
file.
Removed --dimtime as an argument since you can set it internally now.
2014-03-08 13:00:18 -06:00
Aloshi b2165dd17b Redid scraper start menu. 2014-03-08 12:19:21 -06:00
Aloshi 671dbc62c1 New button style.
Started redoing GuiMsgBoxs to use the new style.
2014-03-08 11:48:47 -06:00
Aloshi 1c3135b726 Use checkbox graphics for switches.
Slight optimization to TextComponent (by guaranteeing always having a font).
2014-03-07 19:35:16 -06:00
Aloshi 076131f35c New slider art. 2014-03-07 18:16:08 -06:00
Aloshi 5d6733991a Removed the overly-complicated "common" view.
Replaced it with the ability to specify multiple views in a theme tag,
just like for elements.
2014-03-06 21:35:13 -06:00
Aloshi 3ba7cd1247 Finished re-implementing OptionListComponent.
More new art to go with it (thanks Nils!).
2014-03-06 13:45:03 -06:00
Aloshi d0dfe480fa Work on new OptionListComponent. 2014-03-05 19:49:32 -06:00
Aloshi 8928ce49ec Small UI tweaks.
Replaced arrow text with an image.
Better frame.png (thanks Nils!).
2014-03-04 16:48:33 -06:00
Aloshi e97dd8ff36 ComponentList now only scrolls if content > size.
ComponentList now has a default input handler behavior (forward to
rightmost component in row).
ComponentList now updates the currently selected row.
GuiSettingsMenu has been redone to use the new
MenuComponent/ComponentList scheme.
GuiMenu refactored slightly to be less needlessly ridiculous.
2014-03-02 12:36:23 -06:00
Aloshi fdbbf96d5e Added scrolling to ComponentList.
--no-exit works again.
Changed default screen dim time from 30 seconds to 120 seconds.
2014-03-02 10:41:02 -06:00
Aloshi c525d994d3 First implementation of the new ComponentList stuff. 2014-03-01 16:08:21 -06:00
Aloshi 139fc720ac Moved Guis from src/components to src/guis.
Renamed ComponentListComponent to ComponentGrid.
Changed some older files' #ifdefs to #pragma once to be more consistent.
2014-02-28 19:00:38 -06:00
Aloshi 8e8c2fed6b Tweaked some system view constants.
Centering still screwy.
2014-02-28 18:48:11 -06:00
Aloshi 64aaac050f Fix centering of logos in SystemView (text is still a bit wonky).
Added a band beneath the logo carousel to improve visibility.
Revert CMakeLists.txt because I didn't mean to commit it yet.
2014-02-27 15:29:22 -06:00
Aloshi 4c3b4834be Replaced hard-coded background + title in SystemView with a ThemeExtras
layer.
2014-02-27 14:20:31 -06:00
Aloshi 0266b2e802 More work on system carousel, added title + background image. 2014-02-24 19:26:58 -06:00
Aloshi fcb8623b3d First form of the new system select carousel. 2014-02-21 09:33:23 -06:00
Aloshi 2886e8e8d8 Compile on Linux/gcc again
This better not have broken VS
2014-02-17 11:40:31 -06:00
Aloshi 816247ac20 Changed scroll gradient to a radial gradient and made the display full
screen instead of just inside the list.
Embedded the OpenSans font as the default font instead of relying on a
platform-dependent system default.
2014-02-16 12:27:58 -06:00
Aloshi a592dd4cf5 Added title overlay when scrolling through lists. 2014-02-13 17:10:28 -06:00
Aloshi 63749d2d9d Scroll after updating tier so isScrolling() returns accurately. 2014-02-07 22:17:24 -06:00
Aloshi 1aa291ebe7 ImageGridComponent & TextListComponent have had common list functionality
refactored into IList.
2014-02-07 21:45:28 -06:00
Aloshi 7699a4f9be First IList implementation 2014-02-07 20:15:48 -06:00
Aloshi 5c12395442 Fix the crash from writing files when the gamelist.xml contains games that
do not exist on the filesystem.
Write that ES has cleanly shut down to the log file instead of standard
output.
2014-01-30 17:19:32 -06:00
Aloshi ac57e111d2 Work around for boost::assign::map_list_of and gcc 2014-01-26 16:20:21 -06:00
Aloshi 4ef5f64ff3 Added on-screen help system.
Very intrusive right now. You can turn it off in the Settings menu until
that gets worked out.
2014-01-25 17:34:29 -06:00
Aloshi 612b196b11 Added the ability to theme multiple elements of the same type
simultaneously.
2014-01-24 19:25:15 -06:00
Aloshi 420dc912e0 If no keyboard input config is found, load a default.
(Previously would only load the keyboard default if *no* input configs were found.)
2014-01-24 18:29:53 -06:00
Aloshi 253ea2b5d3 Metadata now fades out while scrolling.
TextListComponent::isScrolling() now only returns true if the key has been
held down long enough for scrolling to really start.
Fixed opacity for RatingComponent and DateTimeComponent.
Exposed some more of AnimationController.
2014-01-24 18:10:13 -06:00
Aloshi 3ceeca968f Updated/added comments. 2014-01-24 16:21:10 -06:00
Aloshi 8eb9800127 Added color tag to ImageComponent (for colorshift).
Changed TextComponent's truncation from ".." to "...".
Updated documentation.
2014-01-23 15:30:32 -06:00
Aloshi 305e91c9f8 Fixed detailed view launch animation targetting wrong point when game
image is not at origin 0.5 0.5.
Tweaked launch animation to zoom a little faster so that images that the
camera doesn't overstep the bounds of the UI when the image is closer to
the edge.
2014-01-22 17:40:31 -06:00
Aloshi dd0c37ac23 Fix DateTimeComponent relative display for days. 2014-01-22 17:12:38 -06:00
Aloshi ea009315e9 Added horizontal margins to textlist.
Updated and corrected documentation (center -> alignment for textlist, not text!).
2014-01-21 21:16:18 -06:00
Aloshi fa8e60b7b5 Changed "center" property of textlist to "alignment".
TextListComponent can now be aligned either left, right, or center.
2014-01-21 20:43:33 -06:00
Aloshi 49130464ba Added developer and genre to the archive.vg scraper.
Renamed the "Play count:" label to "Times played:".
2014-01-20 19:33:24 -06:00
Aloshi ddcc43b930 Made rating component size work a bit better.
Send an onFileChanged(FILE_METADATA_CHANGED) when a game is launched to catch stat changes.
Updated documentation.
2014-01-20 12:23:39 -06:00
Aloshi 45592544c1 Renamed some theme elements to be more consistent.
Heavily updated the theming documentation.
2014-01-19 18:59:04 -06:00
Aloshi 5606a07f88 Ratings are now themable. 2014-01-19 17:37:08 -06:00
Aloshi 43972c5be9 Added developer, publisher, genre, and number of players metadata.
Updated TheGamesDB scraper to retrieve said metadata, still need to do the
archive.vg scraper.
TextComponent now abbreviates text if the component's size is single-line and the text is too long.
DateTimeComponent now correctly updates its size.
2014-01-19 17:24:56 -06:00
Aloshi 640493e0a6 Added more metadata to the detailed gamelist view. 2014-01-19 16:06:13 -06:00
Aloshi 3f1fcf2400 Changed texture wrap mode to be determined as part of texture creation.
Should hopefully fix some of the weird artifacts at certain resolutions.
2014-01-19 12:23:01 -06:00
Aloshi 5b5e99c366 Removed "infoPanel" element.
Faked it so the <text name="description"> element looks like it has no container.
2014-01-10 19:18:51 -06:00
Aloshi 8b688d3913 Made description size themable. 2014-01-10 18:28:50 -06:00
Aloshi a83ce289e0 Make new resizing algorithm actually work properly. 2014-01-10 18:05:37 -06:00
Aloshi b35d365dc8 Removed the allowUpscale option for ImageComponent::setResize.
Added ImageComponent::setMaxSize(size).
Added "maxSize" theming option for ImageComponent.
2014-01-10 17:47:34 -06:00
Aloshi 92a6678736 Added DIMTIME slider to settings.
Sliders now show their exact value + a unit suffix to the right of the
slider.
2014-01-10 16:01:28 -06:00
Aloshi 2862171dab Fix creating default theme when default theme file is not present. 2014-01-10 14:58:03 -06:00
Aloshi 330f20f375 Added Ctrl-R shortcut to reload current gamelist view if in debug mode. 2014-01-10 14:41:23 -06:00
Aloshi b7b2998720 Added center theme option for TextListComponent. 2014-01-10 14:24:07 -06:00
Aloshi 997751f56a Fixed draw order for extra elements. 2014-01-09 17:13:52 -06:00
Aloshi 81a9941645 Added an error if the <systemList> tag is missing.
Made SystemView more themable (added a ThemeExtras component, made theming on pre-existing elements less restrictive).
2014-01-07 16:57:30 -06:00
Aloshi 5a84bc03ea Rewrote the theming documentation. 2014-01-06 13:27:34 -06:00
Aloshi 8d1ac3087e Changed the sound cache to be part of the Sound class instead of
ThemeData.
2014-01-03 10:48:34 -06:00
Aloshi 8a52866ca6 Added support for theme "extras".
Fixed a few crashes (e.g. TextListComponent::applyTheme).
2014-01-03 08:26:39 -06:00
Aloshi e6d0da998b Theme applicators have become the virtual method
GuiComponent::applyTheme(theme, view, element, properties).
Applying fonts works now.
2013-12-31 23:39:22 -06:00
Aloshi 8bc33ce309 Better "common" view.
Added <include> tag.
2013-12-30 21:48:28 -06:00
Aloshi 7f46e50688 First part of the theming system rewrite. 2013-12-30 17:23:34 -06:00
Aloshi 6f442556c0 Refactored SystemListView directly into ViewController.
Made system views match up with their gamelist views.
Pressing "back" on a gamelist view now takes you to the correct system view.
2013-12-24 11:50:26 -06:00
Aloshi b6577e630d Hopefully fixed the "black screen" bug.
At least for input configuration.
2013-12-23 20:22:15 -06:00
Aloshi 120f9a4e7b Fix accidentally making the grid view the default (woops) 2013-12-23 18:31:37 -06:00
Aloshi 4df8fc9af0 Fix bad dimming during sleep (again...) 2013-12-22 19:42:10 -06:00
Aloshi 93f850df75 Maybe fix the Linux compile errors 2013-12-22 16:56:11 -06:00
Aloshi 12ee215873 Refactored duplicate functionality in GridGameList and BasicGameList into
ISimpleGameList.
BasicGameList and DetailedGameList now automatically switch as metadata
changes.
2013-12-22 16:16:01 -06:00
N1xx1 b8d44be6c2 Segmentation Fault for pointer being null. 2013-12-22 14:08:20 +01:00
N1xx1 05948e9302 Segmentation Fault for pointer being null. 2013-12-22 14:03:05 +01:00
Aloshi 4b6f8d9007 Move menu open code to ViewController so you can open it in the system
select
2013-12-20 15:47:21 -06:00
Aloshi bce46cb925 Fixed sleep mode dimming not working 2013-12-20 15:44:12 -06:00
Aloshi bec3a2599a Only run input code when input is pressed, not released. 2013-12-20 15:09:35 -06:00
Aloshi 1398785468 Lock input during launch animation. 2013-12-13 14:38:34 -06:00
Aloshi 7e9b20fac5 Added a fade in from black for ViewController.
Added LambdaAnimation (which lets you use a lambda for the apply method).
Useful for simple one-off animations.
Added animation slots - only one animation can play per slot.  This way
you can have two animations run at the same time.
2013-12-12 21:17:59 -06:00
Aloshi 67818d5727 Don't create gamelist folders even if their parent directory is valid. 2013-12-12 16:08:52 -06:00
Aloshi 0423dc03dd Added folder metadata loading/saving.
Rewrote a lot of the gamelist reading/saving code, let me know if I broke
it.
2013-12-12 16:04:15 -06:00
Aloshi ccea2a7e04 Removed some old effects code from Window.
Added a simple "LOADING" screen when ES starts up.
ViewController now preloads GameListViews so there's no lag when browsing
to a system for the first time.
2013-12-12 13:48:29 -06:00
Aloshi 3fb06d1833 Better positioning for system images. 2013-12-12 13:17:03 -06:00
Aloshi 7152ca6246 First version of the system select menu. 2013-12-10 21:23:47 -06:00
Aloshi abb568aa6e Don't scrape systems without a platform ID set by default. 2013-12-10 13:07:50 -06:00
Aloshi aad80b73fd Made ViewController's launch animation to add current view's position to
center point.
Fixed clipping with a scaled camera matrix.
2013-12-08 19:22:21 -06:00
Aloshi 5aeb2bc87f Fixed a bug with empty font paths not resolving correctly. 2013-12-08 20:00:53 +00:00
Aloshi 886bf7b00b Fixed ImageGridComponent 2013-12-08 19:33:43 +00:00
Aloshi a13ed11ead Added a simple Animation system.
Launch/return effect reimplemented.
ViewController's scrolling camera reimplemented as an Animation.
2013-12-08 11:35:43 -06:00
Aloshi 9875a59549 Added GridGameListView.
Currently no way to enable it and no way to switch systems with it.
2013-11-30 19:04:46 -06:00
Aloshi 25a4c8a2e5 Added fastSelectBackgroundImage and menuCloseSound to ThemeData, implemented some missing sounds. 2013-11-28 13:52:21 -06:00
Aloshi 0cfa38fcf9 Mostly reimplemented the fast select GUI.
Still not sure how I want to store sort state. I'd kind of like to move
sorting out of the FileData tree altogether and into the display classes.
2013-11-25 14:49:02 -06:00
Aloshi 94ca712759 Redid GuiMenu. 2013-11-23 14:04:11 -06:00
Aloshi cad914ab01 Added verticalDividerImage to themes/detailedgamelistview. 2013-11-21 19:52:09 -06:00
Aloshi 4b4fff39ef Optimized the hell out of TextListComponent (and TextComponent a bit) 2013-11-21 16:47:35 -06:00
Aloshi 87137df51e Added infoBackgroundImage 2013-11-21 16:47:35 -06:00
Aloshi a7359a2d08 Themes mostly stable, documentation updated 2013-11-21 16:47:26 -06:00
Aloshi 8bfde96966 Added missing sorts. 2013-11-05 20:31:52 -06:00
Aloshi 3a3471cfe8 Combined FolderData and GameData into one class, FileData.
You don't need to dynamic_cast everywhere to check things anymore.
Folders can have metadata now (currently not set up).
Metadata is now a public member variable instead of a function that
returns a pointer to make actually using const possible.
2013-11-05 19:41:49 -06:00
Aloshi 5c65747551 Moved metadata type declarations more behind-the-scenes.
The original plan was to allow each system to have customizable lists of
metadata, which made constructing metadata really painful (the declaration
list isn't stored on the metadata instance because that's pretty wasteful
for 2,000 games).  Now they're constructed by passing a MetaDataListType
enum in the constructor.
Declaration lists are now managed by const globals passed by reference
through getMDDByType(MetaDataListType).
2013-11-03 19:54:13 -06:00
Aloshi 626a2692e5 Removed an unnecessary path.string() during folder population. 2013-10-27 11:18:38 -05:00
Aloshi fb55b1cd91 Limit OptionListComponent to 5 entries on screen.
Can now hold up/down to scroll OptionListComponent.
2013-10-26 15:57:46 -05:00
Aloshi 68841aa654 SystemData now stores extension lists as a vector internally.
Don't write gamelist.xml changes if IGNOREGAMELIST is true.
2013-10-26 14:08:53 -05:00
Aloshi 20c367daa7 Fix DateTimeComponent not consuming input when leaving edit mode. 2013-10-24 11:48:29 -05:00
Aloshi a666415302 I forgot how to #ifdef apparently 2013-10-24 11:47:09 -05:00