platformstyle.h
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