aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2009-01-02 20:21:21 +0000
committerJohannes Schickel2009-01-02 20:21:21 +0000
commit6fd559b4f66bae48cb0c86ed5ebb2ec4a9814c59 (patch)
treedfb4ace494cfee32c23e85b6486b7f1ed68534e6
parent1b0f94547120435cbda18387ff4d936ed84d9276 (diff)
downloadscummvm-rg350-6fd559b4f66bae48cb0c86ed5ebb2ec4a9814c59.tar.gz
scummvm-rg350-6fd559b4f66bae48cb0c86ed5ebb2ec4a9814c59.tar.bz2
scummvm-rg350-6fd559b4f66bae48cb0c86ed5ebb2ec4a9814c59.zip
- Fixed --gui-theme command line description
- Added --list-themes command line command to list available GUI themes svn-id: r35681
-rw-r--r--base/commandLine.cpp24
-rw-r--r--gui/GuiManager.cpp19
-rw-r--r--gui/GuiManager.h4
-rw-r--r--gui/themebrowser.cpp2
4 files changed, 35 insertions, 14 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 2605796ca9..0c94776113 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -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);
diff --git a/gui/GuiManager.cpp b/gui/GuiManager.cpp
index fc2b2c1a4b..95ab7e9fac 100644
--- a/gui/GuiManager.cpp
+++ b/gui/GuiManager.cpp
@@ -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))
diff --git a/gui/GuiManager.h b/gui/GuiManager.h
index 5e97fd82a2..2f3f3711ab 100644
--- a/gui/GuiManager.h
+++ b/gui/GuiManager.h
@@ -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
diff --git a/gui/themebrowser.cpp b/gui/themebrowser.cpp
index 7fc35e9bf0..b3db9a3405 100644
--- a/gui/themebrowser.cpp
+++ b/gui/themebrowser.cpp
@@ -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)