Guitar
DarkStyle.h
Go to the documentation of this file.
1 #ifndef DARKSTYLE_H
2 #define DARKSTYLE_H
3 
4 #include "MyCommonStyle.h"
5 
6 #include <QCommonStyle>
7 
8 class QStyleOptionViewItem;
9 
10 class ButtonImages {
11 public:
12  QImage im_normal;
13  QImage im_hover;
14 };
15 
16 class DarkStyle : public MyCommonStyle<QCommonStyle> {
18 private:
19  struct Private;
21 
22  enum class Theme {
23  Light,
24  Dark,
25  };
26  Theme theme() const;
27 
29  QImage page_bg;
33  };
34 
35  QImage colorizeImage(QImage image);
36  QImage loadColorizedImage(QString const &path, QString const &role = QString());
37  ButtonImages generateButtonImages(QString const &path);
38  QImage generateHoverImage(const QImage &source);
39  QPixmap pixmapFromImage(QImage const &image, QSize size) const;
40  void loadImages();
41 
42  QColor selectionColor() const
43  {
44  return QColor(80, 160, 255);
45  }
46  std::pair<QColor, QColor> menuBorderColors(Theme theme) const;
47 
48  void drawNinePatchImage(QPainter *p, QImage const &image, QRect const &r, int w, int h) const;
49  void drawGutter(QPainter *p, QRect const &r) const;
50  void drawSelectedItemFrame(QPainter *p, QRect rect, bool focus) const;
51  void drawFocusFrame(QPainter *p, const QRect &rect, int margin) const;
52  void drawButton(QPainter *p, QStyleOption const *option, bool mac_margin = true) const;
53  void drawToolButton(QPainter *p, QStyleOption const *option) const;
54  void drawMenuBarBG(QPainter *p, const QStyleOption *option, const QWidget *widget) const;
55  QColor color(int level, int alpha = 255) const;
56  void drawItemViewText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, bool abbreviation) const;
57  QRect indicatorRect(const QStyleOption *option, const QWidget *widget, const QRect &rect) const;
58  qreal dpiScaled(qreal value, qreal dpi) const;
59  qreal dpiScaled(qreal value, const QPaintDevice *device) const;
60  qreal dpiScaled(qreal value, const QStyleOption *option) const;
61 public:
62  DarkStyle(QColor base_color = QColor());
63  ~DarkStyle() override;
64 
65  bool isDpiScalingEnabled() const;
66 
67  QColor baseColor() const;
68  void setBaseColor(const QColor &color);
69  void setScrollBarExtent(int n);
70  void setDpiScalingEnabled(bool f);
71 
72  QPalette standardPalette() const override;
73  QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override;
74  void polish(QPalette &palette) override;
75  int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override;
76  QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget) const override;
77  int styleHint(StyleHint stylehint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override;
78  void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override;
79  void drawControl(ControlElement ce, const QStyleOption *option, QPainter *p, const QWidget *widget) const override;
80  void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *p, const QWidget *widget) const override;
81 
82 };
83 
84 #endif // DARKSTYLE_H
Definition: DarkStyle.h:10
QImage im_normal
Definition: DarkStyle.h:12
QImage im_hover
Definition: DarkStyle.h:13
Definition: DarkStyle.h:16
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget) const override
Definition: DarkStyle.cpp:1018
void drawFocusFrame(QPainter *p, const QRect &rect, int margin) const
Definition: DarkStyle.cpp:652
Private * m
Definition: DarkStyle.h:19
Theme
Definition: DarkStyle.h:22
void loadImages()
Definition: DarkStyle.cpp:473
QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
Definition: DarkStyle.cpp:2905
void drawSelectedItemFrame(QPainter *p, QRect rect, bool focus) const
Definition: DarkStyle.cpp:603
QPalette standardPalette() const override
Definition: DarkStyle.cpp:251
QPixmap pixmapFromImage(QImage const &image, QSize size) const
Definition: DarkStyle.cpp:548
int styleHint(StyleHint stylehint, const QStyleOption *option=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
Definition: DarkStyle.cpp:1123
void drawMenuBarBG(QPainter *p, const QStyleOption *option, const QWidget *widget) const
Definition: DarkStyle.cpp:825
QImage colorizeImage(QImage image)
Definition: DarkStyle.cpp:299
void polish(QPalette &palette) override
Definition: DarkStyle.cpp:840
void drawNinePatchImage(QPainter *p, QImage const &image, QRect const &r, int w, int h) const
Definition: DarkStyle.cpp:566
bool isDpiScalingEnabled() const
Definition: DarkStyle.cpp:256
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *p, const QWidget *widget) const override
Definition: DarkStyle.cpp:2459
DarkStyle(QColor base_color=QColor())
Definition: DarkStyle.cpp:227
Theme theme() const
Definition: DarkStyle.cpp:241
void drawButton(QPainter *p, QStyleOption const *option, bool mac_margin=true) const
Definition: DarkStyle.cpp:664
void setScrollBarExtent(int n)
Definition: DarkStyle.cpp:294
void setBaseColor(const QColor &color)
Definition: DarkStyle.cpp:281
QImage generateHoverImage(const QImage &source)
Definition: DarkStyle.cpp:385
QImage loadColorizedImage(QString const &path, QString const &role=QString())
Definition: DarkStyle.cpp:317
QColor color(int level, int alpha=255) const
Definition: DarkStyle.cpp:287
std::pair< QColor, QColor > menuBorderColors(Theme theme) const
Definition: DarkStyle.cpp:575
void drawGutter(QPainter *p, QRect const &r) const
Definition: DarkStyle.cpp:585
void setDpiScalingEnabled(bool f)
Definition: DarkStyle.cpp:246
void drawToolButton(QPainter *p, QStyleOption const *option) const
Definition: DarkStyle.cpp:759
~DarkStyle() override
Definition: DarkStyle.cpp:236
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
Definition: DarkStyle.cpp:1212
QColor baseColor() const
Definition: DarkStyle.cpp:276
int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const override
Definition: DarkStyle.cpp:863
qreal dpiScaled(qreal value, qreal dpi) const
Definition: DarkStyle.cpp:261
QColor selectionColor() const
Definition: DarkStyle.h:42
ButtonImages generateButtonImages(QString const &path)
Definition: DarkStyle.cpp:344
void drawControl(ControlElement ce, const QStyleOption *option, QPainter *p, const QWidget *widget) const override
Definition: DarkStyle.cpp:1506
QRect indicatorRect(const QStyleOption *option, const QWidget *widget, const QRect &rect) const
チェックボックスとラジオボタンの凹みの矩形を求める
Definition: DarkStyle.cpp:1005
void drawItemViewText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, bool abbreviation) const
Definition: DarkStyle.cpp:1189
Definition: MyCommonStyle.h:19
Definition: DarkStyle.cpp:197
Definition: DarkStyle.h:28
ButtonImages slider
Definition: DarkStyle.h:32
QImage page_bg
Definition: DarkStyle.h:29
ButtonImages add_line
Definition: DarkStyle.h:31
ButtonImages sub_line
Definition: DarkStyle.h:30