diff --git a/clients/ozone/oxygen.cpp b/clients/ozone/oxygen.cpp index 51ea06bbcb..ae27f69400 100644 --- a/clients/ozone/oxygen.cpp +++ b/clients/ozone/oxygen.cpp @@ -149,6 +149,7 @@ bool OxygenFactory::supports( Ability ability ) const case AbilityButtonAboveOthers: case AbilityButtonBelowOthers: case AbilityButtonSpacer: + case AbilityButtonShade: return true; // no colors supported at this time default: diff --git a/clients/ozone/oxygen.h b/clients/ozone/oxygen.h index bf0418735e..6cb4b4974b 100644 --- a/clients/ozone/oxygen.h +++ b/clients/ozone/oxygen.h @@ -50,6 +50,7 @@ enum ButtonType { ButtonSticky, ButtonAbove, ButtonBelow, + ButtonShade, ButtonTypeCount }; Q_DECLARE_FLAGS(ButtonTypes, ButtonType) diff --git a/clients/ozone/oxygenbutton.cpp b/clients/ozone/oxygenbutton.cpp index a3023ab4f2..37009d9636 100644 --- a/clients/ozone/oxygenbutton.cpp +++ b/clients/ozone/oxygenbutton.cpp @@ -335,6 +335,18 @@ void OxygenButton::drawIcon(QPainter *p, QPalette &pal, ButtonType &type) p->drawLine(QPointF( 7.5, 7), QPointF(10.5,10)); p->drawLine(QPointF(10.5,10), QPointF(13.5, 7)); break; + case ButtonShade: + if (!isChecked()) // shade button + { + p->drawLine(QPointF( 7.5, 7.5), QPointF(10.5,10.5)); + p->drawLine(QPointF(10.5,10.5), QPointF(13.5, 7.5)); + p->drawLine(QPointF( 7.5,13.0), QPointF(13.5,13.0)); + } else { // unshade button + p->drawLine(QPointF( 7.5,10.5), QPointF(10.5, 7.5)); + p->drawLine(QPointF(10.5, 7.5), QPointF(13.5,10.5)); + p->drawLine(QPointF( 7.5,13.0), QPointF(13.5,13.0)); + } + break; default: break; } diff --git a/clients/ozone/oxygenclient.cpp b/clients/ozone/oxygenclient.cpp index 3e7d718e0d..049e71f562 100644 --- a/clients/ozone/oxygenclient.cpp +++ b/clients/ozone/oxygenclient.cpp @@ -202,6 +202,9 @@ KCommonDecorationButton *OxygenClient::createButton(::ButtonType type) case OnAllDesktopsButton: return new OxygenButton(*this, i18n("On All Desktops"), ButtonSticky); + case ShadeButton: + return new OxygenButton(*this, i18n("Shade Button"), ButtonShade); + default: return 0; }