1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
/*****************************************************************************
* Copyright 2007 - 2010 Craig Drummond <craig.p.drummond@gmail.com> *
* Copyright 2013 - 2015 Yichao Yu <yyc1992@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation; either version 2.1 of the *
* License, or (at your option) version 3, or any later version accepted *
* by the membership of KDE e.V. (or its successor approved by the *
* membership of KDE e.V.), which shall act as a proxy defined in *
* Section 6 of version 3 of the license. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library. If not, *
* see <http://www.gnu.org/licenses/>. *
*****************************************************************************/
#ifndef __QTCURVESHADOWCONFIGURATION_H__
#define __QTCURVESHADOWCONFIGURATION_H__
#include <QPalette>
#ifdef midColor
#undef midColor
#endif
class KConfig;
namespace QtCurve {
namespace KWin {
class ShadowConfig {
public:
enum ColorType {
CT_FOCUS = 0,
CT_HOVER = 1,
CT_SELECTION = 2,
CT_TITLEBAR = 3,
CT_GRAY = 4,
CT_CUSTOM = 5
};
enum ShadowType {
SH_ACTIVE = 0,
SH_INACTIVE = 1
};
enum {
MIN_SIZE = 10,
MAX_SIZE = 100,
MIN_OFFSET = 0,
MAX_OFFSET = 20
};
ShadowConfig(QPalette::ColorGroup);
void defaults();
void load(KConfig *cfg);
void save(KConfig *cfg);
QPalette::ColorGroup colorGroup() const { return m_colorGroup; }
int shadowSize() const { return m_size; }
void setShadowSize(int v) { m_size = v; }
int horizontalOffset() const { return m_hOffset; }
void setHorizontalOffset(int v) { m_hOffset = v; }
int verticalOffset() const { return m_vOffset; }
void setVerticalOffset(int v) { m_vOffset = v; }
void setColor(const QColor &c) { m_color=c; }
const QColor & color() const { return m_color; }
ColorType colorType() const { return (ColorType)m_colorType; }
void setColorType(ColorType ct);
ShadowType shadowType() const { return (ShadowType)m_shadowType; }
void setShadowType(ShadowType st) { m_shadowType=st; }
// Keep compatible with Oxygen Shadow Cache code...
const QColor & innerColor() const { return m_color; }
const QColor & midColor() const { return m_color; }
const QColor & outerColor() const { return m_color; }
bool operator == (const ShadowConfig& other) const
{
return m_colorGroup == other.m_colorGroup &&
m_size == other.m_size &&
m_hOffset == other.m_hOffset &&
m_vOffset == other.m_vOffset &&
m_color == other.m_color &&
m_shadowType == other.m_shadowType;
}
private:
QPalette::ColorGroup m_colorGroup;
int m_size,
m_hOffset,
m_vOffset,
m_colorType,
m_shadowType;
QColor m_color;
};
}
}
#endif
|