platformstyle.h raw
1 // Copyright (c) 2015-present The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5 #ifndef BITCOIN_QT_PLATFORMSTYLE_H
6 #define BITCOIN_QT_PLATFORMSTYLE_H
7
8 #include <QIcon>
9 #include <QPixmap>
10 #include <QString>
11
12 /* Coin network-specific GUI style information */
13 class PlatformStyle
14 {
15 public:
16 /** Get style associated with provided platform name, or 0 if not known */
17 static const PlatformStyle *instantiate(const QString &platformId);
18
19 const QString &getName() const { return name; }
20
21 bool getImagesOnButtons() const { return imagesOnButtons; }
22 bool getUseExtraSpacing() const { return useExtraSpacing; }
23
24 QColor TextColor() const;
25 QColor SingleColor() const;
26
27 /** Colorize an image (given filename) with the icon color */
28 QImage SingleColorImage(const QString& filename) const;
29
30 /** Colorize an icon (given filename) with the icon color */
31 QIcon SingleColorIcon(const QString& filename) const;
32
33 /** Colorize an icon (given object) with the icon color */
34 QIcon SingleColorIcon(const QIcon& icon) const;
35
36 /** Colorize an icon (given object) with the text color */
37 QIcon TextColorIcon(const QIcon& icon) const;
38
39 private:
40 PlatformStyle(const QString &name, bool imagesOnButtons, bool colorizeIcons, bool useExtraSpacing);
41
42 QString name;
43 bool imagesOnButtons;
44 bool colorizeIcons;
45 bool useExtraSpacing;
46 };
47
48 #endif // BITCOIN_QT_PLATFORMSTYLE_H
49
50