summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/WidgetDefinitionReader.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2019-11-18 22:50:46 +0100
committerTomaž Vajngerl <quikee@gmail.com>2019-11-19 08:57:05 +0100
commitf8ca5fb82db18a22f077a01fb1daf8056ab15ef4 (patch)
treecd488bb98fbab76ceb286e9d26b0f15347bdae5b /vcl/source/gdi/WidgetDefinitionReader.cxx
parentd5036b0e2bc50c991858e85760a8580cdf08629e (diff)
widget theme: add centeredTabs setting to theme definition file
Change-Id: I714a44d40a99e0bb5ff48e3d36ded73db60af5a0 Reviewed-on: https://gerrit.libreoffice.org/83133 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit b234743dd26e0be4be272d2d2c82f90c67e192b7) Reviewed-on: https://gerrit.libreoffice.org/83155 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'vcl/source/gdi/WidgetDefinitionReader.cxx')
-rw-r--r--vcl/source/gdi/WidgetDefinitionReader.cxx30
1 files changed, 30 insertions, 0 deletions
diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx
index 50c6d7b3de98..c9c38aefc1b5 100644
--- a/vcl/source/gdi/WidgetDefinitionReader.cxx
+++ b/vcl/source/gdi/WidgetDefinitionReader.cxx
@@ -55,6 +55,13 @@ bool readColor(OString const& rString, Color& rColor)
return true;
}
+bool readSetting(OString const& rInputString, OString& rOutputString)
+{
+ if (!rInputString.isEmpty())
+ rOutputString = rInputString;
+ return true;
+}
+
OString getValueOrAny(OString const& rInputString)
{
if (rInputString.isEmpty())
@@ -412,8 +419,17 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition)
{ "toolTextColor", &pStyle->maToolTextColor },
{ "fontColor", &pStyle->maFontColor },
};
+
rWidgetDefinition.mpStyle = pStyle;
+ auto pSettings = std::make_shared<WidgetDefinitionSettings>();
+
+ std::unordered_map<OString, OString*> aSettingMap = {
+ { "centeredTabs", &pSettings->msCenteredTabs },
+ };
+
+ rWidgetDefinition.mpSettings = pSettings;
+
SvFileStream aFileStream(m_rDefinitionFile, StreamMode::READ);
tools::XmlWalker aWalker;
@@ -441,6 +457,20 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition)
}
aWalker.parent();
}
+ if (aWalker.name() == "settings")
+ {
+ aWalker.children();
+ while (aWalker.isValid())
+ {
+ auto pair = aSettingMap.find(aWalker.name());
+ if (pair != aSettingMap.end())
+ {
+ readSetting(aWalker.attribute("value"), *pair->second);
+ }
+ aWalker.next();
+ }
+ aWalker.parent();
+ }
else if (getControlTypeForXmlString(aWalker.name(), eType))
{
readDefinition(aWalker, rWidgetDefinition, eType);