1 // Copyright (c) 2015 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 
getName()19     const QString &getName() const { return name; }
20 
getImagesOnButtons()21     bool getImagesOnButtons() const { return imagesOnButtons; }
getUseExtraSpacing()22     bool getUseExtraSpacing() const { return useExtraSpacing; }
23 
TextColor()24     QColor TextColor() const { return textColor; }
SingleColor()25     QColor SingleColor() const { return singleColor; }
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 filename) with the text color */
37     QIcon TextColorIcon(const QString& filename) const;
38 
39     /** Colorize an icon (given object) with the text color */
40     QIcon TextColorIcon(const QIcon& icon) const;
41 
42 private:
43     PlatformStyle(const QString &name, bool imagesOnButtons, bool colorizeIcons, bool useExtraSpacing);
44 
45     QString name;
46     bool imagesOnButtons;
47     bool colorizeIcons;
48     bool useExtraSpacing;
49     QColor singleColor;
50     QColor textColor;
51     /* ... more to come later */
52 };
53 
54 #endif // BITCOIN_QT_PLATFORMSTYLE_H
55 
56