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_pressed;
14 };
15 
16 class DarkStyle : public MyCommonStyle<QCommonStyle> {
18 private:
19  struct Private;
21 
22  enum class Theme {
23  Light,
24  Gray,
25  Dark,
26  };
27  Theme theme() const;
28 
30  QImage page_bg;
34  };
35 
36  QImage colorizeImage(QImage image);
37  QImage loadColorizedImage(QString const &path, QString const &role = QString());
38  ButtonImages generateButtonImages(QString const &path);
39  QImage generateHoverImage(const QImage &source);
40  QPixmap pixmapFromImage(QImage const &image, QSize size) const;
41  void loadImages();
42 
43  QColor selectionColor() const
44  {
45  return QColor(80, 160, 255);
46  }
47  std::pair<QColor, QColor> menuBorderColors(Theme theme) const;
48 
49  void drawNinePatchImage(QPainter *p, QImage const &image, QRect const &r, int w, int h) const;
50  void drawGutter(QPainter *p, QRect const &r) const;
51  void drawSelectedItemFrame(QPainter *p, QRect rect, bool focus) const;
52  void drawFocusFrame(QPainter *p, const QRect &rect, int margin) const;
53  void drawButton(QPainter *p, QStyleOption const *option, bool mac_margin = true) const;
54  void drawToolButton(QPainter *p, QStyleOption const *option) const;
55  void drawMenuBarBG(QPainter *p, const QStyleOption *option, const QWidget *widget) const;
56  QColor color(int level, int alpha = 255) const;
57  void drawItemViewText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, bool abbreviation) const;
58  QRect indicatorRect(const QStyleOption *option, const QWidget *widget, const QRect &rect) const;
59  qreal dpiScaled(qreal value, qreal dpi) const;
60  qreal dpiScaled(qreal value, const QPaintDevice *device) const;
61  qreal dpiScaled(qreal value, const QStyleOption *option) const;
62 public:
63  DarkStyle(QColor base_color = QColor());
64  ~DarkStyle() override;
65 
66  bool isDpiScalingEnabled() const;
67 
68  QColor baseColor() const;
69  void setBaseColor(const QColor &color);
70  void setScrollBarExtent(int n);
71  void setDpiScalingEnabled(bool f);
72 
73  QPalette standardPalette() const override;
74  QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override;
75  void polish(QPalette &palette) override;
76  int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override;
77  QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc, const QWidget *widget) const override;
78  int styleHint(StyleHint stylehint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override;
79  void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const override;
80  void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override;
81  void drawControl(ControlElement ce, const QStyleOption *option, QPainter *p, const QWidget *widget) const override;
82  void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *p, const QWidget *widget) const override;
83 
84 };
85 
86 #endif // DARKSTYLE_H
Definition: DarkStyle.h:10
QImage im_normal
Definition: DarkStyle.h:12
QImage im_pressed
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:1056
void drawFocusFrame(QPainter *p, const QRect &rect, int margin) const
Definition: DarkStyle.cpp:656
Private * m
Definition: DarkStyle.h:19
Theme
Definition: DarkStyle.h:22
void loadImages()
Definition: DarkStyle.cpp:482
QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
Definition: DarkStyle.cpp:2958
void drawSelectedItemFrame(QPainter *p, QRect rect, bool focus) const
Definition: DarkStyle.cpp:607
QPalette standardPalette() const override
Definition: DarkStyle.cpp:300
QPixmap pixmapFromImage(QImage const &image, QSize size) const
Definition: DarkStyle.cpp:550
int styleHint(StyleHint stylehint, const QStyleOption *option=nullptr, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
Definition: DarkStyle.cpp:1161
void drawMenuBarBG(QPainter *p, const QStyleOption *option, const QWidget *widget) const
Definition: DarkStyle.cpp:855
QImage colorizeImage(QImage image)
Definition: DarkStyle.cpp:348
void polish(QPalette &palette) override
Definition: DarkStyle.cpp:870
void drawNinePatchImage(QPainter *p, QImage const &image, QRect const &r, int w, int h) const
Definition: DarkStyle.cpp:568
bool isDpiScalingEnabled() const
Definition: DarkStyle.cpp:305
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *p, const QWidget *widget) const override
Definition: DarkStyle.cpp:2506
DarkStyle(QColor base_color=QColor())
Definition: DarkStyle.cpp:276
Theme theme() const
Definition: DarkStyle.cpp:290
void drawButton(QPainter *p, QStyleOption const *option, bool mac_margin=true) const
Definition: DarkStyle.cpp:668
void setScrollBarExtent(int n)
Definition: DarkStyle.cpp:343
void setBaseColor(const QColor &color)
Definition: DarkStyle.cpp:330
QImage generateHoverImage(const QImage &source)
Definition: DarkStyle.cpp:416
QImage loadColorizedImage(QString const &path, QString const &role=QString())
Definition: DarkStyle.cpp:366
QColor color(int level, int alpha=255) const
Definition: DarkStyle.cpp:336
std::pair< QColor, QColor > menuBorderColors(Theme theme) const
Definition: DarkStyle.cpp:577
void drawGutter(QPainter *p, QRect const &r) const
Definition: DarkStyle.cpp:589
void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole=QPalette::NoRole) const override
Definition: DarkStyle.cpp:1227
void setDpiScalingEnabled(bool f)
Definition: DarkStyle.cpp:295
void drawToolButton(QPainter *p, QStyleOption const *option) const
Definition: DarkStyle.cpp:778
~DarkStyle() override
Definition: DarkStyle.cpp:285
void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const override
Definition: DarkStyle.cpp:1258
QColor baseColor() const
Definition: DarkStyle.cpp:325
int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr, const QWidget *widget=nullptr) const override
Definition: DarkStyle.cpp:901
qreal dpiScaled(qreal value, qreal dpi) const
Definition: DarkStyle.cpp:310
QColor selectionColor() const
Definition: DarkStyle.h:43
ButtonImages generateButtonImages(QString const &path)
Definition: DarkStyle.cpp:375
void drawControl(ControlElement ce, const QStyleOption *option, QPainter *p, const QWidget *widget) const override
Definition: DarkStyle.cpp:1553
QRect indicatorRect(const QStyleOption *option, const QWidget *widget, const QRect &rect) const
チェックボックスとラジオボタンの凹みの矩形を求める
Definition: DarkStyle.cpp:1043
void drawItemViewText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect, bool abbreviation) const
Definition: DarkStyle.cpp:1235
Definition: MyCommonStyle.h:19
Definition: DarkStyle.cpp:246
Definition: DarkStyle.h:29
ButtonImages slider
Definition: DarkStyle.h:33
QImage page_bg
Definition: DarkStyle.h:30
ButtonImages add_line
Definition: DarkStyle.h:32
ButtonImages sub_line
Definition: DarkStyle.h:31