5#ifndef QGTK3STORAGE_P_H
6#define QGTK3STORAGE_P_H
21#include <QtCore/QJsonDocument>
22#include <QtCore/QCache>
23#include <QtCore/QString>
24#include <QtGui/QGuiApplication>
25#include <QtGui/QPalette>
27#include <qpa/qplatformtheme.h>
28#include <private/qflatmap_p.h>
33class QGnomePortalInterface;
62 return dbg <<
"QGtkStorage::Gtk3Source(gtkwidgetType=" <<
gtkWidgetType <<
", source="
81 return dbg <<
"QGtkStorage::RecursiceSource(colorGroup=" << colorGroup <<
", colorRole="
82 << colorRole <<
", colorScheme=" << colorScheme <<
", lighter=" << lighter
83 <<
", deltaRed="<< deltaRed <<
"deltaBlue =" << deltaBlue <<
"deltaGreen="
84 << deltaGreen <<
", width=" << width <<
", height=" << height <<
")";
97 return dbg <<
"QGtkStorage::MixSources(sourceGroup=" << sourceGroup
98 <<
", colorRole1=" << colorRole1
99 <<
", colorRole2=" << colorRole2 <<
")";
103 return QColor{ (color1.red() + color2.red()) / 2,
104 (color1.green() + color2.green()) / 2,
105 (color1.blue() + color2.blue()) / 2 };
114 return dbg <<
"QGtkStorage::FixedSource(" << fixedBrush <<
")";
130 gtk3.gtkWidgetType = wtype;
131 gtk3.source = csource;
134 gtk3.height = bheight;
138 Source(QPalette::ColorGroup group, QPalette::ColorRole role,
139 Qt::ColorScheme scheme,
int p_lighter = 100)
142 rec.colorGroup = group;
143 rec.colorRole = role;
144 rec.colorScheme = scheme;
145 rec.lighter = p_lighter;
149 Source(QPalette::ColorGroup group, QPalette::ColorRole role,
150 Qt::ColorScheme scheme,
int p_red,
int p_green,
int p_blue)
153 rec.colorGroup = group;
154 rec.colorRole = role;
155 rec.colorScheme = scheme;
156 rec.deltaRed = p_red;
157 rec.deltaGreen = p_green;
158 rec.deltaBlue = p_blue;
162 Source(QPalette::ColorGroup group, QPalette::ColorRole role,
163 Qt::ColorScheme scheme,
int p_lighter,
166 rec.colorGroup = group;
167 rec.colorRole = role;
168 rec.colorScheme = scheme;
169 rec.lighter = p_lighter;
170 rec.deltaRed = p_red;
171 rec.deltaGreen = p_green;
172 rec.deltaBlue = p_blue;
177 QPalette::ColorRole role1, QPalette::ColorRole role2)
180 mix.sourceGroup = sourceGroup;
181 mix.colorRole1 = role1;
182 mix.colorRole2 = role2;
188 fix.fixedBrush = brush;
198 return dbg <<
"QGtk3Storage::Source(sourceType=" <<
sourceType <<
")";
219 return std::tie(colorGroup, colorRole, colorScheme) <
220 std::tie(other.colorGroup, other.colorRole, other.colorScheme);
235 const QString themeName()
const {
return m_interface ? m_interface->themeName() : QString(); }
236 const QFont *
font(QPlatformTheme::Font type)
const;
247 std::unique_ptr<QGtk3Interface> m_interface;
255 mutable QCache<QPlatformTheme::StandardPixmap, QImage> m_pixmapCache;
269 void createMapping ();
271 bool save(
const QString &filename,
const QJsonDocument::JsonFormat f = QJsonDocument::Indented)
const;
272 QJsonDocument save()
const;
273 bool load(
const QString &filename);
The QGtk3Interface class centralizes communication with the GTK3 library.
void handleThemeChange()
Handles a theme change at runtime.
const QPalette * palette(QPlatformTheme::Palette=QPlatformTheme::SystemPalette) const
Return a GTK styled QPalette.
QFlatMap< QPlatformTheme::Palette, BrushMap > PaletteMap
static QPalette standardPalette()
Returns a simple, hard coded base palette.
const QString themeName() const
Qt::ColorScheme colorScheme() const
QFlatMap< TargetBrush, Source > BrushMap
QIcon fileIcon(const QFileInfo &fileInfo) const
Returns a GTK styled file icon corresponding to.
void populateMap()
Populates a map with information about how to locate colors in GTK.
SourceType
This enum represents the type of a color source.
const QFont * font(QPlatformTheme::Font type) const
Return a GTK styled font.
QPixmap standardPixmap(QPlatformTheme::StandardPixmap standardPixmap, const QSizeF &size) const
Return a GTK styled standard pixmap if available.
QIcon fileIcon(const QFileInfo &fileInfo, QPlatformTheme::IconOptions iconOptions={ }) const override
Return an icon for fileInfo, observing iconOptions.
Qt::ColorScheme colorScheme() const override
bool usePlatformNativeDialog(DialogType type) const override
virtual QVariant themeHint(ThemeHint hint) const override
void requestColorScheme(Qt::ColorScheme scheme) override
QPlatformDialogHelper * createPlatformDialogHelper(DialogType type) const override
const QPalette * palette(Palette type=SystemPalette) const override
Return a color palette for type type.
virtual QString gtkFontName() const override
QPixmap standardPixmap(StandardPixmap sp, const QSizeF &size) const override
Return a pixmap for standardPixmap, at the given size.
const QFont * font(Font type=SystemFont) const override
QDebug operator<<(QDebug dbg)
QPalette::ColorRole colorRole2
QDebug operator<<(QDebug dbg)
QPalette::ColorGroup sourceGroup
QPalette::ColorRole colorRole1
static QColor mixColors(const QColor &color1, const QColor &color2)
QDebug operator<<(QDebug dbg)
QPalette::ColorRole colorRole
QPalette::ColorGroup colorGroup
Qt::ColorScheme colorScheme
Source(const QBrush &brush)
Source(QPalette::ColorGroup group, QPalette::ColorRole role, Qt::ColorScheme scheme, int p_lighter, int p_red, int p_green, int p_blue)
Source(QPalette::ColorGroup group, QPalette::ColorRole role, Qt::ColorScheme scheme, int p_red, int p_green, int p_blue)
Source(QGtk3Interface::QGtkWidget wtype, QGtk3Interface::QGtkColorSource csource, GtkStateFlags cstate, int bwidth=-1, int bheight=-1)
Source(QPalette::ColorGroup group, QPalette::ColorRole role, Qt::ColorScheme scheme, int p_lighter=100)
QDebug operator<<(QDebug dbg)
Source(QPalette::ColorGroup sourceGroup, QPalette::ColorRole role1, QPalette::ColorRole role2)
QPalette::ColorRole colorRole
QPalette::ColorGroup colorGroup
TargetBrush(QPalette::ColorGroup group, QPalette::ColorRole role, Qt::ColorScheme scheme=Qt::ColorScheme::Unknown)
TargetBrush(const TargetBrush &other, Qt::ColorScheme scheme)
Qt::ColorScheme colorScheme
bool operator<(const TargetBrush &other) const