diff --git a/data/skins/default/font.png b/data/themes/default/font.png
similarity index 100%
rename from data/skins/default/font.png
rename to data/themes/default/font.png
diff --git a/data/skins/default/minifont.png b/data/themes/default/minifont.png
similarity index 100%
rename from data/skins/default/minifont.png
rename to data/themes/default/minifont.png
diff --git a/data/skins/default/palette.png b/data/themes/default/palette.png
similarity index 100%
rename from data/skins/default/palette.png
rename to data/themes/default/palette.png
diff --git a/data/skins/default/sheet.png b/data/themes/default/sheet.png
similarity index 100%
rename from data/skins/default/sheet.png
rename to data/themes/default/sheet.png
diff --git a/data/skins/default/skin.xml b/data/themes/default/theme.xml
similarity index 97%
rename from data/skins/default/skin.xml
rename to data/themes/default/theme.xml
index faad2365a..b9e8e5662 100644
--- a/data/skins/default/skin.xml
+++ b/data/themes/default/theme.xml
@@ -1,7 +1,7 @@
-
+
@@ -911,4 +911,4 @@
-
+
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 117fcd3bb..ae7b408e7 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -41,15 +41,15 @@ add_custom_command(
DEPENDS gen)
list(APPEND generated_files ${output_fn})
-# Generate skin.xml.h from data/skins/default/skin.xml
-set(skin_xml ${CMAKE_SOURCE_DIR}/data/skins/default/skin.xml)
-set(output_fn ${CMAKE_CURRENT_BINARY_DIR}/skin.xml.h)
+# Generate theme.xml.h from data/themes/default/theme.xml
+set(theme_xml ${CMAKE_SOURCE_DIR}/data/themes/default/theme.xml)
+set(output_fn ${CMAKE_CURRENT_BINARY_DIR}/theme.xml.h)
add_custom_command(
OUTPUT ${output_fn}
- COMMAND ${CMAKE_BINARY_DIR}/bin/gen --input ${skin_xml} --skin > ${output_fn}.tmp
+ COMMAND ${CMAKE_BINARY_DIR}/bin/gen --input ${theme_xml} --theme > ${output_fn}.tmp
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${output_fn}.tmp ${output_fn}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- MAIN_DEPENDENCY ${skin_xml}
+ MAIN_DEPENDENCY ${theme_xml}
DEPENDS gen)
list(APPEND generated_files ${output_fn})
diff --git a/src/app/commands/cmd_options.cpp b/src/app/commands/cmd_options.cpp
index 42cd290e4..d08ec79a8 100644
--- a/src/app/commands/cmd_options.cpp
+++ b/src/app/commands/cmd_options.cpp
@@ -1,5 +1,5 @@
// Aseprite
-// Copyright (C) 2001-2016 David Capello
+// Copyright (C) 2001-2017 David Capello
//
// This program is distributed under the terms of
// the End-User License Agreement for Aseprite.
@@ -17,6 +17,7 @@
#include "app/resource_finder.h"
#include "app/send_crash.h"
#include "app/ui/color_button.h"
+#include "app/ui/skin/skin_theme.h"
#include "base/bind.h"
#include "base/convert_to.h"
#include "base/fs.h"
@@ -589,7 +590,7 @@ private:
static std::string userThemeFolder() {
ResourceFinder rf;
- rf.includeDataDir("skins");
+ rf.includeDataDir(skin::SkinTheme::kThemesFolderName);
// Create user folder to store skins
try {
@@ -605,7 +606,7 @@ private:
static std::vector themeFolders() {
ResourceFinder rf;
- rf.includeDataDir("skins");
+ rf.includeDataDir(skin::SkinTheme::kThemesFolderName);
std::vector paths;
while (rf.next())
diff --git a/src/app/ui/skin/skin_theme.cpp b/src/app/ui/skin/skin_theme.cpp
index 84b8f424f..878563139 100644
--- a/src/app/ui/skin/skin_theme.cpp
+++ b/src/app/ui/skin/skin_theme.cpp
@@ -49,6 +49,7 @@ namespace skin {
using namespace gfx;
using namespace ui;
+const char* SkinTheme::kThemesFolderName = "themes";
const char* SkinTheme::kThemeCloseButtonId = "theme_close_button";
// Controls the "X" button in a window to close it.
@@ -227,8 +228,7 @@ void SkinTheme::loadAll(const std::string& skinId)
void SkinTheme::loadSheet(const std::string& skinId)
{
// Load the skin sheet
- std::string sheet_filename("skins/" + skinId + "/sheet.png");
-
+ std::string sheet_filename(themeFileName(skinId, "sheet.png"));
ResourceFinder rf;
rf.includeDataDir(sheet_filename.c_str());
if (!rf.findFirst())
@@ -253,14 +253,14 @@ void SkinTheme::loadFonts(const std::string& skinId)
Preferences& pref = Preferences::instance();
- m_defaultFont = loadFont(pref.theme.font(), "skins/" + skinId + "/font.png");
- m_miniFont = loadFont(pref.theme.miniFont(), "skins/" + skinId + "/minifont.png");
+ m_defaultFont = loadFont(pref.theme.font(), themeFileName(skinId, "font.png"));
+ m_miniFont = loadFont(pref.theme.miniFont(), themeFileName(skinId, "minifont.png"));
}
void SkinTheme::loadXml(const std::string& skinId)
{
// Load the skin XML
- std::string xml_filename = "skins/" + skinId + "/skin.xml";
+ std::string xml_filename(themeFileName(skinId, "theme.xml"));
ResourceFinder rf;
rf.includeDataDir(xml_filename.c_str());
if (!rf.findFirst())
@@ -272,7 +272,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load dimension
{
TiXmlElement* xmlDim = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("dimensions")
.FirstChild("dim").ToElement();
while (xmlDim) {
@@ -289,7 +289,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load colors
{
TiXmlElement* xmlColor = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("colors")
.FirstChild("color").ToElement();
while (xmlColor) {
@@ -310,7 +310,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load cursors
{
TiXmlElement* xmlCursor = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("cursors")
.FirstChild("cursor").ToElement();
while (xmlCursor) {
@@ -351,7 +351,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load tool icons
{
TiXmlElement* xmlIcon = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("tools")
.FirstChild("tool").ToElement();
while (xmlIcon) {
@@ -375,7 +375,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load parts
{
TiXmlElement* xmlPart = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("parts")
.FirstChild("part").ToElement();
while (xmlPart) {
@@ -421,7 +421,7 @@ void SkinTheme::loadXml(const std::string& skinId)
// Load styles
{
TiXmlElement* xmlStyle = handle
- .FirstChild("skin")
+ .FirstChild("theme")
.FirstChild("stylesheet")
.FirstChild("style").ToElement();
while (xmlStyle) {
@@ -504,7 +504,7 @@ void SkinTheme::loadXml(const std::string& skinId)
}
}
- SkinFile::updateInternals();
+ ThemeFile::updateInternals();
}
she::Surface* SkinTheme::sliceSheet(she::Surface* sur, const gfx::Rect& bounds)
@@ -2096,5 +2096,13 @@ she::Font* SkinTheme::loadFont(const std::string& userFont, const std::string& t
return nullptr;
}
+std::string SkinTheme::themeFileName(const std::string& skinId,
+ const std::string& fileName) const
+{
+ std::string path = base::join_path(SkinTheme::kThemesFolderName, skinId);
+ path = base::join_path(path, fileName);
+ return path;
+}
+
} // namespace skin
} // namespace app
diff --git a/src/app/ui/skin/skin_theme.h b/src/app/ui/skin/skin_theme.h
index a3c57dd80..bc7b6e35e 100644
--- a/src/app/ui/skin/skin_theme.h
+++ b/src/app/ui/skin/skin_theme.h
@@ -15,7 +15,7 @@
#include "ui/manager.h"
#include "ui/theme.h"
-#include "skin.xml.h"
+#include "theme.xml.h"
#include