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 | |
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')
-rw-r--r-- | vcl/headless/CustomWidgetDraw.cxx | 3 | ||||
-rw-r--r-- | vcl/inc/WidgetThemeLibrary.hxx | 3 | ||||
-rw-r--r-- | vcl/qt5/Qt5Frame.cxx | 3 | ||||
-rw-r--r-- | vcl/source/app/settings.cxx | 52 | ||||
-rw-r--r-- | vcl/source/control/button.cxx | 13 | ||||
-rw-r--r-- | vcl/unx/gtk/salnativewidgets-gtk.cxx | 3 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 4 | ||||
-rw-r--r-- | vcl/unx/kde4/KDESalFrame.cxx | 3 | ||||
-rw-r--r-- | vcl/win/window/salframe.cxx | 3 |
9 files changed, 84 insertions, 3 deletions
diff --git a/vcl/headless/CustomWidgetDraw.cxx b/vcl/headless/CustomWidgetDraw.cxx index 9e49390b0f3a..677c575b96bb 100644 --- a/vcl/headless/CustomWidgetDraw.cxx +++ b/vcl/headless/CustomWidgetDraw.cxx @@ -342,7 +342,10 @@ bool CustomWidgetDraw::updateSettings(AllSettings& rSettings) aStyleSet.SetShadowColor(aStyle.maShadowColor); aStyleSet.SetDarkShadowColor(aStyle.maDarkShadowColor); aStyleSet.SetButtonTextColor(aStyle.maButtonTextColor); + aStyleSet.SetActionButtonTextColor(aStyle.maActionButtonTextColor); + aStyleSet.SetDefaultActionButtonTextColor(aStyle.maDefaultActionButtonTextColor); aStyleSet.SetButtonRolloverTextColor(aStyle.maButtonRolloverTextColor); + aStyleSet.SetActionButtonRolloverTextColor(aStyle.maActionButtonRolloverTextColor); aStyleSet.SetRadioCheckTextColor(aStyle.maRadioCheckTextColor); aStyleSet.SetGroupTextColor(aStyle.maGroupTextColor); aStyleSet.SetLabelTextColor(aStyle.maLabelTextColor); diff --git a/vcl/inc/WidgetThemeLibrary.hxx b/vcl/inc/WidgetThemeLibrary.hxx index ed4260226a80..404d93159aee 100644 --- a/vcl/inc/WidgetThemeLibrary.hxx +++ b/vcl/inc/WidgetThemeLibrary.hxx @@ -25,6 +25,9 @@ struct WidgetDrawStyle uint32_t maShadowColor; uint32_t maDarkShadowColor; uint32_t maButtonTextColor; + uint32_t maDefaultActionButtonTextColor; + uint32_t maActionButtonTextColor; + uint32_t maActionButtonRolloverTextColor; uint32_t maButtonRolloverTextColor; uint32_t maRadioCheckTextColor; uint32_t maGroupTextColor; diff --git a/vcl/qt5/Qt5Frame.cxx b/vcl/qt5/Qt5Frame.cxx index 761f77dae3b5..7f322bf9982e 100644 --- a/vcl/qt5/Qt5Frame.cxx +++ b/vcl/qt5/Qt5Frame.cxx @@ -1015,6 +1015,9 @@ void Qt5Frame::UpdateSettings(AllSettings& rSettings) // Buttons style.SetButtonTextColor(aButn); + style.SetDefaultActionButtonTextColor(aButn); + style.SetActionButtonTextColor(aButn); + style.SetActionButtonRolloverTextColor(aButn); style.SetButtonRolloverTextColor(aButn); style.SetButtonPressedRolloverTextColor(aButn); 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 ); diff --git a/vcl/unx/gtk/salnativewidgets-gtk.cxx b/vcl/unx/gtk/salnativewidgets-gtk.cxx index dd3ad70b0a49..2b11c4a2e175 100644 --- a/vcl/unx/gtk/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/salnativewidgets-gtk.cxx @@ -3792,6 +3792,9 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings ) aStyleSet.SetFieldTextColor( aTextColor ); aTextColor = getColor( pStyle->fg[GTK_STATE_NORMAL] ); aStyleSet.SetButtonTextColor( aTextColor ); + aStyleSet.SetDefaultActionButtonTextColor( aTextColor ); + aStyleSet.SetActionButtonTextColor( aTextColor ); + aStyleSet.SetActionButtonRolloverTextColor( aTextColor ); aStyleSet.SetRadioCheckTextColor( aTextColor ); aStyleSet.SetGroupTextColor( aTextColor ); aStyleSet.SetLabelTextColor( aTextColor ); diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx index c768fe808126..752a4bd459fd 100644 --- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx @@ -2964,6 +2964,8 @@ void GtkSalGraphics::updateSettings(AllSettings& rSettings) ::Color aTextColor = getColor( text_color ); aStyleSet.SetDialogTextColor( aTextColor ); aStyleSet.SetButtonTextColor( aTextColor ); + aStyleSet.SetDefaultActionButtonTextColor(aTextColor); + aStyleSet.SetActionButtonTextColor(aTextColor); aStyleSet.SetRadioCheckTextColor( aTextColor ); aStyleSet.SetGroupTextColor( aTextColor ); aStyleSet.SetLabelTextColor( aTextColor ); @@ -2990,6 +2992,8 @@ void GtkSalGraphics::updateSettings(AllSettings& rSettings) style_context_set_state(pStyle, GTK_STATE_FLAG_PRELIGHT); gtk_style_context_get_color(pStyle, gtk_style_context_get_state(pStyle), &text_color); aTextColor = getColor( text_color ); + aStyleSet.SetButtonRolloverTextColor(aTextColor); + aStyleSet.SetActionButtonRolloverTextColor(aTextColor); aStyleSet.SetFieldRolloverTextColor( aTextColor ); aContextState.restore(); diff --git a/vcl/unx/kde4/KDESalFrame.cxx b/vcl/unx/kde4/KDESalFrame.cxx index c92551fe6ca2..f79752ce9e89 100644 --- a/vcl/unx/kde4/KDESalFrame.cxx +++ b/vcl/unx/kde4/KDESalFrame.cxx @@ -252,6 +252,9 @@ void KDESalFrame::UpdateSettings( AllSettings& rSettings ) // Buttons style.SetButtonTextColor( aButn ); + style.SetDefaultActionButtonTextColor( aButn ); + style.SetActionButtonTextColor( aButn ); + style.SetActionButtonRolloverTextColor( aButn ); style.SetButtonRolloverTextColor( aButn ); style.SetButtonPressedRolloverTextColor( aButn ); diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx index cf1cf6375e01..fec1382f9967 100644 --- a/vcl/win/window/salframe.cxx +++ b/vcl/win/window/salframe.cxx @@ -2620,6 +2620,9 @@ void WinSalFrame::UpdateSettings( AllSettings& rSettings ) aStyleSettings.SetDialogTextColor( aStyleSettings.GetButtonTextColor() ); aStyleSettings.SetButtonTextColor( ImplWinColorToSal( GetSysColor( COLOR_BTNTEXT ) ) ); + aStyleSettings.SetDefaultActionButtonTextColor( ImplWinColorToSal( GetSysColor( COLOR_BTNTEXT ) ) ); + aStyleSettings.SetActionButtonTextColor( aStyleSettings.GetDefaultActionButtonTextColor() ); + aStyleSettings.SetActionButtonRolloverTextColor( aStyleSettings.GetActionButtonTextColor() ); aStyleSettings.SetButtonRolloverTextColor( aStyleSettings.GetButtonTextColor() ); aStyleSettings.SetButtonPressedRolloverTextColor( aStyleSettings.GetButtonTextColor() ); aStyleSettings.SetTabTextColor( aStyleSettings.GetButtonTextColor() ); |