ImageProvider uses Breeze::Button* instead of KDecoration2::DecorationButton*

wilder-pre-rebase
Martin Gräßlin 12 years ago
parent 02fced3418
commit 671287706a
  1. 31
      windec/kdecoration2/breezebuttons.cpp
  2. 28
      windec/kdecoration2/breezebuttons.h

@ -58,7 +58,7 @@ void ImageProvider::invalidate()
m_images.clear();
}
static ButtonState stateForButton(KDecoration2::DecorationButton *decorationButton)
static ButtonState stateForButton(Button *decorationButton)
{
if (!decorationButton->isEnabled()) {
return ButtonState::Disabled;
@ -78,10 +78,13 @@ static ButtonState stateForButton(KDecoration2::DecorationButton *decorationButt
if (decorationButton->isHovered()) {
return ButtonState::Hovered;
}
if (decorationButton->isStandAlone()) {
return ButtonState::Preview;
}
return ButtonState::Normal;
}
const QImage &ImageProvider::button(KDecoration2::DecorationButton *decorationButton)
const QImage &ImageProvider::button(Breeze::Button *decorationButton)
{
auto paletteIt = m_images.begin();
if (paletteIt == m_images.end() || paletteIt.key() != decorationButton->decoration()->client()->palette()) {
@ -119,7 +122,7 @@ const QImage &ImageProvider::button(KDecoration2::DecorationButton *decorationBu
return it3.value();
}
void ImageProvider::clearCache(KDecoration2::DecorationButton *decorationButton)
void ImageProvider::clearCache(Breeze::Button *decorationButton)
{
auto paletteIt = m_images.begin();
if (paletteIt == m_images.end() || paletteIt.key() != decorationButton->decoration()->client()->palette()) {
@ -147,13 +150,13 @@ const ColorSettings &ImageProvider::colorSettings(const QPalette &pal) const
return ColorSettings(pal);
}
const ColorSettings &ImageProvider::colorSettings(KDecoration2::DecorationButton *decorationButton) const
const ColorSettings &ImageProvider::colorSettings(Breeze::Button *decorationButton) const
{
return colorSettings(decorationButton->decoration()->client()->palette());
}
QImage ImageProvider::renderButton(KDecoration2::DecorationButton *decorationButton) const
QImage ImageProvider::renderButton(Breeze::Button *decorationButton) const
{
QImage image(decorationButton->size(), QImage::Format_ARGB32_Premultiplied);
image.fill(Qt::transparent);
@ -196,7 +199,7 @@ QImage ImageProvider::renderButton(KDecoration2::DecorationButton *decorationBut
return image;
}
void ImageProvider::renderCloseButton(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const
void ImageProvider::renderCloseButton(QPainter *painter, Breeze::Button *decorationButton) const
{
const bool active = decorationButton->decoration()->client()->isActive();
const QPalette &pal = decorationButton->decoration()->client()->palette();
@ -218,7 +221,7 @@ void ImageProvider::renderCloseButton(QPainter *painter, KDecoration2::Decoratio
painter->drawLine(-size.width() / 4, 0, size.width() / 4, 0);
}
void ImageProvider::renderMaximizeButton(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const
void ImageProvider::renderMaximizeButton(QPainter *painter, Breeze::Button *decorationButton) const
{
painter->save();
drawGenericButtonBackground(painter, decorationButton);
@ -241,7 +244,7 @@ void ImageProvider::renderMaximizeButton(QPainter *painter, KDecoration2::Decora
painter->restore();
}
void ImageProvider::renderOnAllDesktopsButton(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const
void ImageProvider::renderOnAllDesktopsButton(QPainter *painter, Breeze::Button *decorationButton) const
{
const bool active = decorationButton->decoration()->client()->isActive();
painter->save();
@ -264,7 +267,7 @@ void ImageProvider::renderOnAllDesktopsButton(QPainter *painter, KDecoration2::D
painter->restore();
}
void ImageProvider::renderShadeButton(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const
void ImageProvider::renderShadeButton(QPainter *painter, Breeze::Button *decorationButton) const
{
drawGenericButtonBackground(painter, decorationButton);
painter->save();
@ -282,7 +285,7 @@ void ImageProvider::renderShadeButton(QPainter *painter, KDecoration2::Decoratio
}
}
void ImageProvider::drawGenericButtonBackground(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const
void ImageProvider::drawGenericButtonBackground(QPainter *painter, Breeze::Button *decorationButton) const
{
if (!decorationButton->isPressed() && !decorationButton->isHovered()) {
return;
@ -294,7 +297,7 @@ void ImageProvider::drawGenericButtonBackground(QPainter *painter, KDecoration2:
decorationButton->isPressed() ? 50 : 127));
}
void ImageProvider::drawBackground(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QColor &color) const
void ImageProvider::drawBackground(QPainter *painter, Breeze::Button *decorationButton, const QColor &color) const
{
painter->save();
painter->setPen(Qt::NoPen);
@ -303,7 +306,7 @@ void ImageProvider::drawBackground(QPainter *painter, KDecoration2::DecorationBu
painter->restore();
}
void ImageProvider::drawDownArrow(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QPointF &offset) const
void ImageProvider::drawDownArrow(QPainter *painter, Breeze::Button *decorationButton, const QPointF &offset) const
{
painter->save();
QPen pen(foregroundColor(decorationButton));
@ -319,7 +322,7 @@ void ImageProvider::drawDownArrow(QPainter *painter, KDecoration2::DecorationBut
painter->restore();
}
void ImageProvider::drawUpArrow(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QPointF &offset) const
void ImageProvider::drawUpArrow(QPainter *painter, Breeze::Button *decorationButton, const QPointF &offset) const
{
painter->save();
QPen pen(foregroundColor(decorationButton));
@ -335,7 +338,7 @@ void ImageProvider::drawUpArrow(QPainter *painter, KDecoration2::DecorationButto
painter->restore();
}
QColor ImageProvider::foregroundColor(KDecoration2::DecorationButton *decorationButton) const
QColor ImageProvider::foregroundColor(Breeze::Button *decorationButton) const
{
const ColorSettings &colors = colorSettings(decorationButton->decoration()->client()->palette());
const bool active = decorationButton->decoration()->client()->isActive();

@ -29,6 +29,8 @@ uint qHash(const QPalette &pal);
namespace Breeze
{
class Button;
enum class ButtonState : uint {
Normal,
Disabled,
@ -48,24 +50,24 @@ class ImageProvider final
public:
~ImageProvider();
static ImageProvider *self();
const QImage &button(KDecoration2::DecorationButton *decorationButton);
void clearCache(KDecoration2::DecorationButton *decorationButton);
const QImage &button(Button *decorationButton);
void clearCache(Button *decorationButton);
void invalidate();
private:
ImageProvider();
QImage renderButton(KDecoration2::DecorationButton *decorationButton) const;
void renderCloseButton(QPainter *p, KDecoration2::DecorationButton *decorationButton) const;
void renderShadeButton(QPainter *p, KDecoration2::DecorationButton *decorationButton) const;
void renderMaximizeButton(QPainter *p, KDecoration2::DecorationButton *decorationButton) const;
void renderOnAllDesktopsButton(QPainter *p, KDecoration2::DecorationButton *decorationButton) const;
void drawGenericButtonBackground(QPainter *painter, KDecoration2::DecorationButton *decorationButton) const;
void drawBackground(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QColor &color) const;
void drawDownArrow(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QPointF &offset = QPointF(0.0, 0.0)) const;
void drawUpArrow(QPainter *painter, KDecoration2::DecorationButton *decorationButton, const QPointF &offset = QPointF(0.0, 0.0)) const;
QColor foregroundColor(KDecoration2::DecorationButton *decorationButton) const;
const ColorSettings &colorSettings(KDecoration2::DecorationButton *decorationButton) const;
QImage renderButton(Button *decorationButton) const;
void renderCloseButton(QPainter *p, Button *decorationButton) const;
void renderShadeButton(QPainter *p, Button *decorationButton) const;
void renderMaximizeButton(QPainter *p, Button *decorationButton) const;
void renderOnAllDesktopsButton(QPainter *p, Button *decorationButton) const;
void drawGenericButtonBackground(QPainter *painter, Button *decorationButton) const;
void drawBackground(QPainter *painter, Button *decorationButton, const QColor &color) const;
void drawDownArrow(QPainter *painter, Button *decorationButton, const QPointF &offset = QPointF(0.0, 0.0)) const;
void drawUpArrow(QPainter *painter, Button *decorationButton, const QPointF &offset = QPointF(0.0, 0.0)) const;
QColor foregroundColor(Button *decorationButton) const;
const ColorSettings &colorSettings(Button *decorationButton) const;
const ColorSettings &colorSettings(const QPalette &pal) const;
static ImageProvider *s_self;
typedef QHash<ButtonState, QImage> ImagesForButtonState;

Loading…
Cancel
Save