mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-22 04:01:23 +00:00
- Fixed --gui-theme command line description
- Added --list-themes command line command to list available GUI themes svn-id: r35681
This commit is contained in:
parent
1b0f945471
commit
6fd559b4f6
@ -34,6 +34,8 @@
|
||||
|
||||
#include "sound/mididrv.h"
|
||||
|
||||
#include "gui/GuiManager.h"
|
||||
|
||||
#define DETECTOR_TESTING_HACK
|
||||
|
||||
namespace Base {
|
||||
@ -68,8 +70,9 @@ static const char HELP_STRING[] =
|
||||
" -g, --gfx-mode=MODE Select graphics scaler (1x,2x,3x,2xsai,super2xsai,\n"
|
||||
" supereagle,advmame2x,advmame3x,hq2x,hq3x,tv2x,\n"
|
||||
" dotmatrix)\n"
|
||||
" --gui-theme=THEME Select GUI theme (default, modern, classic)\n"
|
||||
" --gui-theme=THEME Select GUI theme\n"
|
||||
" --themepath=PATH Path to where GUI themes are stored\n"
|
||||
" --list-themes Lists all usable GUI themes\n"
|
||||
" -e, --music-driver=MODE Select music driver (see README for details)\n"
|
||||
" -q, --language=LANG Select language (en,de,fr,it,pt,es,jp,zh,kr,se,gb,\n"
|
||||
" hb,ru,cz)\n"
|
||||
@ -484,6 +487,9 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, char **ar
|
||||
}
|
||||
END_OPTION
|
||||
|
||||
DO_LONG_COMMAND("list-themes")
|
||||
END_OPTION
|
||||
|
||||
DO_LONG_OPTION("target-md5")
|
||||
END_OPTION
|
||||
|
||||
@ -617,6 +623,19 @@ static void listSaves(const char *target) {
|
||||
ConfMan.setActiveDomain(oldDomain);
|
||||
}
|
||||
|
||||
/** Lists all usable themes */
|
||||
static void listThemes() {
|
||||
typedef Common::List<GUI::GuiManager::ThemeDescriptor> ThList;
|
||||
ThList thList;
|
||||
GUI::GuiManager::listUsableThemes(thList);
|
||||
|
||||
printf("Theme Description\n");
|
||||
printf("-------------- ------------------------------------------------\n");
|
||||
|
||||
for (ThList::const_iterator i = thList.begin(); i != thList.end(); ++i)
|
||||
printf("%-14s %s\n", i->id.c_str(), i->name.c_str());
|
||||
}
|
||||
|
||||
|
||||
#ifdef DETECTOR_TESTING_HACK
|
||||
static void runDetectorTest() {
|
||||
@ -715,6 +734,9 @@ bool processSettings(Common::String &command, Common::StringMap &settings) {
|
||||
} else if (command == "list-saves") {
|
||||
listSaves(settings["list-saves"].c_str());
|
||||
return false;
|
||||
} else if (command == "list-themes") {
|
||||
listThemes();
|
||||
return false;
|
||||
} else if (command == "version") {
|
||||
printf("%s\n", gScummVMFullVersion);
|
||||
printf("Features compiled in: %s\n", gScummVMFeatures);
|
||||
|
@ -60,7 +60,6 @@ GuiManager::GuiManager() : _redrawStatus(kRedrawDisabled),
|
||||
// Clear the cursor
|
||||
memset(_cursor, 0xFF, sizeof(_cursor));
|
||||
|
||||
|
||||
ConfMan.registerDefault("gui_theme", "scummmodern");
|
||||
Common::String themefile(ConfMan.get("gui_theme"));
|
||||
|
||||
@ -151,7 +150,7 @@ struct TDComparator {
|
||||
|
||||
} // end of anonymous namespace
|
||||
|
||||
void GuiManager::listUseableThemes(Common::List<ThemeDescriptor> &list) {
|
||||
void GuiManager::listUsableThemes(Common::List<ThemeDescriptor> &list) {
|
||||
ThemeDescriptor th;
|
||||
th.name = "ScummVM Classic Theme (Builtin Version)";
|
||||
th.id = "builtin";
|
||||
@ -159,10 +158,10 @@ void GuiManager::listUseableThemes(Common::List<ThemeDescriptor> &list) {
|
||||
list.push_back(th);
|
||||
|
||||
if (ConfMan.hasKey("themepath"))
|
||||
listUseableThemes(Common::FSNode(ConfMan.get("themepath")), list);
|
||||
listUsableThemes(Common::FSNode(ConfMan.get("themepath")), list);
|
||||
|
||||
#ifdef DATA_PATH
|
||||
listUseableThemes(Common::FSNode(DATA_PATH), list);
|
||||
listUsableThemes(Common::FSNode(DATA_PATH), list);
|
||||
#endif
|
||||
|
||||
#ifdef MACOSX
|
||||
@ -171,16 +170,16 @@ void GuiManager::listUseableThemes(Common::List<ThemeDescriptor> &list) {
|
||||
char buf[256];
|
||||
if (CFURLGetFileSystemRepresentation(resourceUrl, true, (UInt8 *)buf, 256)) {
|
||||
Common::FSNode resourcePath(buf);
|
||||
listUseableThemes(resourcePath, list);
|
||||
listUsableThemes(resourcePath, list);
|
||||
}
|
||||
CFRelease(resourceUrl);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ConfMan.hasKey("extrapath"))
|
||||
listUseableThemes(Common::FSNode(ConfMan.get("extrapath")), list);
|
||||
listUsableThemes(Common::FSNode(ConfMan.get("extrapath")), list);
|
||||
|
||||
listUseableThemes(Common::FSNode("."), list);
|
||||
listUsableThemes(Common::FSNode("."), list);
|
||||
|
||||
// Now we need to strip all duplicates
|
||||
// TODO: It might not be the best idea to strip duplicates. The user might
|
||||
@ -199,7 +198,7 @@ void GuiManager::listUseableThemes(Common::List<ThemeDescriptor> &list) {
|
||||
output.clear();
|
||||
}
|
||||
|
||||
void GuiManager::listUseableThemes(Common::FSNode node, Common::List<ThemeDescriptor> &list) {
|
||||
void GuiManager::listUsableThemes(Common::FSNode node, Common::List<ThemeDescriptor> &list) {
|
||||
if (!node.exists() || !node.isReadable() || !node.isDirectory())
|
||||
return;
|
||||
|
||||
@ -252,7 +251,7 @@ void GuiManager::listUseableThemes(Common::FSNode node, Common::List<ThemeDescri
|
||||
return;
|
||||
|
||||
for (Common::FSList::iterator i = fileList.begin(); i != fileList.end(); ++i)
|
||||
listUseableThemes(*i, list);
|
||||
listUsableThemes(*i, list);
|
||||
}
|
||||
|
||||
Common::String GuiManager::findThemeFile(const Common::String &id) {
|
||||
@ -273,7 +272,7 @@ Common::String GuiManager::findThemeFile(const Common::String &id) {
|
||||
// a complete theme list, thus it is slower than it could be.
|
||||
// But it is the easiest solution for now.
|
||||
Common::List<ThemeDescriptor> list;
|
||||
listUseableThemes(list);
|
||||
listUsableThemes(list);
|
||||
|
||||
for (Common::List<ThemeDescriptor>::const_iterator i = list.begin(); i != list.end(); ++i) {
|
||||
if (id.equalsIgnoreCase(i->id))
|
||||
|
@ -102,7 +102,7 @@ public:
|
||||
/**
|
||||
* Lists all theme files useable.
|
||||
*/
|
||||
void listUseableThemes(Common::List<ThemeDescriptor> &list);
|
||||
static void listUsableThemes(Common::List<ThemeDescriptor> &list);
|
||||
protected:
|
||||
enum RedrawStatus {
|
||||
kRedrawDisabled = 0,
|
||||
@ -159,7 +159,7 @@ protected:
|
||||
void screenChange();
|
||||
|
||||
Common::String findThemeFile(const Common::String &id);
|
||||
void listUseableThemes(Common::FSNode node, Common::List<ThemeDescriptor> &list);
|
||||
static void listUsableThemes(Common::FSNode node, Common::List<ThemeDescriptor> &list);
|
||||
};
|
||||
|
||||
} // End of namespace GUI
|
||||
|
@ -95,7 +95,7 @@ void ThemeBrowser::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
|
||||
void ThemeBrowser::updateListing() {
|
||||
_themes.clear();
|
||||
|
||||
g_gui.listUseableThemes(_themes);
|
||||
GuiManager::listUsableThemes(_themes);
|
||||
|
||||
Common::StringList list;
|
||||
for (ThemeDescList::const_iterator i = _themes.begin(); i != _themes.end(); ++i)
|
||||
|
Loading…
x
Reference in New Issue
Block a user