spark-store/inc/dtk/dpalette.h
2021-06-15 21:39:04 +08:00

111 lines
4.3 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (C) 2019 ~ 2019 Deepin Technology Co., Ltd.
*
* Author: zccrs <zccrs@live.com>
*
* Maintainer: zccrs <zhangjide@deepin.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 3 of the License, or
* any later version.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DPALETTE_H
#define DPALETTE_H
#include <dtkgui_global.h>
#include <QDebug>
#include <QPalette>
DGUI_BEGIN_NAMESPACE
class DPalettePrivate;
class DPalette : public QPalette
{
public:
enum ColorType {
NoType,
ItemBackground, //列表项的背景色
TextTitle, //标题型文本的颜色
TextTips, //提示性文本的颜色
TextWarning, //警告类型的文本颜色
TextLively, //活跃式文本颜色(不受活动色影响)
LightLively, //活跃式按钮recommend button背景色中的亮色不受活跃色影响
DarkLively, //活跃式按钮recommend button背景色中的暗色会从亮色渐变到暗色不受活跃色影响
FrameBorder, //控件边框颜色
PlaceholderText, //占位类型的文本颜色,可用于输入框占位内容等提示性文字
FrameShadowBorder, //用于跟阴影叠加的边框颜色
ObviousBackground, //明显的背景色
NColorTypes
};
DPalette();
DPalette(const QPalette &palette);
DPalette(const DPalette &palette);
~DPalette();
DPalette &operator=(const DPalette &palette);
inline const QColor &color(ColorGroup cg, ColorType ct) const
{ return brush(cg, ct).color(); }
const QBrush &brush(ColorGroup cg, ColorType ct) const;
inline void setColor(ColorGroup cg, ColorType ct, const QColor &color)
{ setBrush(cg, ct, color); }
inline void setColor(ColorType ct, const QColor &color)
{ setColor(All, ct, color); }
inline void setBrush(ColorType ct, const QBrush &brush)
{ setBrush(All, ct, brush); }
void setBrush(ColorGroup cg, ColorType ct, const QBrush &brush);
inline const QColor &color(ColorType ct) const { return color(Current, ct); }
inline const QBrush &brush(ColorType ct) const { return brush(Current, ct); }
inline const QBrush &itemBackground() const { return brush(ItemBackground); }
inline const QBrush &textTiele() const { return brush(TextTitle); }
inline const QBrush &textTips() const { return brush(TextTips); }
inline const QBrush &textWarning() const { return brush(TextWarning); }
inline const QBrush &textLively() const { return brush(TextLively); }
inline const QBrush &lightLively() const { return brush(LightLively); }
inline const QBrush &darkLively() const { return brush(DarkLively); }
inline const QBrush &frameBorder() const { return brush(FrameBorder); }
inline const QBrush &placeholderText() const { return brush(PlaceholderText); }
inline const QBrush &frameShadowBorder() const { return brush(FrameShadowBorder); }
using QPalette::color;
using QPalette::brush;
using QPalette::setBrush;
using QPalette::setColor;
protected:
QScopedPointer<DPalettePrivate> d;
friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &s, const DPalette &p);
};
DGUI_END_NAMESPACE
QT_BEGIN_NAMESPACE
/*****************************************************************************
DPalette stream functions
*****************************************************************************/
#ifndef QT_NO_DATASTREAM
Q_GUI_EXPORT QDataStream &operator<<(QDataStream &ds, const DTK_GUI_NAMESPACE::DPalette &p);
Q_GUI_EXPORT QDataStream &operator>>(QDataStream &ds, DTK_GUI_NAMESPACE::DPalette &p);
#endif // QT_NO_DATASTREAM
#ifndef QT_NO_DEBUG_STREAM
Q_GUI_EXPORT QDebug operator<<(QDebug, const DTK_GUI_NAMESPACE::DPalette &);
#endif
QT_END_NAMESPACE
#endif // DPALETTE_H