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