vcl/inc/widgetdraw/WidgetDefinition.hxx | 7 ++ vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx | 9 ++ vcl/qa/cppunit/widgetdraw/data/definitionSettings3.xml | 7 ++ vcl/source/gdi/FileDefinitionWidgetDraw.cxx | 44 +++++++++++--- vcl/source/gdi/WidgetDefinitionReader.cxx | 7 ++ vcl/uiconfig/theme_definitions/ios/definition.xml | 47 ++++++++++++--- 6 files changed, 103 insertions(+), 18 deletions(-)
New commits: commit 097cb6c01bf6f383a3ef0f8b2c32d6da1ab0852e Author: Tomaž Vajngerl <[email protected]> AuthorDate: Sat Nov 23 23:01:48 2019 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Nov 25 08:27:11 2019 +0100 widget theme: add new settings to ios theme Change-Id: I98b4632501bb8e7f826a9dd2664a6663f4a7a208 Reviewed-on: https://gerrit.libreoffice.org/83592 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> (cherry picked from commit 738a11f20ef5b9bcfcc71cca6b0fbea9d06c438b) Reviewed-on: https://gerrit.libreoffice.org/83625 Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/vcl/uiconfig/theme_definitions/ios/definition.xml b/vcl/uiconfig/theme_definitions/ios/definition.xml index 310f450f0f04..8725e14ee1f2 100644 --- a/vcl/uiconfig/theme_definitions/ios/definition.xml +++ b/vcl/uiconfig/theme_definitions/ios/definition.xml @@ -57,15 +57,44 @@ <fontColor value="#000000"/> </style> - <!-- <state> attributes: - enabled="any" - focused="any" - pressed="any" - rollover="any" - default="any" - selected="any" - button-value="any" - extra="any" + <!-- + Various setting for controls that aren't style colors. + Empty "value" attribute or if setting is not present means default will be used. + --> + + <settings> + <noActiveTabTextRaise value="true"/> + <centeredTabs value="true"/> + <listBoxEntryMargin value="20"/> + <defaultFontSize value="10"/> + <titleHeight value="16"/> + <floatTitleHeight value="12"/> + <listBoxPreviewDefaultLogicWidth value="16"/> + <listBoxPreviewDefaultLogicHeight value="16"/> + </settings> + + <!-- + Follows the definitions od various controls. + The definition is always in form: + + <{ControlType} attributes...> + <{ControlPart} attributes...> + <state attributes...> + {draw commands} + ... + </state> + </{ControlPart}> + </{ControlType}> + + Supported <state> attributes are: + enabled="true|false|any" + focused="true|false|any" + pressed="true|false|any" + rollover="true|false|any" + default="true|false|any" + selected="true|false|any" + button-value="true|false|any" + extra="{various}" --> <pushbutton> commit 362a394044a884ae68bee15d0374214a9f7afd83 Author: Tomaž Vajngerl <[email protected]> AuthorDate: Sat Nov 23 22:09:50 2019 +0100 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Nov 25 08:27:02 2019 +0100 widget theme: add additional settings to the theme definition Change-Id: Ib50ebadf73979068d3595f09de113aa8745eccb9 Reviewed-on: https://gerrit.libreoffice.org/83591 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> (cherry picked from commit cb7a4428679428066d56eba4370154c667b7d4c5) Reviewed-on: https://gerrit.libreoffice.org/83624 Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/vcl/inc/widgetdraw/WidgetDefinition.hxx b/vcl/inc/widgetdraw/WidgetDefinition.hxx index 1c76645b55c0..9bc5c5066e8e 100644 --- a/vcl/inc/widgetdraw/WidgetDefinition.hxx +++ b/vcl/inc/widgetdraw/WidgetDefinition.hxx @@ -201,7 +201,14 @@ public: class VCL_DLLPUBLIC WidgetDefinitionSettings { public: + OString msNoActiveTabTextRaise; OString msCenteredTabs; + OString msListBoxEntryMargin; + OString msDefaultFontSize; + OString msTitleHeight; + OString msFloatTitleHeight; + OString msListBoxPreviewDefaultLogicWidth; + OString msListBoxPreviewDefaultLogicHeight; }; class VCL_DLLPUBLIC WidgetDefinitionStyle diff --git a/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx b/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx index 4c507ec1c5da..5fbff3869bf9 100644 --- a/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx +++ b/vcl/qa/cppunit/widgetdraw/WidgetDefinitionReaderTest.cxx @@ -57,7 +57,16 @@ void WidgetDefinitionReaderTest::testReadSettings() vcl::WidgetDefinition aDefinition; vcl::WidgetDefinitionReader aReader(getFullUrl("definitionSettings3.xml"), getFullUrl("")); CPPUNIT_ASSERT(aReader.read(aDefinition)); + CPPUNIT_ASSERT_EQUAL(OString("true"), aDefinition.mpSettings->msNoActiveTabTextRaise); CPPUNIT_ASSERT_EQUAL(OString("false"), aDefinition.mpSettings->msCenteredTabs); + CPPUNIT_ASSERT_EQUAL(OString("0"), aDefinition.mpSettings->msListBoxEntryMargin); + CPPUNIT_ASSERT_EQUAL(OString("10"), aDefinition.mpSettings->msDefaultFontSize); + CPPUNIT_ASSERT_EQUAL(OString("16"), aDefinition.mpSettings->msTitleHeight); + CPPUNIT_ASSERT_EQUAL(OString("12"), aDefinition.mpSettings->msFloatTitleHeight); + CPPUNIT_ASSERT_EQUAL(OString("15"), + aDefinition.mpSettings->msListBoxPreviewDefaultLogicWidth); + CPPUNIT_ASSERT_EQUAL(OString("7"), + aDefinition.mpSettings->msListBoxPreviewDefaultLogicHeight); } } diff --git a/vcl/qa/cppunit/widgetdraw/data/definitionSettings3.xml b/vcl/qa/cppunit/widgetdraw/data/definitionSettings3.xml index 20541b2a219e..9ad88dd54569 100644 --- a/vcl/qa/cppunit/widgetdraw/data/definitionSettings3.xml +++ b/vcl/qa/cppunit/widgetdraw/data/definitionSettings3.xml @@ -1,6 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <widgets> <settings> + <noActiveTabTextRaise value="true"/> <centeredTabs value="false"/> + <listBoxEntryMargin value="0"/> + <defaultFontSize value="10"/> + <titleHeight value="16"/> + <floatTitleHeight value="12"/> + <listBoxPreviewDefaultLogicWidth value="15"/> + <listBoxPreviewDefaultLogicHeight value="7"/> </settings> </widgets> diff --git a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx index 34707ea751cc..8256b0529dd7 100644 --- a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx +++ b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx @@ -31,6 +31,7 @@ #include <comphelper/seqstream.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/lok.hxx> +#include <comphelper/string.hxx> #include <com/sun/star/graphic/SvgTools.hpp> #include <basegfx/DrawCommands.hxx> @@ -86,6 +87,15 @@ std::shared_ptr<WidgetDefinition> getWidgetDefinitionForTheme(OUString const& rT return spDefinition; } +int getSettingValueInteger(OString const& rValue, int nDefault) +{ + if (rValue.isEmpty()) + return nDefault; + if (!comphelper::string::isdigitAsciiString(rValue)) + return nDefault; + return rValue.toInt32(); +} + bool getSettingValueBool(OString const& rValue, bool bDefault) { if (rValue.isEmpty()) @@ -110,16 +120,21 @@ FileDefinitionWidgetDraw::FileDefinitionWidgetDraw(SalGraphics& rGraphics) if (m_pWidgetDefinition) { + auto& pSettings = m_pWidgetDefinition->mpSettings; + ImplSVData* pSVData = ImplGetSVData(); pSVData->maNWFData.mbNoFocusRects = true; pSVData->maNWFData.mbNoFocusRectsForFlatButtons = true; - pSVData->maNWFData.mbNoActiveTabTextRaise = true; - pSVData->maNWFData.mbCenteredTabs - = getSettingValueBool(m_pWidgetDefinition->mpSettings->msCenteredTabs, true); + pSVData->maNWFData.mbNoActiveTabTextRaise + = getSettingValueBool(pSettings->msNoActiveTabTextRaise, true); + pSVData->maNWFData.mbCenteredTabs = getSettingValueBool(pSettings->msCenteredTabs, true); pSVData->maNWFData.mbProgressNeedsErase = true; pSVData->maNWFData.mnStatusBarLowerRightOffset = 10; pSVData->maNWFData.mbCanDrawWidgetAnySize = true; - pSVData->maNWFData.mnListBoxEntryMargin = 20; + + int nDefaultListboxEntryMargin = pSVData->maNWFData.mnListBoxEntryMargin; + pSVData->maNWFData.mnListBoxEntryMargin + = getSettingValueInteger(pSettings->msListBoxEntryMargin, nDefaultListboxEntryMargin); m_bIsActive = true; } @@ -952,7 +967,7 @@ bool FileDefinitionWidgetDraw::updateSettings(AllSettings& rSettings) { StyleSettings aStyleSet = rSettings.GetStyleSettings(); - auto pDefinitionStyle = m_pWidgetDefinition->mpStyle; + auto& pDefinitionStyle = m_pWidgetDefinition->mpStyle; aStyleSet.SetFaceColor(pDefinitionStyle->maFaceColor); aStyleSet.SetCheckedColor(pDefinitionStyle->maCheckedColor); @@ -1008,7 +1023,10 @@ bool FileDefinitionWidgetDraw::updateSettings(AllSettings& rSettings) aStyleSet.SetToolTextColor(pDefinitionStyle->maToolTextColor); aStyleSet.SetFontColor(pDefinitionStyle->maFontColor); - vcl::Font aFont(FAMILY_SWISS, Size(0, 10)); + auto& pSettings = m_pWidgetDefinition->mpSettings; + + int nFontSize = getSettingValueInteger(pSettings->msDefaultFontSize, 10); + vcl::Font aFont(FAMILY_SWISS, Size(0, nFontSize)); aFont.SetCharSet(osl_getThreadTextEncoding()); aFont.SetWeight(WEIGHT_NORMAL); aFont.SetFamilyName("Liberation Sans"); @@ -1028,9 +1046,17 @@ bool FileDefinitionWidgetDraw::updateSettings(AllSettings& rSettings) aStyleSet.SetFloatTitleFont(aFont); aStyleSet.SetTitleFont(aFont); - aStyleSet.SetTitleHeight(16); - aStyleSet.SetFloatTitleHeight(12); - aStyleSet.SetListBoxPreviewDefaultLogicSize(Size(16, 16)); + int nTitleHeight = getSettingValueInteger(pSettings->msTitleHeight, aStyleSet.GetTitleHeight()); + aStyleSet.SetTitleHeight(nTitleHeight); + + int nFloatTitleHeight + = getSettingValueInteger(pSettings->msFloatTitleHeight, aStyleSet.GetFloatTitleHeight()); + aStyleSet.SetFloatTitleHeight(nFloatTitleHeight); + + int nLogicWidth = getSettingValueInteger(pSettings->msListBoxPreviewDefaultLogicWidth, + 15); // See vcl/source/app/settings.cxx + int nLogicHeight = getSettingValueInteger(pSettings->msListBoxPreviewDefaultLogicHeight, 7); + aStyleSet.SetListBoxPreviewDefaultLogicSize(Size(nLogicWidth, nLogicHeight)); rSettings.SetStyleSettings(aStyleSet); diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx index c9c38aefc1b5..f00a1601f708 100644 --- a/vcl/source/gdi/WidgetDefinitionReader.cxx +++ b/vcl/source/gdi/WidgetDefinitionReader.cxx @@ -425,7 +425,14 @@ bool WidgetDefinitionReader::read(WidgetDefinition& rWidgetDefinition) auto pSettings = std::make_shared<WidgetDefinitionSettings>(); std::unordered_map<OString, OString*> aSettingMap = { + { "noActiveTabTextRaise", &pSettings->msNoActiveTabTextRaise }, { "centeredTabs", &pSettings->msCenteredTabs }, + { "listBoxEntryMargin", &pSettings->msListBoxEntryMargin }, + { "defaultFontSize", &pSettings->msDefaultFontSize }, + { "titleHeight", &pSettings->msTitleHeight }, + { "floatTitleHeight", &pSettings->msFloatTitleHeight }, + { "listBoxPreviewDefaultLogicWidth", &pSettings->msListBoxPreviewDefaultLogicWidth }, + { "listBoxPreviewDefaultLogicHeight", &pSettings->msListBoxPreviewDefaultLogicHeight }, }; rWidgetDefinition.mpSettings = pSettings; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
