/ src / qt / platformstyle.h
platformstyle.h
 1  // Copyright (c) 2015-2021 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