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>
This commit is contained in:
Tomaž Vajngerl
2019-01-25 17:33:33 +01:00
committed by Tomaž Vajngerl
parent 8a1c18823c
commit fb6f8a0f15
5 changed files with 171 additions and 186 deletions

View File

@@ -22,7 +22,7 @@ class FileDefinitionWidgetDraw : public vcl::WidgetDrawInterface
{ {
private: private:
SalGraphics& m_rGraphics; SalGraphics& m_rGraphics;
WidgetDefinitionReader m_WidgetDefinitionReader; WidgetDefinition m_aWidgetDefinition;
public: public:
FileDefinitionWidgetDraw(SalGraphics& rGraphics); FileDefinitionWidgetDraw(SalGraphics& rGraphics);

View File

@@ -109,7 +109,7 @@ public:
float fY2); float fY2);
}; };
class VCL_DLLPUBLIC WidgetDefinition class VCL_DLLPUBLIC WidgetDefinitionPart
{ {
public: public:
std::vector<std::shared_ptr<WidgetDefinitionState>> getStates(ControlState eState, std::vector<std::shared_ptr<WidgetDefinitionState>> getStates(ControlState eState,
@@ -118,24 +118,8 @@ public:
std::vector<std::shared_ptr<WidgetDefinitionState>> maStates; 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: public:
Color maFaceColor; Color maFaceColor;
Color maCheckedColor; Color maCheckedColor;
@@ -188,16 +172,32 @@ public:
Color maToolTextColor; Color maToolTextColor;
Color maFontColor; Color maFontColor;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maPushButtonDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maPushButtonDefinitions;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maRadioButtonDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maRadioButtonDefinitions;
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>> maEditboxDefinitions; std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>> maEditboxDefinitions;
std::shared_ptr<WidgetDefinition> getPushButtonDefinition(ControlPart ePart); std::shared_ptr<WidgetDefinitionPart> getPushButtonDefinition(ControlPart ePart);
std::shared_ptr<WidgetDefinition> getRadioButtonDefinition(ControlPart ePart); std::shared_ptr<WidgetDefinitionPart> getRadioButtonDefinition(ControlPart ePart);
std::shared_ptr<WidgetDefinition> getEditboxDefinition(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); WidgetDefinitionReader(OUString const& rFilePath);
bool read(); bool read(WidgetDefinition& rWidgetDefinition);
}; };
} // end vcl namespace } // end vcl namespace

View File

@@ -37,25 +37,26 @@ public:
void WidgetDefinitionReaderTest::testRead() void WidgetDefinitionReaderTest::testRead()
{ {
vcl::WidgetDefinition aDefinition;
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maFaceColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maCheckedColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aDefinition.maLightColor.AsRGBHexString());
vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml")); vcl::WidgetDefinitionReader aReader(getFullUrl("definition1.xml"));
aReader.read(aDefinition);
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maFaceColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("123456"), aDefinition.maFaceColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maCheckedColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("234567"), aDefinition.maCheckedColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("000000"), aReader.maLightColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("345678"), aDefinition.maLightColor.AsRGBHexString());
aReader.read(); CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maVisitedLinkColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maToolTextColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("123456"), aReader.maFaceColor.AsRGBHexString()); CPPUNIT_ASSERT_EQUAL(OUString("ffffff"), aDefinition.maFontColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("234567"), aReader.maCheckedColor.AsRGBHexString());
CPPUNIT_ASSERT_EQUAL(OUString("345678"), aReader.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());
{ {
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getPushButtonDefinition(ControlPart::Entire) = aDefinition.getPushButtonDefinition(ControlPart::Entire)
->getStates(ControlState::DEFAULT | ControlState::ENABLED ->getStates(ControlState::DEFAULT | ControlState::ENABLED
| ControlState::ROLLOVER, | ControlState::ROLLOVER,
ImplControlValue()); ImplControlValue());
@@ -70,7 +71,7 @@ void WidgetDefinitionReaderTest::testRead()
{ {
std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getRadioButtonDefinition(ControlPart::Entire) = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::On)); ->getStates(ControlState::NONE, ImplControlValue(ButtonValue::On));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(2), aStates[0]->mpDrawCommands.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 std::vector<std::shared_ptr<vcl::WidgetDefinitionState>> aStates
= aReader.getRadioButtonDefinition(ControlPart::Entire) = aDefinition.getRadioButtonDefinition(ControlPart::Entire)
->getStates(ControlState::NONE, ImplControlValue(ButtonValue::Off)); ->getStates(ControlState::NONE, ImplControlValue(ButtonValue::Off));
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates.size());
CPPUNIT_ASSERT_EQUAL(size_t(1), aStates[0]->mpDrawCommands.size()); CPPUNIT_ASSERT_EQUAL(size_t(1), aStates[0]->mpDrawCommands.size());

View File

@@ -30,9 +30,9 @@ OUString lcl_getThemeDefinitionPath()
FileDefinitionWidgetDraw::FileDefinitionWidgetDraw(SalGraphics& rGraphics) FileDefinitionWidgetDraw::FileDefinitionWidgetDraw(SalGraphics& rGraphics)
: m_rGraphics(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(); ImplSVData* pSVData = ImplGetSVData();
pSVData->maNWFData.mbNoFocusRects = true; pSVData->maNWFData.mbNoFocusRects = true;
@@ -196,11 +196,11 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
break; break;
case ControlType::Pushbutton: case ControlType::Pushbutton:
{ {
std::shared_ptr<WidgetDefinition> pDefinition std::shared_ptr<WidgetDefinitionPart> pPart
= m_WidgetDefinitionReader.getPushButtonDefinition(ePart); = m_aWidgetDefinition.getPushButtonDefinition(ePart);
if (pDefinition) if (pPart)
{ {
auto aStates = pDefinition->getStates(eState, rValue); auto aStates = pPart->getStates(eState, rValue);
if (!aStates.empty()) if (!aStates.empty())
{ {
std::shared_ptr<WidgetDefinitionState> pState = aStates.back(); std::shared_ptr<WidgetDefinitionState> pState = aStates.back();
@@ -215,12 +215,12 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
break; break;
case ControlType::Radiobutton: case ControlType::Radiobutton:
{ {
std::shared_ptr<WidgetDefinition> pDefinition std::shared_ptr<WidgetDefinitionPart> pPart
= m_WidgetDefinitionReader.getRadioButtonDefinition(ePart); = m_aWidgetDefinition.getRadioButtonDefinition(ePart);
if (pDefinition) if (pPart)
{ {
std::shared_ptr<WidgetDefinitionState> pState std::shared_ptr<WidgetDefinitionState> pState
= pDefinition->getStates(eState, rValue).back(); = pPart->getStates(eState, rValue).back();
{ {
munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight); munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
bOK = true; bOK = true;
@@ -235,12 +235,12 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
case ControlType::EditboxNoBorder: case ControlType::EditboxNoBorder:
case ControlType::MultilineEditbox: case ControlType::MultilineEditbox:
{ {
std::shared_ptr<WidgetDefinition> pDefinition std::shared_ptr<WidgetDefinitionPart> pPart
= m_WidgetDefinitionReader.getEditboxDefinition(ePart); = m_aWidgetDefinition.getEditboxDefinition(ePart);
if (pDefinition) if (pPart)
{ {
std::shared_ptr<WidgetDefinitionState> pState std::shared_ptr<WidgetDefinitionState> pState
= pDefinition->getStates(eState, rValue).back(); = pPart->getStates(eState, rValue).back();
{ {
munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight); munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
bOK = true; bOK = true;
@@ -294,56 +294,56 @@ bool FileDefinitionWidgetDraw::updateSettings(AllSettings& rSettings)
{ {
StyleSettings aStyleSet = rSettings.GetStyleSettings(); StyleSettings aStyleSet = rSettings.GetStyleSettings();
aStyleSet.SetFaceColor(m_WidgetDefinitionReader.maFaceColor); aStyleSet.SetFaceColor(m_aWidgetDefinition.maFaceColor);
aStyleSet.SetCheckedColor(m_WidgetDefinitionReader.maCheckedColor); aStyleSet.SetCheckedColor(m_aWidgetDefinition.maCheckedColor);
aStyleSet.SetLightColor(m_WidgetDefinitionReader.maLightColor); aStyleSet.SetLightColor(m_aWidgetDefinition.maLightColor);
aStyleSet.SetLightBorderColor(m_WidgetDefinitionReader.maLightBorderColor); aStyleSet.SetLightBorderColor(m_aWidgetDefinition.maLightBorderColor);
aStyleSet.SetShadowColor(m_WidgetDefinitionReader.maShadowColor); aStyleSet.SetShadowColor(m_aWidgetDefinition.maShadowColor);
aStyleSet.SetDarkShadowColor(m_WidgetDefinitionReader.maDarkShadowColor); aStyleSet.SetDarkShadowColor(m_aWidgetDefinition.maDarkShadowColor);
aStyleSet.SetButtonTextColor(m_WidgetDefinitionReader.maButtonTextColor); aStyleSet.SetButtonTextColor(m_aWidgetDefinition.maButtonTextColor);
aStyleSet.SetButtonRolloverTextColor(m_WidgetDefinitionReader.maButtonRolloverTextColor); aStyleSet.SetButtonRolloverTextColor(m_aWidgetDefinition.maButtonRolloverTextColor);
aStyleSet.SetRadioCheckTextColor(m_WidgetDefinitionReader.maRadioCheckTextColor); aStyleSet.SetRadioCheckTextColor(m_aWidgetDefinition.maRadioCheckTextColor);
aStyleSet.SetGroupTextColor(m_WidgetDefinitionReader.maGroupTextColor); aStyleSet.SetGroupTextColor(m_aWidgetDefinition.maGroupTextColor);
aStyleSet.SetLabelTextColor(m_WidgetDefinitionReader.maLabelTextColor); aStyleSet.SetLabelTextColor(m_aWidgetDefinition.maLabelTextColor);
aStyleSet.SetWindowColor(m_WidgetDefinitionReader.maWindowColor); aStyleSet.SetWindowColor(m_aWidgetDefinition.maWindowColor);
aStyleSet.SetWindowTextColor(m_WidgetDefinitionReader.maWindowTextColor); aStyleSet.SetWindowTextColor(m_aWidgetDefinition.maWindowTextColor);
aStyleSet.SetDialogColor(m_WidgetDefinitionReader.maDialogColor); aStyleSet.SetDialogColor(m_aWidgetDefinition.maDialogColor);
aStyleSet.SetDialogTextColor(m_WidgetDefinitionReader.maDialogTextColor); aStyleSet.SetDialogTextColor(m_aWidgetDefinition.maDialogTextColor);
aStyleSet.SetWorkspaceColor(m_WidgetDefinitionReader.maWorkspaceColor); aStyleSet.SetWorkspaceColor(m_aWidgetDefinition.maWorkspaceColor);
aStyleSet.SetMonoColor(m_WidgetDefinitionReader.maMonoColor); aStyleSet.SetMonoColor(m_aWidgetDefinition.maMonoColor);
aStyleSet.SetFieldColor(m_WidgetDefinitionReader.maFieldColor); aStyleSet.SetFieldColor(m_aWidgetDefinition.maFieldColor);
aStyleSet.SetFieldTextColor(m_WidgetDefinitionReader.maFieldTextColor); aStyleSet.SetFieldTextColor(m_aWidgetDefinition.maFieldTextColor);
aStyleSet.SetFieldRolloverTextColor(m_WidgetDefinitionReader.maFieldRolloverTextColor); aStyleSet.SetFieldRolloverTextColor(m_aWidgetDefinition.maFieldRolloverTextColor);
aStyleSet.SetActiveColor(m_WidgetDefinitionReader.maActiveColor); aStyleSet.SetActiveColor(m_aWidgetDefinition.maActiveColor);
aStyleSet.SetActiveTextColor(m_WidgetDefinitionReader.maActiveTextColor); aStyleSet.SetActiveTextColor(m_aWidgetDefinition.maActiveTextColor);
aStyleSet.SetActiveBorderColor(m_WidgetDefinitionReader.maActiveBorderColor); aStyleSet.SetActiveBorderColor(m_aWidgetDefinition.maActiveBorderColor);
aStyleSet.SetDeactiveColor(m_WidgetDefinitionReader.maDeactiveColor); aStyleSet.SetDeactiveColor(m_aWidgetDefinition.maDeactiveColor);
aStyleSet.SetDeactiveTextColor(m_WidgetDefinitionReader.maDeactiveTextColor); aStyleSet.SetDeactiveTextColor(m_aWidgetDefinition.maDeactiveTextColor);
aStyleSet.SetDeactiveBorderColor(m_WidgetDefinitionReader.maDeactiveBorderColor); aStyleSet.SetDeactiveBorderColor(m_aWidgetDefinition.maDeactiveBorderColor);
aStyleSet.SetMenuColor(m_WidgetDefinitionReader.maMenuColor); aStyleSet.SetMenuColor(m_aWidgetDefinition.maMenuColor);
aStyleSet.SetMenuBarColor(m_WidgetDefinitionReader.maMenuBarColor); aStyleSet.SetMenuBarColor(m_aWidgetDefinition.maMenuBarColor);
aStyleSet.SetMenuBarRolloverColor(m_WidgetDefinitionReader.maMenuBarRolloverColor); aStyleSet.SetMenuBarRolloverColor(m_aWidgetDefinition.maMenuBarRolloverColor);
aStyleSet.SetMenuBorderColor(m_WidgetDefinitionReader.maMenuBorderColor); aStyleSet.SetMenuBorderColor(m_aWidgetDefinition.maMenuBorderColor);
aStyleSet.SetMenuTextColor(m_WidgetDefinitionReader.maMenuTextColor); aStyleSet.SetMenuTextColor(m_aWidgetDefinition.maMenuTextColor);
aStyleSet.SetMenuBarTextColor(m_WidgetDefinitionReader.maMenuBarTextColor); aStyleSet.SetMenuBarTextColor(m_aWidgetDefinition.maMenuBarTextColor);
aStyleSet.SetMenuBarRolloverTextColor(m_WidgetDefinitionReader.maMenuBarRolloverTextColor); aStyleSet.SetMenuBarRolloverTextColor(m_aWidgetDefinition.maMenuBarRolloverTextColor);
aStyleSet.SetMenuBarHighlightTextColor(m_WidgetDefinitionReader.maMenuBarHighlightTextColor); aStyleSet.SetMenuBarHighlightTextColor(m_aWidgetDefinition.maMenuBarHighlightTextColor);
aStyleSet.SetMenuHighlightColor(m_WidgetDefinitionReader.maMenuHighlightColor); aStyleSet.SetMenuHighlightColor(m_aWidgetDefinition.maMenuHighlightColor);
aStyleSet.SetMenuHighlightTextColor(m_WidgetDefinitionReader.maMenuHighlightTextColor); aStyleSet.SetMenuHighlightTextColor(m_aWidgetDefinition.maMenuHighlightTextColor);
aStyleSet.SetHighlightColor(m_WidgetDefinitionReader.maHighlightColor); aStyleSet.SetHighlightColor(m_aWidgetDefinition.maHighlightColor);
aStyleSet.SetHighlightTextColor(m_WidgetDefinitionReader.maHighlightTextColor); aStyleSet.SetHighlightTextColor(m_aWidgetDefinition.maHighlightTextColor);
aStyleSet.SetActiveTabColor(m_WidgetDefinitionReader.maActiveTabColor); aStyleSet.SetActiveTabColor(m_aWidgetDefinition.maActiveTabColor);
aStyleSet.SetInactiveTabColor(m_WidgetDefinitionReader.maInactiveTabColor); aStyleSet.SetInactiveTabColor(m_aWidgetDefinition.maInactiveTabColor);
aStyleSet.SetTabTextColor(m_WidgetDefinitionReader.maTabTextColor); aStyleSet.SetTabTextColor(m_aWidgetDefinition.maTabTextColor);
aStyleSet.SetTabRolloverTextColor(m_WidgetDefinitionReader.maTabRolloverTextColor); aStyleSet.SetTabRolloverTextColor(m_aWidgetDefinition.maTabRolloverTextColor);
aStyleSet.SetTabHighlightTextColor(m_WidgetDefinitionReader.maTabHighlightTextColor); aStyleSet.SetTabHighlightTextColor(m_aWidgetDefinition.maTabHighlightTextColor);
aStyleSet.SetDisableColor(m_WidgetDefinitionReader.maDisableColor); aStyleSet.SetDisableColor(m_aWidgetDefinition.maDisableColor);
aStyleSet.SetHelpColor(m_WidgetDefinitionReader.maHelpColor); aStyleSet.SetHelpColor(m_aWidgetDefinition.maHelpColor);
aStyleSet.SetHelpTextColor(m_WidgetDefinitionReader.maHelpTextColor); aStyleSet.SetHelpTextColor(m_aWidgetDefinition.maHelpTextColor);
aStyleSet.SetLinkColor(m_WidgetDefinitionReader.maLinkColor); aStyleSet.SetLinkColor(m_aWidgetDefinition.maLinkColor);
aStyleSet.SetVisitedLinkColor(m_WidgetDefinitionReader.maVisitedLinkColor); aStyleSet.SetVisitedLinkColor(m_aWidgetDefinition.maVisitedLinkColor);
aStyleSet.SetToolTextColor(m_WidgetDefinitionReader.maToolTextColor); aStyleSet.SetToolTextColor(m_aWidgetDefinition.maToolTextColor);
aStyleSet.SetFontColor(m_WidgetDefinitionReader.maFontColor); aStyleSet.SetFontColor(m_aWidgetDefinition.maFontColor);
rSettings.SetStyleSettings(aStyleSet); rSettings.SetStyleSettings(aStyleSet);

View File

@@ -146,7 +146,7 @@ void WidgetDefinitionReader::readDrawingDefinition(tools::XmlWalker& rWalker,
void WidgetDefinitionReader::readDefinition( void WidgetDefinitionReader::readDefinition(
tools::XmlWalker& rWalker, tools::XmlWalker& rWalker,
std::unordered_map<OString, std::shared_ptr<WidgetDefinition>>& rDefinition) std::unordered_map<OString, std::shared_ptr<WidgetDefinitionPart>>& rPart)
{ {
rWalker.children(); rWalker.children();
while (rWalker.isValid()) while (rWalker.isValid())
@@ -154,8 +154,8 @@ void WidgetDefinitionReader::readDefinition(
if (rWalker.name() == "part") if (rWalker.name() == "part")
{ {
OString sPart = rWalker.attribute("value"); OString sPart = rWalker.attribute("value");
std::shared_ptr<WidgetDefinition> pPart = std::make_shared<WidgetDefinition>(); std::shared_ptr<WidgetDefinitionPart> pPart = std::make_shared<WidgetDefinitionPart>();
rDefinition.emplace(sPart, pPart); rPart.emplace(sPart, pPart);
readPart(rWalker, pPart); readPart(rWalker, pPart);
} }
rWalker.next(); rWalker.next();
@@ -164,7 +164,7 @@ void WidgetDefinitionReader::readDefinition(
} }
void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker, void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker,
std::shared_ptr<WidgetDefinition> rpPart) std::shared_ptr<WidgetDefinitionPart> rpPart)
{ {
rWalker.children(); rWalker.children();
while (rWalker.isValid()) while (rWalker.isValid())
@@ -189,22 +189,7 @@ void WidgetDefinitionReader::readPart(tools::XmlWalker& rWalker,
rWalker.parent(); rWalker.parent();
} }
void WidgetDefinitionReader::readPushButton(tools::XmlWalker& rWalker) bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition)
{
readDefinition(rWalker, maPushButtonDefinitions);
}
void WidgetDefinitionReader::readRadioButton(tools::XmlWalker& rWalker)
{
readDefinition(rWalker, maRadioButtonDefinitions);
}
void WidgetDefinitionReader::readEditbox(tools::XmlWalker& rWalker)
{
readDefinition(rWalker, maEditboxDefinitions);
}
bool WidgetDefinitionReader::read()
{ {
if (!lcl_fileExists(m_rFilePath)) if (!lcl_fileExists(m_rFilePath))
return false; return false;
@@ -212,56 +197,56 @@ bool WidgetDefinitionReader::read()
SvFileStream aFileStream(m_rFilePath, StreamMode::READ); SvFileStream aFileStream(m_rFilePath, StreamMode::READ);
std::unordered_map<OString, Color*> aStyleColorMap = { std::unordered_map<OString, Color*> aStyleColorMap = {
{ "faceColor", &maFaceColor }, { "faceColor", &rWidgetDefinition.maFaceColor },
{ "checkedColor", &maCheckedColor }, { "checkedColor", &rWidgetDefinition.maCheckedColor },
{ "lightColor", &maLightColor }, { "lightColor", &rWidgetDefinition.maLightColor },
{ "lightBorderColor", &maLightBorderColor }, { "lightBorderColor", &rWidgetDefinition.maLightBorderColor },
{ "shadowColor", &maShadowColor }, { "shadowColor", &rWidgetDefinition.maShadowColor },
{ "darkShadowColor", &maDarkShadowColor }, { "darkShadowColor", &rWidgetDefinition.maDarkShadowColor },
{ "buttonTextColor", &maButtonTextColor }, { "buttonTextColor", &rWidgetDefinition.maButtonTextColor },
{ "buttonRolloverTextColor", &maButtonRolloverTextColor }, { "buttonRolloverTextColor", &rWidgetDefinition.maButtonRolloverTextColor },
{ "radioCheckTextColor", &maRadioCheckTextColor }, { "radioCheckTextColor", &rWidgetDefinition.maRadioCheckTextColor },
{ "groupTextColor", &maGroupTextColor }, { "groupTextColor", &rWidgetDefinition.maGroupTextColor },
{ "labelTextColor", &maLabelTextColor }, { "labelTextColor", &rWidgetDefinition.maLabelTextColor },
{ "windowColor", &maWindowColor }, { "windowColor", &rWidgetDefinition.maWindowColor },
{ "windowTextColor", &maWindowTextColor }, { "windowTextColor", &rWidgetDefinition.maWindowTextColor },
{ "dialogColor", &maDialogColor }, { "dialogColor", &rWidgetDefinition.maDialogColor },
{ "dialogTextColor", &maDialogTextColor }, { "dialogTextColor", &rWidgetDefinition.maDialogTextColor },
{ "workspaceColor", &maWorkspaceColor }, { "workspaceColor", &rWidgetDefinition.maWorkspaceColor },
{ "monoColor", &maMonoColor }, { "monoColor", &rWidgetDefinition.maMonoColor },
{ "fieldColor", &maFieldColor }, { "fieldColor", &rWidgetDefinition.maFieldColor },
{ "fieldTextColor", &maFieldTextColor }, { "fieldTextColor", &rWidgetDefinition.maFieldTextColor },
{ "fieldRolloverTextColor", &maFieldRolloverTextColor }, { "fieldRolloverTextColor", &rWidgetDefinition.maFieldRolloverTextColor },
{ "activeColor", &maActiveColor }, { "activeColor", &rWidgetDefinition.maActiveColor },
{ "activeTextColor", &maActiveTextColor }, { "activeTextColor", &rWidgetDefinition.maActiveTextColor },
{ "activeBorderColor", &maActiveBorderColor }, { "activeBorderColor", &rWidgetDefinition.maActiveBorderColor },
{ "deactiveColor", &maDeactiveColor }, { "deactiveColor", &rWidgetDefinition.maDeactiveColor },
{ "deactiveTextColor", &maDeactiveTextColor }, { "deactiveTextColor", &rWidgetDefinition.maDeactiveTextColor },
{ "deactiveBorderColor", &maDeactiveBorderColor }, { "deactiveBorderColor", &rWidgetDefinition.maDeactiveBorderColor },
{ "menuColor", &maMenuColor }, { "menuColor", &rWidgetDefinition.maMenuColor },
{ "menuBarColor", &maMenuBarColor }, { "menuBarColor", &rWidgetDefinition.maMenuBarColor },
{ "menuBarRolloverColor", &maMenuBarRolloverColor }, { "menuBarRolloverColor", &rWidgetDefinition.maMenuBarRolloverColor },
{ "menuBorderColor", &maMenuBorderColor }, { "menuBorderColor", &rWidgetDefinition.maMenuBorderColor },
{ "menuTextColor", &maMenuTextColor }, { "menuTextColor", &rWidgetDefinition.maMenuTextColor },
{ "menuBarTextColor", &maMenuBarTextColor }, { "menuBarTextColor", &rWidgetDefinition.maMenuBarTextColor },
{ "menuBarRolloverTextColor", &maMenuBarRolloverTextColor }, { "menuBarRolloverTextColor", &rWidgetDefinition.maMenuBarRolloverTextColor },
{ "menuBarHighlightTextColor", &maMenuBarHighlightTextColor }, { "menuBarHighlightTextColor", &rWidgetDefinition.maMenuBarHighlightTextColor },
{ "menuHighlightColor", &maMenuHighlightColor }, { "menuHighlightColor", &rWidgetDefinition.maMenuHighlightColor },
{ "menuHighlightTextColor", &maMenuHighlightTextColor }, { "menuHighlightTextColor", &rWidgetDefinition.maMenuHighlightTextColor },
{ "highlightColor", &maHighlightColor }, { "highlightColor", &rWidgetDefinition.maHighlightColor },
{ "highlightTextColor", &maHighlightTextColor }, { "highlightTextColor", &rWidgetDefinition.maHighlightTextColor },
{ "activeTabColor", &maActiveTabColor }, { "activeTabColor", &rWidgetDefinition.maActiveTabColor },
{ "inactiveTabColor", &maInactiveTabColor }, { "inactiveTabColor", &rWidgetDefinition.maInactiveTabColor },
{ "tabTextColor", &maTabTextColor }, { "tabTextColor", &rWidgetDefinition.maTabTextColor },
{ "tabRolloverTextColor", &maTabRolloverTextColor }, { "tabRolloverTextColor", &rWidgetDefinition.maTabRolloverTextColor },
{ "tabHighlightTextColor", &maTabHighlightTextColor }, { "tabHighlightTextColor", &rWidgetDefinition.maTabHighlightTextColor },
{ "disableColor", &maDisableColor }, { "disableColor", &rWidgetDefinition.maDisableColor },
{ "helpColor", &maHelpColor }, { "helpColor", &rWidgetDefinition.maHelpColor },
{ "helpTextColor", &maHelpTextColor }, { "helpTextColor", &rWidgetDefinition.maHelpTextColor },
{ "linkColor", &maLinkColor }, { "linkColor", &rWidgetDefinition.maLinkColor },
{ "visitedLinkColor", &maVisitedLinkColor }, { "visitedLinkColor", &rWidgetDefinition.maVisitedLinkColor },
{ "toolTextColor", &maToolTextColor }, { "toolTextColor", &rWidgetDefinition.maToolTextColor },
{ "fontColor", &maFontColor }, { "fontColor", &rWidgetDefinition.maFontColor },
}; };
tools::XmlWalker aWalker; tools::XmlWalker aWalker;
@@ -290,15 +275,15 @@ bool WidgetDefinitionReader::read()
} }
else if (aWalker.name() == "pushbutton") else if (aWalker.name() == "pushbutton")
{ {
readPushButton(aWalker); readDefinition(aWalker, rWidgetDefinition.maPushButtonDefinitions);
} }
else if (aWalker.name() == "radiobutton") else if (aWalker.name() == "radiobutton")
{ {
readRadioButton(aWalker); readDefinition(aWalker, rWidgetDefinition.maRadioButtonDefinitions);
} }
else if (aWalker.name() == "editbox") else if (aWalker.name() == "editbox")
{ {
readEditbox(aWalker); readDefinition(aWalker, rWidgetDefinition.maEditboxDefinitions);
} }
aWalker.next(); aWalker.next();
} }
@@ -392,36 +377,35 @@ OString xmlControlPart(ControlPart ePart)
} // end anonymous namespace } // 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)); auto aIterator = maPushButtonDefinitions.find(xmlControlPart(ePart));
if (aIterator != maPushButtonDefinitions.end()) if (aIterator != maPushButtonDefinitions.end())
return aIterator->second; return aIterator->second;
return std::shared_ptr<WidgetDefinition>(); return std::shared_ptr<WidgetDefinitionPart>();
} }
std::shared_ptr<WidgetDefinition> std::shared_ptr<WidgetDefinitionPart> WidgetDefinition::getRadioButtonDefinition(ControlPart ePart)
WidgetDefinitionReader::getRadioButtonDefinition(ControlPart ePart)
{ {
auto aIterator = maRadioButtonDefinitions.find(xmlControlPart(ePart)); auto aIterator = maRadioButtonDefinitions.find(xmlControlPart(ePart));
if (aIterator != maRadioButtonDefinitions.end()) if (aIterator != maRadioButtonDefinitions.end())
return aIterator->second; 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)); auto aIterator = maEditboxDefinitions.find(xmlControlPart(ePart));
if (aIterator != maEditboxDefinitions.end()) if (aIterator != maEditboxDefinitions.end())
return aIterator->second; return aIterator->second;
return std::shared_ptr<WidgetDefinition>(); return std::shared_ptr<WidgetDefinitionPart>();
} }
std::vector<std::shared_ptr<WidgetDefinitionState>> 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; std::vector<std::shared_ptr<WidgetDefinitionState>> aStatesToAdd;