From a69ce55133b3d4dd763300ed678f30a05830c23a Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Fri, 25 Jan 2019 17:44:13 +0100 Subject: move WidgetDefinition{Part,State} into its own file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to separate it completely from WidgetDefinitionReader and make it independent.. Change-Id: If3d6f0e8826b39be28ae18ddf74f2643d1084ec4 Reviewed-on: https://gerrit.libreoffice.org/68689 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl --- vcl/Library_vcl.mk | 1 + vcl/inc/widgetdraw/WidgetDefinition.hxx | 187 ++++++++++++++++++++ vcl/inc/widgetdraw/WidgetDefinitionReader.hxx | 166 +----------------- vcl/source/gdi/WidgetDefinition.cxx | 235 ++++++++++++++++++++++++++ vcl/source/gdi/WidgetDefinitionReader.cxx | 214 ----------------------- 5 files changed, 425 insertions(+), 378 deletions(-) create mode 100644 vcl/inc/widgetdraw/WidgetDefinition.hxx create mode 100644 vcl/source/gdi/WidgetDefinition.cxx diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index c22cc2cdf2eb..7265eb39811f 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -262,6 +262,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/gdi/embeddedfontshelper \ vcl/source/gdi/FileDefinitionWidgetDraw \ vcl/source/gdi/WidgetDefinitionReader \ + vcl/source/gdi/WidgetDefinition \ vcl/source/gdi/extoutdevdata \ vcl/source/gdi/gdimtf \ vcl/source/gdi/mtfxmldump \ diff --git a/vcl/inc/widgetdraw/WidgetDefinition.hxx b/vcl/inc/widgetdraw/WidgetDefinition.hxx new file mode 100644 index 000000000000..423ab1d970c3 --- /dev/null +++ b/vcl/inc/widgetdraw/WidgetDefinition.hxx @@ -0,0 +1,187 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#ifndef INCLUDED_VCL_INC_WIDGETDEFINITION_HXX +#define INCLUDED_VCL_INC_WIDGETDEFINITION_HXX + +#include +#include +#include +#include +#include +#include +#include + +namespace vcl +{ +enum class DrawCommandType +{ + RECTANGLE, + CIRCLE, + LINE +}; + +class VCL_DLLPUBLIC DrawCommand +{ +public: + DrawCommand(DrawCommandType aType) + : maType(aType) + , mnStrokeWidth(-1) + , mnMargin(0) + { + } + + DrawCommandType maType; + + Color maStrokeColor; + Color maFillColor; + sal_Int32 mnStrokeWidth; + sal_Int32 mnMargin; +}; + +class VCL_DLLPUBLIC RectangleDrawCommand : public DrawCommand +{ +public: + sal_Int32 mnRx; + sal_Int32 mnRy; + + RectangleDrawCommand() + : DrawCommand(DrawCommandType::RECTANGLE) + , mnRx(0) + , mnRy(0) + { + } +}; + +class VCL_DLLPUBLIC CircleDrawCommand : public DrawCommand +{ +public: + CircleDrawCommand() + : DrawCommand(DrawCommandType::CIRCLE) + { + } +}; + +class VCL_DLLPUBLIC LineDrawCommand : public DrawCommand +{ +public: + float mfX1; + float mfY1; + float mfX2; + float mfY2; + + LineDrawCommand() + : DrawCommand(DrawCommandType::LINE) + { + } +}; + +class VCL_DLLPUBLIC WidgetDefinitionState +{ +public: + OString msEnabled; + OString msFocused; + OString msPressed; + OString msRollover; + OString msDefault; + OString msSelected; + OString msButtonValue; + + WidgetDefinitionState(OString const& sEnabled, OString const& sFocused, OString const& sPressed, + OString const& sRollover, OString const& sDefault, + OString const& sSelected, OString const& sButtonValue); + + std::vector> mpDrawCommands; + + void addDrawRectangle(Color aStrokeColor, sal_Int32 nStrokeWidth, Color aFillColor, + sal_Int32 nRx, sal_Int32 nRy, sal_Int32 nMargin); + void addDrawCircle(Color aStrokeColor, sal_Int32 nStrokeWidth, Color aFillColor, + sal_Int32 nMargin); + void addDrawLine(Color aStrokeColor, sal_Int32 nStrokeWidth, float fX1, float fY1, float fX2, + float fY2); +}; + +class VCL_DLLPUBLIC WidgetDefinitionPart +{ +public: + std::vector> getStates(ControlState eState, + ImplControlValue const& rValue); + + std::vector> maStates; +}; + +class VCL_DLLPUBLIC WidgetDefinition +{ +public: + Color maFaceColor; + Color maCheckedColor; + Color maLightColor; + Color maLightBorderColor; + Color maShadowColor; + Color maDarkShadowColor; + Color maButtonTextColor; + Color maButtonRolloverTextColor; + Color maRadioCheckTextColor; + Color maGroupTextColor; + Color maLabelTextColor; + Color maWindowColor; + Color maWindowTextColor; + Color maDialogColor; + Color maDialogTextColor; + Color maWorkspaceColor; + Color maMonoColor; + Color maFieldColor; + Color maFieldTextColor; + Color maFieldRolloverTextColor; + Color maActiveColor; + Color maActiveTextColor; + Color maActiveBorderColor; + Color maDeactiveColor; + Color maDeactiveTextColor; + Color maDeactiveBorderColor; + Color maMenuColor; + Color maMenuBarColor; + Color maMenuBarRolloverColor; + Color maMenuBorderColor; + Color maMenuTextColor; + Color maMenuBarTextColor; + Color maMenuBarRolloverTextColor; + Color maMenuBarHighlightTextColor; + Color maMenuHighlightColor; + Color maMenuHighlightTextColor; + Color maHighlightColor; + Color maHighlightTextColor; + Color maActiveTabColor; + Color maInactiveTabColor; + Color maTabTextColor; + Color maTabRolloverTextColor; + Color maTabHighlightTextColor; + Color maDisableColor; + Color maHelpColor; + Color maHelpTextColor; + Color maLinkColor; + Color maVisitedLinkColor; + Color maToolTextColor; + Color maFontColor; + + std::unordered_map> maPushButtonDefinitions; + std::unordered_map> maRadioButtonDefinitions; + std::unordered_map> maEditboxDefinitions; + + std::shared_ptr getPushButtonDefinition(ControlPart ePart); + std::shared_ptr getRadioButtonDefinition(ControlPart ePart); + std::shared_ptr getEditboxDefinition(ControlPart ePart); +}; + +} // end vcl namespace + +#endif // INCLUDED_VCL_INC_WIDGETDEFINITION_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx b/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx index 4d9caddce374..1cb577c08c4d 100644 --- a/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx +++ b/vcl/inc/widgetdraw/WidgetDefinitionReader.hxx @@ -12,175 +12,13 @@ #define INCLUDED_VCL_INC_WIDGETDEFINITIONREADER_HXX #include +#include #include #include -#include #include -#include -#include -#include namespace vcl { -enum class DrawCommandType -{ - RECTANGLE, - CIRCLE, - LINE -}; - -class VCL_DLLPUBLIC DrawCommand -{ -public: - DrawCommand(DrawCommandType aType) - : maType(aType) - , mnStrokeWidth(-1) - , mnMargin(0) - { - } - - DrawCommandType maType; - - Color maStrokeColor; - Color maFillColor; - sal_Int32 mnStrokeWidth; - sal_Int32 mnMargin; -}; - -class VCL_DLLPUBLIC RectangleDrawCommand : public DrawCommand -{ -public: - sal_Int32 mnRx; - sal_Int32 mnRy; - - RectangleDrawCommand() - : DrawCommand(DrawCommandType::RECTANGLE) - , mnRx(0) - , mnRy(0) - { - } -}; - -class VCL_DLLPUBLIC CircleDrawCommand : public DrawCommand -{ -public: - CircleDrawCommand() - : DrawCommand(DrawCommandType::CIRCLE) - { - } -}; - -class VCL_DLLPUBLIC LineDrawCommand : public DrawCommand -{ -public: - float mfX1; - float mfY1; - float mfX2; - float mfY2; - - LineDrawCommand() - : DrawCommand(DrawCommandType::LINE) - { - } -}; - -class VCL_DLLPUBLIC WidgetDefinitionState -{ -public: - OString msEnabled; - OString msFocused; - OString msPressed; - OString msRollover; - OString msDefault; - OString msSelected; - OString msButtonValue; - - WidgetDefinitionState(OString const& sEnabled, OString const& sFocused, OString const& sPressed, - OString const& sRollover, OString const& sDefault, - OString const& sSelected, OString const& sButtonValue); - - std::vector> mpDrawCommands; - - void addDrawRectangle(Color aStrokeColor, sal_Int32 nStrokeWidth, Color aFillColor, - sal_Int32 nRx, sal_Int32 nRy, sal_Int32 nMargin); - void addDrawCircle(Color aStrokeColor, sal_Int32 nStrokeWidth, Color aFillColor, - sal_Int32 nMargin); - void addDrawLine(Color aStrokeColor, sal_Int32 nStrokeWidth, float fX1, float fY1, float fX2, - float fY2); -}; - -class VCL_DLLPUBLIC WidgetDefinitionPart -{ -public: - std::vector> getStates(ControlState eState, - ImplControlValue const& rValue); - - std::vector> maStates; -}; - -class VCL_DLLPUBLIC WidgetDefinition -{ -public: - Color maFaceColor; - Color maCheckedColor; - Color maLightColor; - Color maLightBorderColor; - Color maShadowColor; - Color maDarkShadowColor; - Color maButtonTextColor; - Color maButtonRolloverTextColor; - Color maRadioCheckTextColor; - Color maGroupTextColor; - Color maLabelTextColor; - Color maWindowColor; - Color maWindowTextColor; - Color maDialogColor; - Color maDialogTextColor; - Color maWorkspaceColor; - Color maMonoColor; - Color maFieldColor; - Color maFieldTextColor; - Color maFieldRolloverTextColor; - Color maActiveColor; - Color maActiveTextColor; - Color maActiveBorderColor; - Color maDeactiveColor; - Color maDeactiveTextColor; - Color maDeactiveBorderColor; - Color maMenuColor; - Color maMenuBarColor; - Color maMenuBarRolloverColor; - Color maMenuBorderColor; - Color maMenuTextColor; - Color maMenuBarTextColor; - Color maMenuBarRolloverTextColor; - Color maMenuBarHighlightTextColor; - Color maMenuHighlightColor; - Color maMenuHighlightTextColor; - Color maHighlightColor; - Color maHighlightTextColor; - Color maActiveTabColor; - Color maInactiveTabColor; - Color maTabTextColor; - Color maTabRolloverTextColor; - Color maTabHighlightTextColor; - Color maDisableColor; - Color maHelpColor; - Color maHelpTextColor; - Color maLinkColor; - Color maVisitedLinkColor; - Color maToolTextColor; - Color maFontColor; - - std::unordered_map> maPushButtonDefinitions; - std::unordered_map> maRadioButtonDefinitions; - std::unordered_map> maEditboxDefinitions; - - std::shared_ptr getPushButtonDefinition(ControlPart ePart); - std::shared_ptr getRadioButtonDefinition(ControlPart ePart); - std::shared_ptr getEditboxDefinition(ControlPart ePart); -}; - class VCL_DLLPUBLIC WidgetDefinitionReader { private: @@ -202,6 +40,6 @@ public: } // end vcl namespace -#endif +#endif // INCLUDED_VCL_INC_WIDGETDEFINITIONREADER_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/gdi/WidgetDefinition.cxx b/vcl/source/gdi/WidgetDefinition.cxx new file mode 100644 index 000000000000..e5fc5e8ae8f2 --- /dev/null +++ b/vcl/source/gdi/WidgetDefinition.cxx @@ -0,0 +1,235 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include + +#include +#include +#include + +namespace vcl +{ +namespace +{ +OString xmlControlPart(ControlPart ePart) +{ + switch (ePart) + { + case ControlPart::NONE: + return "NONE"; + case ControlPart::Entire: + return "Entire"; + case ControlPart::ListboxWindow: + return "ListboxWindow"; + case ControlPart::Button: + return "NONE"; + case ControlPart::ButtonUp: + return "NONE"; + case ControlPart::ButtonDown: + return "NONE"; + case ControlPart::ButtonLeft: + return "NONE"; + case ControlPart::ButtonRight: + return "NONE"; + case ControlPart::AllButtons: + return "NONE"; + case ControlPart::SeparatorHorz: + return "NONE"; + case ControlPart::SeparatorVert: + return "NONE"; + case ControlPart::TrackHorzLeft: + return "NONE"; + case ControlPart::TrackVertUpper: + return "NONE"; + case ControlPart::TrackHorzRight: + return "NONE"; + case ControlPart::TrackVertLower: + return "NONE"; + case ControlPart::TrackHorzArea: + return "NONE"; + case ControlPart::TrackVertArea: + return "NONE"; + case ControlPart::Arrow: + return "NONE"; + case ControlPart::ThumbHorz: + return "NONE"; + case ControlPart::ThumbVert: + return "NONE"; + case ControlPart::MenuItem: + return "NONE"; + case ControlPart::MenuItemCheckMark: + return "NONE"; + case ControlPart::MenuItemRadioMark: + return "NONE"; + case ControlPart::Separator: + return "NONE"; + case ControlPart::SubmenuArrow: + return "NONE"; + case ControlPart::SubEdit: + return "NONE"; + case ControlPart::DrawBackgroundHorz: + return "NONE"; + case ControlPart::DrawBackgroundVert: + return "NONE"; + case ControlPart::TabsDrawRtl: + return "NONE"; + case ControlPart::HasBackgroundTexture: + return "NONE"; + case ControlPart::HasThreeButtons: + return "NONE"; + case ControlPart::BackgroundWindow: + return "NONE"; + case ControlPart::BackgroundDialog: + return "NONE"; + case ControlPart::Border: + return "NONE"; + case ControlPart::Focus: + return "FOCUS"; + + default: + break; + } + return "NONE"; +} + +} // end anonymous namespace + +std::shared_ptr WidgetDefinition::getPushButtonDefinition(ControlPart ePart) +{ + auto aIterator = maPushButtonDefinitions.find(xmlControlPart(ePart)); + + if (aIterator != maPushButtonDefinitions.end()) + return aIterator->second; + return std::shared_ptr(); +} + +std::shared_ptr WidgetDefinition::getRadioButtonDefinition(ControlPart ePart) +{ + auto aIterator = maRadioButtonDefinitions.find(xmlControlPart(ePart)); + + if (aIterator != maRadioButtonDefinitions.end()) + return aIterator->second; + return std::shared_ptr(); +} + +std::shared_ptr WidgetDefinition::getEditboxDefinition(ControlPart ePart) +{ + auto aIterator = maEditboxDefinitions.find(xmlControlPart(ePart)); + + if (aIterator != maEditboxDefinitions.end()) + return aIterator->second; + return std::shared_ptr(); +} + +std::vector> +WidgetDefinitionPart::getStates(ControlState eState, ImplControlValue const& rValue) +{ + std::vector> aStatesToAdd; + + for (auto& state : maStates) + { + bool bAdd = true; + + if (state->msEnabled != "any" + && !((state->msEnabled == "true" && eState & ControlState::ENABLED) + || (state->msEnabled == "false" && !(eState & ControlState::ENABLED)))) + bAdd = false; + if (state->msFocused != "any" + && !((state->msFocused == "true" && eState & ControlState::FOCUSED) + || (state->msFocused == "false" && !(eState & ControlState::FOCUSED)))) + bAdd = false; + if (state->msPressed != "any" + && !((state->msPressed == "true" && eState & ControlState::PRESSED) + || (state->msPressed == "false" && !(eState & ControlState::PRESSED)))) + bAdd = false; + if (state->msRollover != "any" + && !((state->msRollover == "true" && eState & ControlState::ROLLOVER) + || (state->msRollover == "false" && !(eState & ControlState::ROLLOVER)))) + bAdd = false; + if (state->msDefault != "any" + && !((state->msDefault == "true" && eState & ControlState::DEFAULT) + || (state->msDefault == "false" && !(eState & ControlState::DEFAULT)))) + bAdd = false; + if (state->msSelected != "any" + && !((state->msSelected == "true" && eState & ControlState::SELECTED) + || (state->msSelected == "false" && !(eState & ControlState::SELECTED)))) + bAdd = false; + + ButtonValue eButtonValue = rValue.getTristateVal(); + + if (state->msButtonValue != "any" + && !((state->msButtonValue == "true" && eButtonValue == ButtonValue::On) + || (state->msButtonValue == "false" && eButtonValue != ButtonValue::On))) + bAdd = false; + + if (bAdd) + aStatesToAdd.push_back(state); + } + + return aStatesToAdd; +} + +WidgetDefinitionState::WidgetDefinitionState(OString const& sEnabled, OString const& sFocused, + OString const& sPressed, OString const& sRollover, + OString const& sDefault, OString const& sSelected, + OString const& sButtonValue) + : msEnabled(sEnabled) + , msFocused(sFocused) + , msPressed(sPressed) + , msRollover(sRollover) + , msDefault(sDefault) + , msSelected(sSelected) + , msButtonValue(sButtonValue) +{ +} + +void WidgetDefinitionState::addDrawRectangle(Color aStrokeColor, sal_Int32 nStrokeWidth, + Color aFillColor, sal_Int32 nRx, sal_Int32 nRy, + sal_Int32 nMargin) +{ + std::shared_ptr pCommand(std::make_shared()); + pCommand->maStrokeColor = aStrokeColor; + pCommand->maFillColor = aFillColor; + pCommand->mnStrokeWidth = nStrokeWidth; + pCommand->mnMargin = nMargin; + RectangleDrawCommand& rRectCommand = static_cast(*pCommand); + rRectCommand.mnRx = nRx; + rRectCommand.mnRy = nRy; + mpDrawCommands.push_back(std::move(pCommand)); +} + +void WidgetDefinitionState::addDrawCircle(Color aStrokeColor, sal_Int32 nStrokeWidth, + Color aFillColor, sal_Int32 nMargin) +{ + std::shared_ptr pCommand(std::make_shared()); + pCommand->maStrokeColor = aStrokeColor; + pCommand->maFillColor = aFillColor; + pCommand->mnStrokeWidth = nStrokeWidth; + pCommand->mnMargin = nMargin; + mpDrawCommands.push_back(std::move(pCommand)); +} + +void WidgetDefinitionState::addDrawLine(Color aStrokeColor, sal_Int32 nStrokeWidth, float fX1, + float fY1, float fX2, float fY2) +{ + std::shared_ptr pCommand(std::make_shared()); + pCommand->maStrokeColor = aStrokeColor; + pCommand->mnStrokeWidth = nStrokeWidth; + LineDrawCommand& rLineCommand = static_cast(*pCommand); + rLineCommand.mfX1 = fX1; + rLineCommand.mfY1 = fY1; + rLineCommand.mfX2 = fX2; + rLineCommand.mfY2 = fY2; + mpDrawCommands.push_back(std::move(pCommand)); +} + +} // end vcl namespace + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx index c3e6b10953da..e9c40d46a2fd 100644 --- a/vcl/source/gdi/WidgetDefinitionReader.cxx +++ b/vcl/source/gdi/WidgetDefinitionReader.cxx @@ -292,220 +292,6 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition) return true; } -namespace -{ -OString xmlControlPart(ControlPart ePart) -{ - switch (ePart) - { - case ControlPart::NONE: - return "NONE"; - case ControlPart::Entire: - return "Entire"; - case ControlPart::ListboxWindow: - return "ListboxWindow"; - case ControlPart::Button: - return "NONE"; - case ControlPart::ButtonUp: - return "NONE"; - case ControlPart::ButtonDown: - return "NONE"; - case ControlPart::ButtonLeft: - return "NONE"; - case ControlPart::ButtonRight: - return "NONE"; - case ControlPart::AllButtons: - return "NONE"; - case ControlPart::SeparatorHorz: - return "NONE"; - case ControlPart::SeparatorVert: - return "NONE"; - case ControlPart::TrackHorzLeft: - return "NONE"; - case ControlPart::TrackVertUpper: - return "NONE"; - case ControlPart::TrackHorzRight: - return "NONE"; - case ControlPart::TrackVertLower: - return "NONE"; - case ControlPart::TrackHorzArea: - return "NONE"; - case ControlPart::TrackVertArea: - return "NONE"; - case ControlPart::Arrow: - return "NONE"; - case ControlPart::ThumbHorz: - return "NONE"; - case ControlPart::ThumbVert: - return "NONE"; - case ControlPart::MenuItem: - return "NONE"; - case ControlPart::MenuItemCheckMark: - return "NONE"; - case ControlPart::MenuItemRadioMark: - return "NONE"; - case ControlPart::Separator: - return "NONE"; - case ControlPart::SubmenuArrow: - return "NONE"; - case ControlPart::SubEdit: - return "NONE"; - case ControlPart::DrawBackgroundHorz: - return "NONE"; - case ControlPart::DrawBackgroundVert: - return "NONE"; - case ControlPart::TabsDrawRtl: - return "NONE"; - case ControlPart::HasBackgroundTexture: - return "NONE"; - case ControlPart::HasThreeButtons: - return "NONE"; - case ControlPart::BackgroundWindow: - return "NONE"; - case ControlPart::BackgroundDialog: - return "NONE"; - case ControlPart::Border: - return "NONE"; - case ControlPart::Focus: - return "FOCUS"; - - default: - break; - } - return "NONE"; -} - -} // end anonymous namespace - -std::shared_ptr WidgetDefinition::getPushButtonDefinition(ControlPart ePart) -{ - auto aIterator = maPushButtonDefinitions.find(xmlControlPart(ePart)); - - if (aIterator != maPushButtonDefinitions.end()) - return aIterator->second; - return std::shared_ptr(); -} - -std::shared_ptr WidgetDefinition::getRadioButtonDefinition(ControlPart ePart) -{ - auto aIterator = maRadioButtonDefinitions.find(xmlControlPart(ePart)); - - if (aIterator != maRadioButtonDefinitions.end()) - return aIterator->second; - return std::shared_ptr(); -} - -std::shared_ptr WidgetDefinition::getEditboxDefinition(ControlPart ePart) -{ - auto aIterator = maEditboxDefinitions.find(xmlControlPart(ePart)); - - if (aIterator != maEditboxDefinitions.end()) - return aIterator->second; - return std::shared_ptr(); -} - -std::vector> -WidgetDefinitionPart::getStates(ControlState eState, ImplControlValue const& rValue) -{ - std::vector> aStatesToAdd; - - for (auto& state : maStates) - { - bool bAdd = true; - - if (state->msEnabled != "any" - && !((state->msEnabled == "true" && eState & ControlState::ENABLED) - || (state->msEnabled == "false" && !(eState & ControlState::ENABLED)))) - bAdd = false; - if (state->msFocused != "any" - && !((state->msFocused == "true" && eState & ControlState::FOCUSED) - || (state->msFocused == "false" && !(eState & ControlState::FOCUSED)))) - bAdd = false; - if (state->msPressed != "any" - && !((state->msPressed == "true" && eState & ControlState::PRESSED) - || (state->msPressed == "false" && !(eState & ControlState::PRESSED)))) - bAdd = false; - if (state->msRollover != "any" - && !((state->msRollover == "true" && eState & ControlState::ROLLOVER) - || (state->msRollover == "false" && !(eState & ControlState::ROLLOVER)))) - bAdd = false; - if (state->msDefault != "any" - && !((state->msDefault == "true" && eState & ControlState::DEFAULT) - || (state->msDefault == "false" && !(eState & ControlState::DEFAULT)))) - bAdd = false; - if (state->msSelected != "any" - && !((state->msSelected == "true" && eState & ControlState::SELECTED) - || (state->msSelected == "false" && !(eState & ControlState::SELECTED)))) - bAdd = false; - - ButtonValue eButtonValue = rValue.getTristateVal(); - - if (state->msButtonValue != "any" - && !((state->msButtonValue == "true" && eButtonValue == ButtonValue::On) - || (state->msButtonValue == "false" && eButtonValue != ButtonValue::On))) - bAdd = false; - - if (bAdd) - aStatesToAdd.push_back(state); - } - - return aStatesToAdd; -} - -WidgetDefinitionState::WidgetDefinitionState(OString const& sEnabled, OString const& sFocused, - OString const& sPressed, OString const& sRollover, - OString const& sDefault, OString const& sSelected, - OString const& sButtonValue) - : msEnabled(sEnabled) - , msFocused(sFocused) - , msPressed(sPressed) - , msRollover(sRollover) - , msDefault(sDefault) - , msSelected(sSelected) - , msButtonValue(sButtonValue) -{ -} - -void WidgetDefinitionState::addDrawRectangle(Color aStrokeColor, sal_Int32 nStrokeWidth, - Color aFillColor, sal_Int32 nRx, sal_Int32 nRy, - sal_Int32 nMargin) -{ - std::shared_ptr pCommand(std::make_shared()); - pCommand->maStrokeColor = aStrokeColor; - pCommand->maFillColor = aFillColor; - pCommand->mnStrokeWidth = nStrokeWidth; - pCommand->mnMargin = nMargin; - RectangleDrawCommand& rRectCommand = static_cast(*pCommand); - rRectCommand.mnRx = nRx; - rRectCommand.mnRy = nRy; - mpDrawCommands.push_back(pCommand); -} - -void WidgetDefinitionState::addDrawCircle(Color aStrokeColor, sal_Int32 nStrokeWidth, - Color aFillColor, sal_Int32 nMargin) -{ - std::shared_ptr pCommand(std::make_shared()); - pCommand->maStrokeColor = aStrokeColor; - pCommand->maFillColor = aFillColor; - pCommand->mnStrokeWidth = nStrokeWidth; - pCommand->mnMargin = nMargin; - mpDrawCommands.push_back(std::move(pCommand)); -} - -void WidgetDefinitionState::addDrawLine(Color aStrokeColor, sal_Int32 nStrokeWidth, float fX1, - float fY1, float fX2, float fY2) -{ - std::shared_ptr pCommand(std::make_shared()); - pCommand->maStrokeColor = aStrokeColor; - pCommand->mnStrokeWidth = nStrokeWidth; - LineDrawCommand& rLineCommand = static_cast(*pCommand); - rLineCommand.mfX1 = fX1; - rLineCommand.mfY1 = fY1; - rLineCommand.mfX2 = fX2; - rLineCommand.mfY2 = fY2; - mpDrawCommands.push_back(std::move(pCommand)); -} - } // end vcl namespace /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit