summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/WidgetDefinitionReader.cxx
diff options
context:
space:
mode:
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);