summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2019-01-25 17:33:33 +0100
committerTomaž Vajngerl <quikee@gmail.com>2019-03-04 19:09:16 +0100
commitfb6f8a0f15cf4f36e89ec560772ca437f7cb4a4e (patch)
tree124cac32f70924ada06a2d4adb48d11164dd7bbf
parent8a1c18823c6e74b62c43cfe4fa72c87c36855d85 (diff)
separate WidgetDefinitionReader from the actual WidgetDefinition
This separates the functionallity to read the definition from the definition itself. This is needed to have both responisibilities separated so it's easier to work with and test. Change-Id: Id0dd9c17852a8b7479e9d01d4c1726e915d3dc6e Reviewed-on: https://gerrit.libreoffice.org/68681 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r--vcl/inc/FileDefinitionWidgetDraw.hxx2
-rw-r--r--vcl/inc/widgetdraw/WidgetDefinitionReader.hxx50
-rw-r--r--vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx29
-rw-r--r--vcl/source/gdi/FileDefinitionWidgetDraw.cxx128
-rw-r--r--vcl/source/gdi/WidgetDefinitionReader.cxx146
5 files changed, 170 insertions, 185 deletions
diff --git a/vcl/inc/FileDefinitionWidgetDraw.hxx b/vcl/inc/FileDefinitionWidgetDraw.hxx
index 97181c17bbcb..ba34cbe13467 100644
--- a/vcl/inc/FileDefinitionWidgetDraw.hxx
+++ b/vcl/inc/FileDefinitionWidgetDraw.hxx
@@ -22,7 +22,7 @@ class FileDefinitionWidgetDraw : public vcl::WidgetDrawInterface
{
private:
SalGraphics& m_rGraphics;
- WidgetDefinitionReader m_WidgetDefinitionReader;
+ WidgetDefinition m_aWidgetDefinition;
public:
FileDefinitionWidgetDraw(SalGraphics& rGraphics);
diff --git a/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx b/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx
index 77548c72aa0c..4d9caddce374 100644
--- a/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx
+++ b/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx
@@ -109,7 +109,7 @@ public:
float fY2);
};
-class VCL_DLLPUBLIC WidgetDefinition
+class VCL_DLLPUBLIC WidgetDefinitionPart
{
public:
std::vector<std::shared_ptr<WidgetDefinitionState>> getStates(ControlState eState,
@@ -118,24 +118,8 @@ public:
std::vector<std::shared_ptr<WidgetDefinitionState>> maStates;
};
-class VCL_DLLPUBLIC WidgetDefinitionReader
+class VCL_DLLPUBLIC WidgetDefinition
{
-private:
- OUString m_rFilePath;
-
- static void
- readDefinition(tools::XmlWalker& rWalker,
- std::unordered_map<OString, std::shared_ptr<WidgetDefinition>>& rDefinition);
-
- static void readPart(tools::XmlWalker& rWalker, std::shared_ptr<WidgetDefinition> rpPart);
-
- void readPushButton(tools::XmlWalker& rWalker);
- void readRadioButton(tools::XmlWalker& rWalker);
- void readEditbox(tools::XmlWalker& rWalker);
-
- static void readDrawingDefinition(tools::XmlWalker& rWalker,
- std::shared_ptr<WidgetDefinitionState>& rStates);
-
public:
Color maFaceColor;
Color maCheckedColor;
@@ -188,16 +172,32 @@ public:
Color maToolTextColor;
Color maFontColor;
- std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maPushButtonDefinitions;
- std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maRadioButtonDefinitions;
- std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maEditboxDefinitions;
+ std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maPushButtonDefinitions;
+ std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maRadioButtonDefinitions;
+ std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maEditboxDefinitions;
- std::shared_ptr<WidgetDefinition> getPushButtonDefinition(ControlPart ePart);
- std::shared_ptr<WidgetDefinition> getRadioButtonDefinition(ControlPart ePart);
- std::shared_ptr<WidgetDefinition> getEditboxDefinition(ControlPart ePart);
+ std::shared_ptr<WidgetDefinitionPart> getPushButtonDefinition(ControlPart ePart);
+ std::shared_ptr<WidgetDefinitionPart> getRadioButtonDefinition(ControlPart ePart);
+ std::shared_ptr<WidgetDefinitionPart> getEditboxDefinition(ControlPart ePart);
+};
+
+class VCL_DLLPUBLIC WidgetDefinitionReader
+{
+private:
+ OUString m_rFilePath;
+
+ static void
+ readDefinition(tools::XmlWalker& rWalker,
+ std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>>& rDefinition);
+ static void readPart(tools::XmlWalker& rWalker, std::shared_ptr<WidgetDefinitionPart> rpPart);
+
+ static void readDrawingDefinition(tools::XmlWalker& rWalker,
+ std::shared_ptr<WidgetDefinitionState>& rStates);
+
+public:
WidgetDefinitionReader(OUString const& rFilePath);
- bool read();
+ bool read(WidgetDefinition& rWidgetDefinition);
};
} // end vcl namespace
diff --git a/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx b/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx
index d6dad8dca74a..54ac184651ca 100644
--- a/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx
+++ b/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx
@@ -37,25 +37,26 @@ public:
void WidgetDefinitionReaderTest::testRead()
{
- vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml"));
+ vcl::WidgetDefinition aDefinition;
- CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maFaceColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maCheckedColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maLightColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maFaceColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maCheckedColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maLightColor.AsRGBHexString());
- aReader.read();
+ vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml"));
+ aReader.read(aDefinition);
- CPPUNIT_ASSERT_EQUAL(OUString("123456"), aReader.maFaceColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("234567"), aReader.maCheckedColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("345678"), aReader.maLightColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("123456"), aDefinition.maFaceColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("234567"), aDefinition.maCheckedColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("345678"), aDefinition.maLightColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maVisitedLinkColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maToolTextColor.AsRGBHexString());
- CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aReader.maFontColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maVisitedLinkColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maToolTextColor.AsRGBHexString());
+ CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maFontColor.AsRGBHexString());
{
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
- = aReader.getPushButtonDefinition(ControlPart::Entire)
+ = aDefinition.getPushButtonDefinition(ControlPart::Entire)
->getStates(ControlState::DEFAULT | ControlState::ENABLED
| ControlState::ROLLOVER,
ImplControlValue());
@@ -70,7 +71,7 @@ void WidgetDefinitionReaderTest::testRead()
{
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
- = aReader.getRadioButtonDefinition(ControlPart::Entire)
+ = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::On));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(2), aStates[0]->mpDrawCommands.size());
@@ -78,7 +79,7 @@ void WidgetDefinitionReaderTest::testRead()
{
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
- = aReader.getRadioButtonDefinition(ControlPart::Entire)
+ = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::Off));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates[0]->mpDrawCommands.size());
diff --git a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
index 854066694e22..c28967eb9b7f 100644
--- a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
+++ b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
@@ -30,9 +30,9 @@ OUString lcl_getThemeDefinitionPath()
FileDefinitionWidgetDraw::FileDefinitionWidgetDraw(SalGraphics& rGraphics)
: m_rGraphics(rGraphics)
- , m_WidgetDefinitionReader(lcl_getThemeDefinitionPath() + "definition.xml")
{
- m_WidgetDefinitionReader.read();
+ WidgetDefinitionReader aReader(lcl_getThemeDefinitionPath() + "definition.xml");
+ aReader.read(m_aWidgetDefinition);
ImplSVData* pSVData = ImplGetSVData();
pSVData->maNWFData.mbNoFocusRects = true;
@@ -196,11 +196,11 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
break;
case ControlType::Pushbutton:
{
- std::shared_ptr<WidgetDefinition> pDefinition
- = m_WidgetDefinitionReader.getPushButtonDefinition(ePart);
- if (pDefinition)
+ std::shared_ptr<WidgetDefinitionPart> pPart
+ = m_aWidgetDefinition.getPushButtonDefinition(ePart);
+ if (pPart)
{
- auto aStates = pDefinition->getStates(eState, rValue);
+ auto aStates = pPart->getStates(eState, rValue);
if (!aStates.empty())
{
std::shared_ptr<WidgetDefinitionState> pState = aStates.back();
@@ -215,12 +215,12 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
break;
case ControlType::Radiobutton:
{
- std::shared_ptr<WidgetDefinition> pDefinition
- = m_WidgetDefinitionReader.getRadioButtonDefinition(ePart);
- if (pDefinition)
+ std::shared_ptr<WidgetDefinitionPart> pPart
+ = m_aWidgetDefinition.getRadioButtonDefinition(ePart);
+ if (pPart)
{
std::shared_ptr<WidgetDefinitionState> pState
- = pDefinition->getStates(eState, rValue).back();
+ = pPart->getStates(eState, rValue).back();
{
munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
bOK = true;
@@ -235,12 +235,12 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
case ControlType::EditboxNoBorder:
case ControlType::MultilineEditbox:
{
- std::shared_ptr<WidgetDefinition> pDefinition
- = m_WidgetDefinitionReader.getEditboxDefinition(ePart);
- if (pDefinition)
+ std::shared_ptr<WidgetDefinitionPart> pPart
+ = m_aWidgetDefinition.getEditboxDefinition(ePart);
+ if (pPart)
{
std::shared_ptr<WidgetDefinitionState> pState
- = pDefinition->getStates(eState, rValue).back();
+ = pPart->getStates(eState, rValue).back();
{
munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
bOK = true;
@@ -294,56 +294,56 @@ bool FileDefinitionWidgetDraw::updateSettings(AllSettings& rSettings)
{
StyleSettings aStyleSet = rSettings.GetStyleSettings();
- aStyleSet.SetFaceColor(m_WidgetDefinitionReader.maFaceColor);
- aStyleSet.SetCheckedColor(m_WidgetDefinitionReader.maCheckedColor);
- aStyleSet.SetLightColor(m_WidgetDefinitionReader.maLightColor);
- aStyleSet.SetLightBorderColor(m_WidgetDefinitionReader.maLightBorderColor);
- aStyleSet.SetShadowColor(m_WidgetDefinitionReader.maShadowColor);
- aStyleSet.SetDarkShadowColor(m_WidgetDefinitionReader.maDarkShadowColor);
- aStyleSet.SetButtonTextColor(m_WidgetDefinitionReader.maButtonTextColor);
- aStyleSet.SetButtonRolloverTextColor(m_WidgetDefinitionReader.maButtonRolloverTextColor);
- aStyleSet.SetRadioCheckTextColor(m_WidgetDefinitionReader.maRadioCheckTextColor);
- aStyleSet.SetGroupTextColor(m_WidgetDefinitionReader.maGroupTextColor);
- aStyleSet.SetLabelTextColor(m_WidgetDefinitionReader.maLabelTextColor);
- aStyleSet.SetWindowColor(m_WidgetDefinitionReader.maWindowColor);
- aStyleSet.SetWindowTextColor(m_WidgetDefinitionReader.maWindowTextColor);
- aStyleSet.SetDialogColor(m_WidgetDefinitionReader.maDialogColor);
- aStyleSet.SetDialogTextColor(m_WidgetDefinitionReader.maDialogTextColor);
- aStyleSet.SetWorkspaceColor(m_WidgetDefinitionReader.maWorkspaceColor);
- aStyleSet.SetMonoColor(m_WidgetDefinitionReader.maMonoColor);
- aStyleSet.SetFieldColor(m_WidgetDefinitionReader.maFieldColor);
- aStyleSet.SetFieldTextColor(m_WidgetDefinitionReader.maFieldTextColor);
- aStyleSet.SetFieldRolloverTextColor(m_WidgetDefinitionReader.maFieldRolloverTextColor);
- aStyleSet.SetActiveColor(m_WidgetDefinitionReader.maActiveColor);
- aStyleSet.SetActiveTextColor(m_WidgetDefinitionReader.maActiveTextColor);
- aStyleSet.SetActiveBorderColor(m_WidgetDefinitionReader.maActiveBorderColor);
- aStyleSet.SetDeactiveColor(m_WidgetDefinitionReader.maDeactiveColor);
- aStyleSet.SetDeactiveTextColor(m_WidgetDefinitionReader.maDeactiveTextColor);
- aStyleSet.SetDeactiveBorderColor(m_WidgetDefinitionReader.maDeactiveBorderColor);
- aStyleSet.SetMenuColor(m_WidgetDefinitionReader.maMenuColor);
- aStyleSet.SetMenuBarColor(m_WidgetDefinitionReader.maMenuBarColor);
- aStyleSet.SetMenuBarRolloverColor(m_WidgetDefinitionReader.maMenuBarRolloverColor);
- aStyleSet.SetMenuBorderColor(m_WidgetDefinitionReader.maMenuBorderColor);
- aStyleSet.SetMenuTextColor(m_WidgetDefinitionReader.maMenuTextColor);
- aStyleSet.SetMenuBarTextColor(m_WidgetDefinitionReader.maMenuBarTextColor);
- aStyleSet.SetMenuBarRolloverTextColor(m_WidgetDefinitionReader.maMenuBarRolloverTextColor);
- aStyleSet.SetMenuBarHighlightTextColor(m_WidgetDefinitionReader.maMenuBarHighlightTextColor);
- aStyleSet.SetMenuHighlightColor(m_WidgetDefinitionReader.maMenuHighlightColor);
- aStyleSet.SetMenuHighlightTextColor(m_WidgetDefinitionReader.maMenuHighlightTextColor);
- aStyleSet.SetHighlightColor(m_WidgetDefinitionReader.maHighlightColor);
- aStyleSet.SetHighlightTextColor(m_WidgetDefinitionReader.maHighlightTextColor);
- aStyleSet.SetActiveTabColor(m_WidgetDefinitionReader.maActiveTabColor);
- aStyleSet.SetInactiveTabColor(m_WidgetDefinitionReader.maInactiveTabColor);
- aStyleSet.SetTabTextColor(m_WidgetDefinitionReader.maTabTextColor);
- aStyleSet.SetTabRolloverTextColor(m_WidgetDefinitionReader.maTabRolloverTextColor);
- aStyleSet.SetTabHighlightTextColor(m_WidgetDefinitionReader.maTabHighlightTextColor);
- aStyleSet.SetDisableColor(m_WidgetDefinitionReader.maDisableColor);
- aStyleSet.SetHelpColor(m_WidgetDefinitionReader.maHelpColor);
- aStyleSet.SetHelpTextColor(m_WidgetDefinitionReader.maHelpTextColor);
- aStyleSet.SetLinkColor(m_WidgetDefinitionReader.maLinkColor);
- aStyleSet.SetVisitedLinkColor(m_WidgetDefinitionReader.maVisitedLinkColor);
- aStyleSet.SetToolTextColor(m_WidgetDefinitionReader.maToolTextColor);
- aStyleSet.SetFontColor(m_WidgetDefinitionReader.maFontColor);
+ aStyleSet.SetFaceColor(m_aWidgetDefinition.maFaceColor);
+ aStyleSet.SetCheckedColor(m_aWidgetDefinition.maCheckedColor);
+ aStyleSet.SetLightColor(m_aWidgetDefinition.maLightColor);
+ aStyleSet.SetLightBorderColor(m_aWidgetDefinition.maLightBorderColor);
+ aStyleSet.SetShadowColor(m_aWidgetDefinition.maShadowColor);
+ aStyleSet.SetDarkShadowColor(m_aWidgetDefinition.maDarkShadowColor);
+ aStyleSet.SetButtonTextColor(m_aWidgetDefinition.maButtonTextColor);
+ aStyleSet.SetButtonRolloverTextColor(m_aWidgetDefinition.maButtonRolloverTextColor);
+ aStyleSet.SetRadioCheckTextColor(m_aWidgetDefinition.maRadioCheckTextColor);
+ aStyleSet.SetGroupTextColor(m_aWidgetDefinition.maGroupTextColor);
+ aStyleSet.SetLabelTextColor(m_aWidgetDefinition.maLabelTextColor);
+ aStyleSet.SetWindowColor(m_aWidgetDefinition.maWindowColor);
+ aStyleSet.SetWindowTextColor(m_aWidgetDefinition.maWindowTextColor);
+ aStyleSet.SetDialogColor(m_aWidgetDefinition.maDialogColor);
+ aStyleSet.SetDialogTextColor(m_aWidgetDefinition.maDialogTextColor);
+ aStyleSet.SetWorkspaceColor(m_aWidgetDefinition.maWorkspaceColor);
+ aStyleSet.SetMonoColor(m_aWidgetDefinition.maMonoColor);
+ aStyleSet.SetFieldColor(m_aWidgetDefinition.maFieldColor);
+ aStyleSet.SetFieldTextColor(m_aWidgetDefinition.maFieldTextColor);
+ aStyleSet.SetFieldRolloverTextColor(m_aWidgetDefinition.maFieldRolloverTextColor);
+ aStyleSet.SetActiveColor(m_aWidgetDefinition.maActiveColor);
+ aStyleSet.SetActiveTextColor(m_aWidgetDefinition.maActiveTextColor);
+ aStyleSet.SetActiveBorderColor(m_aWidgetDefinition.maActiveBorderColor);
+ aStyleSet.SetDeactiveColor(m_aWidgetDefinition.maDeactiveColor);
+ aStyleSet.SetDeactiveTextColor(m_aWidgetDefinition.maDeactiveTextColor);
+ aStyleSet.SetDeactiveBorderColor(m_aWidgetDefinition.maDeactiveBorderColor);
+ aStyleSet.SetMenuColor(m_aWidgetDefinition.maMenuColor);
+ aStyleSet.SetMenuBarColor(m_aWidgetDefinition.maMenuBarColor);
+ aStyleSet.SetMenuBarRolloverColor(m_aWidgetDefinition.maMenuBarRolloverColor);
+ aStyleSet.SetMenuBorderColor(m_aWidgetDefinition.maMenuBorderColor);
+ aStyleSet.SetMenuTextColor(m_aWidgetDefinition.maMenuTextColor);
+ aStyleSet.SetMenuBarTextColor(m_aWidgetDefinition.maMenuBarTextColor);
+ aStyleSet.SetMenuBarRolloverTextColor(m_aWidgetDefinition.maMenuBarRolloverTextColor);
+ aStyleSet.SetMenuBarHighlightTextColor(m_aWidgetDefinition.maMenuBarHighlightTextColor);
+ aStyleSet.SetMenuHighlightColor(m_aWidgetDefinition.maMenuHighlightColor);
+ aStyleSet.SetMenuHighlightTextColor(m_aWidgetDefinition.maMenuHighlightTextColor);
+ aStyleSet.SetHighlightColor(m_aWidgetDefinition.maHighlightColor);
+ aStyleSet.SetHighlightTextColor(m_aWidgetDefinition.maHighlightTextColor);
+ aStyleSet.SetActiveTabColor(m_aWidgetDefinition.maActiveTabColor);
+ aStyleSet.SetInactiveTabColor(m_aWidgetDefinition.maInactiveTabColor);
+ aStyleSet.SetTabTextColor(m_aWidgetDefinition.maTabTextColor);
+ aStyleSet.SetTabRolloverTextColor(m_aWidgetDefinition.maTabRolloverTextColor);
+ aStyleSet.SetTabHighlightTextColor(m_aWidgetDefinition.maTabHighlightTextColor);
+ aStyleSet.SetDisableColor(m_aWidgetDefinition.maDisableColor);
+ aStyleSet.SetHelpColor(m_aWidgetDefinition.maHelpColor);
+ aStyleSet.SetHelpTextColor(m_aWidgetDefinition.maHelpTextColor);
+ aStyleSet.SetLinkColor(m_aWidgetDefinition.maLinkColor);
+ aStyleSet.SetVisitedLinkColor(m_aWidgetDefinition.maVisitedLinkColor);
+ aStyleSet.SetToolTextColor(m_aWidgetDefinition.maToolTextColor);
+ aStyleSet.SetFontColor(m_aWidgetDefinition.maFontColor);
rSettings.SetStyleSettings(aStyleSet);
diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx
index 3a8848f50617..c3e6b10953da 100644
--- a/vcl/source/gdi/WidgetDefinitionReader.cxx
+++ b/vcl/source/gdi/WidgetDefinitionReader.cxx
@@ -146,7 +146,7 @@ void WidgetDefinitionReader::readDrawingDefinition(tools::XmlWalker& rWalker,
void WidgetDefinitionReader::readDefinition(
tools::XmlWalker& rWalker,
- std::unordered_map<OString, std::shared_ptr<WidgetDefinition>>& rDefinition)
+ std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>>& rPart)
{
rWalker.children();
while (rWalker.isValid())
@@ -154,8 +154,8 @@ void WidgetDefinitionReader::readDefinition(
if (rWalker.name() == "part")
{
OString sPart = rWalker.attribute("value");
- std::shared_ptr<WidgetDefinition> pPart = std::make_shared<WidgetDefinition>();
- rDefinition.emplace(sPart, pPart);
+ std::shared_ptr<WidgetDefinitionPart> pPart = std::make_shared<WidgetDefinitionPart>();
+ rPart.emplace(sPart, pPart);
readPart(rWalker, pPart);
}
rWalker.next();
@@ -164,7 +164,7 @@ void WidgetDefinitionReader::readDefinition(
}
void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker,
- std::shared_ptr<WidgetDefinition> rpPart)
+ std::shared_ptr<WidgetDefinitionPart> rpPart)
{
rWalker.children();
while (rWalker.isValid())
@@ -189,22 +189,7 @@ void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker,
rWalker.parent();
}
-void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker)
-{
- readDefinition(rWalker, maPushButtonDefinitions);
-}
-
-void WidgetDefinitionReader::readRadioButton(tools::XmlWalker& rWalker)
-{
- readDefinition(rWalker, maRadioButtonDefinitions);
-}
-
-void WidgetDefinitionReader::readEditbox(tools::XmlWalker& rWalker)
-{
- readDefinition(rWalker, maEditboxDefinitions);
-}
-
-bool WidgetDefinitionReader::read()
+bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition)
{
if (!lcl_fileExists(m_rFilePath))
return false;
@@ -212,56 +197,56 @@ bool WidgetDefinitionReader::read()
SvFileStream aFileStream(m_rFilePath, StreamMode::READ);
std::unordered_map<OString, Color*> aStyleColorMap = {
- { "faceColor", &maFaceColor },
- { "checkedColor", &maCheckedColor },
- { "lightColor", &maLightColor },
- { "lightBorderColor", &maLightBorderColor },
- { "shadowColor", &maShadowColor },
- { "darkShadowColor", &maDarkShadowColor },
- { "buttonTextColor", &maButtonTextColor },
- { "buttonRolloverTextColor", &maButtonRolloverTextColor },
- { "radioCheckTextColor", &maRadioCheckTextColor },
- { "groupTextColor", &maGroupTextColor },
- { "labelTextColor", &maLabelTextColor },
- { "windowColor", &maWindowColor },
- { "windowTextColor", &maWindowTextColor },
- { "dialogColor", &maDialogColor },
- { "dialogTextColor", &maDialogTextColor },
- { "workspaceColor", &maWorkspaceColor },
- { "monoColor", &maMonoColor },
- { "fieldColor", &maFieldColor },
- { "fieldTextColor", &maFieldTextColor },
- { "fieldRolloverTextColor", &maFieldRolloverTextColor },
- { "activeColor", &maActiveColor },
- { "activeTextColor", &maActiveTextColor },
- { "activeBorderColor", &maActiveBorderColor },
- { "deactiveColor", &maDeactiveColor },
- { "deactiveTextColor", &maDeactiveTextColor },
- { "deactiveBorderColor", &maDeactiveBorderColor },
- { "menuColor", &maMenuColor },
- { "menuBarColor", &maMenuBarColor },
- { "menuBarRolloverColor", &maMenuBarRolloverColor },
- { "menuBorderColor", &maMenuBorderColor },
- { "menuTextColor", &maMenuTextColor },
- { "menuBarTextColor", &maMenuBarTextColor },
- { "menuBarRolloverTextColor", &maMenuBarRolloverTextColor },
- { "menuBarHighlightTextColor", &maMenuBarHighlightTextColor },
- { "menuHighlightColor", &maMenuHighlightColor },
- { "menuHighlightTextColor", &maMenuHighlightTextColor },
- { "highlightColor", &maHighlightColor },
- { "highlightTextColor", &maHighlightTextColor },
- { "activeTabColor", &maActiveTabColor },
- { "inactiveTabColor", &maInactiveTabColor },
- { "tabTextColor", &maTabTextColor },
- { "tabRolloverTextColor", &maTabRolloverTextColor },
- { "tabHighlightTextColor", &maTabHighlightTextColor },
- { "disableColor", &maDisableColor },
- { "helpColor", &maHelpColor },
- { "helpTextColor", &maHelpTextColor },
- { "linkColor", &maLinkColor },
- { "visitedLinkColor", &maVisitedLinkColor },
- { "toolTextColor", &maToolTextColor },
- { "fontColor", &maFontColor },
+ { "faceColor", &rWidgetDefinition.maFaceColor },
+ { "checkedColor", &rWidgetDefinition.maCheckedColor },
+ { "lightColor", &rWidgetDefinition.maLightColor },
+ { "lightBorderColor", &rWidgetDefinition.maLightBorderColor },
+ { "shadowColor", &rWidgetDefinition.maShadowColor },
+ { "darkShadowColor", &rWidgetDefinition.maDarkShadowColor },
+ { "buttonTextColor", &rWidgetDefinition.maButtonTextColor },
+ { "buttonRolloverTextColor", &rWidgetDefinition.maButtonRolloverTextColor },
+ { "radioCheckTextColor", &rWidgetDefinition.maRadioCheckTextColor },
+ { "groupTextColor", &rWidgetDefinition.maGroupTextColor },
+ { "labelTextColor", &rWidgetDefinition.maLabelTextColor },
+ { "windowColor", &rWidgetDefinition.maWindowColor },
+ { "windowTextColor", &rWidgetDefinition.maWindowTextColor },
+ { "dialogColor", &rWidgetDefinition.maDialogColor },
+ { "dialogTextColor", &rWidgetDefinition.maDialogTextColor },
+ { "workspaceColor", &rWidgetDefinition.maWorkspaceColor },
+ { "monoColor", &rWidgetDefinition.maMonoColor },
+ { "fieldColor", &rWidgetDefinition.maFieldColor },
+ { "fieldTextColor", &rWidgetDefinition.maFieldTextColor },
+ { "fieldRolloverTextColor", &rWidgetDefinition.maFieldRolloverTextColor },
+ { "activeColor", &rWidgetDefinition.maActiveColor },
+ { "activeTextColor", &rWidgetDefinition.maActiveTextColor },
+ { "activeBorderColor", &rWidgetDefinition.maActiveBorderColor },
+ { "deactiveColor", &rWidgetDefinition.maDeactiveColor },
+ { "deactiveTextColor", &rWidgetDefinition.maDeactiveTextColor },
+ { "deactiveBorderColor", &rWidgetDefinition.maDeactiveBorderColor },
+ { "menuColor", &rWidgetDefinition.maMenuColor },
+ { "menuBarColor", &rWidgetDefinition.maMenuBarColor },
+ { "menuBarRolloverColor", &rWidgetDefinition.maMenuBarRolloverColor },
+ { "menuBorderColor", &rWidgetDefinition.maMenuBorderColor },
+ { "menuTextColor", &rWidgetDefinition.maMenuTextColor },
+ { "menuBarTextColor", &rWidgetDefinition.maMenuBarTextColor },
+ { "menuBarRolloverTextColor", &rWidgetDefinition.maMenuBarRolloverTextColor },
+ { "menuBarHighlightTextColor", &rWidgetDefinition.maMenuBarHighlightTextColor },
+ { "menuHighlightColor", &rWidgetDefinition.maMenuHighlightColor },
+ { "menuHighlightTextColor", &rWidgetDefinition.maMenuHighlightTextColor },
+ { "highlightColor", &rWidgetDefinition.maHighlightColor },
+ { "highlightTextColor", &rWidgetDefinition.maHighlightTextColor },
+ { "activeTabColor", &rWidgetDefinition.maActiveTabColor },
+ { "inactiveTabColor", &rWidgetDefinition.maInactiveTabColor },
+ { "tabTextColor", &rWidgetDefinition.maTabTextColor },
+ { "tabRolloverTextColor", &rWidgetDefinition.maTabRolloverTextColor },
+ { "tabHighlightTextColor", &rWidgetDefinition.maTabHighlightTextColor },
+ { "disableColor", &rWidgetDefinition.maDisableColor },
+ { "helpColor", &rWidgetDefinition.maHelpColor },
+ { "helpTextColor", &rWidgetDefinition.maHelpTextColor },
+ { "linkColor", &rWidgetDefinition.maLinkColor },
+ { "visitedLinkColor", &rWidgetDefinition.maVisitedLinkColor },
+ { "toolTextColor", &rWidgetDefinition.maToolTextColor },
+ { "fontColor", &rWidgetDefinition.maFontColor },
};
tools::XmlWalker aWalker;
@@ -290,15 +275,15 @@ bool WidgetDefinitionReader::read()
}
else if (aWalker.name() == "pushbutton")
{
- readPushButton(aWalker);
+ readDefinition(aWalker, rWidgetDefinition.maPushButtonDefinitions);
}
else if (aWalker.name() == "radiobutton")
{
- readRadioButton(aWalker);
+ readDefinition(aWalker, rWidgetDefinition.maRadioButtonDefinitions);
}
else if (aWalker.name() == "editbox")
{
- readEditbox(aWalker);
+ readDefinition(aWalker, rWidgetDefinition.maEditboxDefinitions);
}
aWalker.next();
}
@@ -392,36 +377,35 @@ OString xmlControlPart(ControlPart ePart)
} // end anonymous namespace
-std::shared_ptr<WidgetDefinition> WidgetDefinitionReader::getPushButtonDefinition(ControlPart ePart)
+std::shared_ptr<WidgetDefinitionPart> WidgetDefinition::getPushButtonDefinition(ControlPart ePart)
{
auto aIterator = maPushButtonDefinitions.find(xmlControlPart(ePart));
if (aIterator != maPushButtonDefinitions.end())
return aIterator->second;
- return std::shared_ptr<WidgetDefinition>();
+ return std::shared_ptr<WidgetDefinitionPart>();
}
-std::shared_ptr<WidgetDefinition>
-WidgetDefinitionReader::getRadioButtonDefinition(ControlPart ePart)
+std::shared_ptr<WidgetDefinitionPart> WidgetDefinition::getRadioButtonDefinition(ControlPart ePart)
{
auto aIterator = maRadioButtonDefinitions.find(xmlControlPart(ePart));
if (aIterator != maRadioButtonDefinitions.end())
return aIterator->second;
- return std::shared_ptr<WidgetDefinition>();
+ return std::shared_ptr<WidgetDefinitionPart>();
}
-std::shared_ptr<WidgetDefinition> WidgetDefinitionReader::getEditboxDefinition(ControlPart ePart)
+std::shared_ptr<WidgetDefinitionPart> WidgetDefinition::getEditboxDefinition(ControlPart ePart)
{
auto aIterator = maEditboxDefinitions.find(xmlControlPart(ePart));
if (aIterator != maEditboxDefinitions.end())
return aIterator->second;
- return std::shared_ptr<WidgetDefinition>();
+ return std::shared_ptr<WidgetDefinitionPart>();
}
std::vector<std::shared_ptr<WidgetDefinitionState>>
-WidgetDefinition::getStates(ControlState eState, ImplControlValue const& rValue)
+WidgetDefinitionPart::getStates(ControlState eState, ImplControlValue const& rValue)
{
std::vector<std::shared_ptr<WidgetDefinitionState>> aStatesToAdd;