diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2019-01-19 07:49:24 -0500 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2019-11-13 21:45:44 +0100 |
commit | aa3240f97b5cd018013dae20bbb01d47dca67290 (patch) | |
tree | 279fd1fce5fab85b08429d9f2d3528f67c627c3c /vcl/source | |
parent | a8dad3673f746ec9874f9b1d0780a13c4ac124a6 (diff) |
custom widgets: support custom action button text colors
Reviewed-on: https://gerrit.libreoffice.org/82276
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 8a425fbd9c6b75b09672e0ce18f43162d9eda360)
Change-Id: I314183a1d6434c043183a600740c786e22a67503
Reviewed-on: https://gerrit.libreoffice.org/82383
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/settings.cxx | 52 | ||||
-rw-r--r-- | vcl/source/control/button.cxx | 13 |
2 files changed, 62 insertions, 3 deletions
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 60c422b26619..a742aea809f7 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -84,6 +84,9 @@ struct ImplStyleData Color maActiveTextColor; Color maAlternatingRowColor; Color maButtonTextColor; + Color maDefaultActionButtonTextColor; + Color maActionButtonTextColor; + Color maActionButtonRolloverTextColor; Color maButtonRolloverTextColor; Color maButtonPressedRolloverTextColor; Color maCheckedColor; @@ -487,6 +490,9 @@ ImplStyleData::ImplStyleData( const ImplStyleData& rData ) : maActiveTextColor( rData.maActiveTextColor ), maAlternatingRowColor( rData.maAlternatingRowColor ), maButtonTextColor( rData.maButtonTextColor ), + maDefaultActionButtonTextColor( rData.maDefaultActionButtonTextColor ), + maActionButtonTextColor( rData.maActionButtonTextColor ), + maActionButtonRolloverTextColor( rData.maActionButtonRolloverTextColor ), maButtonRolloverTextColor( rData.maButtonRolloverTextColor ), maButtonPressedRolloverTextColor( rData.maButtonPressedRolloverTextColor ), maCheckedColor( rData.maCheckedColor ), @@ -625,6 +631,9 @@ void ImplStyleData::SetStandardStyles() maShadowColor = COL_GRAY; maDarkShadowColor = COL_BLACK; maButtonTextColor = COL_BLACK; + maDefaultActionButtonTextColor = COL_BLACK; + maActionButtonTextColor = COL_BLACK; + maActionButtonRolloverTextColor = COL_BLACK; maButtonRolloverTextColor = COL_BLACK; maButtonPressedRolloverTextColor = COL_BLACK; maRadioCheckTextColor = COL_BLACK; @@ -783,6 +792,45 @@ StyleSettings::GetButtonTextColor() const } void +StyleSettings::SetDefaultActionButtonTextColor( const Color& rColor ) +{ + CopyData(); + mxData->maDefaultActionButtonTextColor = rColor; +} + +const Color& +StyleSettings::GetDefaultActionButtonTextColor() const +{ + return mxData->maDefaultActionButtonTextColor; +} + +void +StyleSettings::SetActionButtonTextColor( const Color& rColor ) +{ + CopyData(); + mxData->maActionButtonTextColor = rColor; +} + +const Color& +StyleSettings::GetActionButtonTextColor() const +{ + return mxData->maActionButtonTextColor; +} + +void +StyleSettings::SetActionButtonRolloverTextColor( const Color& rColor ) +{ + CopyData(); + mxData->maActionButtonRolloverTextColor = rColor; +} + +const Color& +StyleSettings::GetActionButtonRolloverTextColor() const +{ + return mxData->maActionButtonRolloverTextColor; +} + +void StyleSettings::SetButtonRolloverTextColor( const Color& rColor ) { CopyData(); @@ -2246,6 +2294,10 @@ bool StyleSettings::operator ==( const StyleSettings& rSet ) const (mxData->maShadowColor == rSet.mxData->maShadowColor) && (mxData->maDarkShadowColor == rSet.mxData->maDarkShadowColor) && (mxData->maButtonTextColor == rSet.mxData->maButtonTextColor) && + (mxData->maDefaultActionButtonTextColor == rSet.mxData->maDefaultActionButtonTextColor) && + (mxData->maActionButtonTextColor == rSet.mxData->maActionButtonTextColor) && + (mxData->maButtonRolloverTextColor == rSet.mxData->maButtonRolloverTextColor) && + (mxData->maActionButtonRolloverTextColor == rSet.mxData->maActionButtonRolloverTextColor) && (mxData->maRadioCheckTextColor == rSet.mxData->maRadioCheckTextColor) && (mxData->maGroupTextColor == rSet.mxData->maGroupTextColor) && (mxData->maLabelTextColor == rSet.mxData->maLabelTextColor) && diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index 2bc529c21117..845c397b0eef 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -850,7 +850,8 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, DrawFlags nDrawFl if (nButtonFlags & DrawButtonFlags::Pressed) aColor = rStyleSettings.GetButtonPressedRolloverTextColor(); else - aColor = rStyleSettings.GetButtonRolloverTextColor(); + aColor = isAction() ? rStyleSettings.GetActionButtonRolloverTextColor() + : rStyleSettings.GetButtonRolloverTextColor(); } else if ( IsControlForeground() ) aColor = GetControlForeground(); @@ -859,10 +860,16 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, DrawFlags nDrawFl if (nButtonFlags & DrawButtonFlags::Pressed) aColor = rStyleSettings.GetButtonPressedRolloverTextColor(); else - aColor = rStyleSettings.GetButtonRolloverTextColor(); + aColor = isAction() ? rStyleSettings.GetActionButtonRolloverTextColor() + : rStyleSettings.GetButtonRolloverTextColor(); } else - aColor = rStyleSettings.GetButtonTextColor(); + { + aColor = isAction() ? ((ImplGetButtonState() & DrawButtonFlags::Default) + ? rStyleSettings.GetDefaultActionButtonTextColor() + : rStyleSettings.GetActionButtonTextColor()) + : rStyleSettings.GetButtonTextColor(); + } pDev->SetTextColor( aColor ); |