Guitar
MyCommonStyle.h
Go to the documentation of this file.
1 #ifndef MYCOMMONSTYLE_H
2 #define MYCOMMONSTYLE_H
3 
4 #include <QString>
5 #include <QStyle>
6 #include <QStyleOption>
7 
9 protected:
10  bool x_styleHint(int *value, QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const;
11  bool x_pixelMetric(int *value, QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const;
12  void x_sizeFromContents(QSize *value, QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const;
13 public:
14  static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright);
15  static void drawShadedFrame(QPainter *p, QRect const &rect, QPalette const &palette, QStyle::State state);
16  static void drawFrame(QPainter *pr, const QRect &r, const QColor &color_topleft, const QColor &color_bottomright);
17 };
18 
19 template <typename T> class MyCommonStyle : public MyCommonStyleBase, public T {
20 private:
21  using Base = T;
22 public:
23  MyCommonStyle() = default;
24  ~MyCommonStyle() override = default;
25  int styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override
26  {
27  int value;
28  if (x_styleHint(&value, hint, option, widget, returnData)) {
29  return value;
30  }
31  return Base::styleHint(hint, option, widget, returnData);
32  }
33  int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const override
34  {
35  int value;
36  if (x_pixelMetric(&value, metric, option, widget)) {
37  return value;
38  }
39  return Base::pixelMetric(metric, option, widget);
40  }
41  QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
42  {
43  QSize value = Base::sizeFromContents(type, option, size, widget);
44  x_sizeFromContents(&value, type, option, size, widget);
45  return value;
46  }
47 };
48 
49 #endif // MYCOMMONSTYLE_H
Definition: MyCommonStyle.h:8
static void drawShadedFrame(QPainter *p, QRect const &rect, QPalette const &palette, QStyle::State state)
RaisedやSunkenのある枠を描く
Definition: MyCommonStyle.cpp:126
bool x_styleHint(int *value, QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget, QStyleHintReturn *returnData) const
Definition: MyCommonStyle.cpp:5
static void drawFrame(QPainter *pr, int x, int y, int w, int h, QColor color_topleft, QColor color_bottomright)
枠を描く。色は左上と右下で別々に指定できる。
Definition: MyCommonStyle.cpp:88
bool x_pixelMetric(int *value, QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
Definition: MyCommonStyle.cpp:20
void x_sizeFromContents(QSize *value, QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const
Definition: MyCommonStyle.cpp:29
Definition: MyCommonStyle.h:19
QSize sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const override
Definition: MyCommonStyle.h:41
T Base
Definition: MyCommonStyle.h:21
int styleHint(QStyle::StyleHint hint, const QStyleOption *option, const QWidget *widget=nullptr, QStyleHintReturn *returnData=nullptr) const override
Definition: MyCommonStyle.h:25
int pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option, const QWidget *widget) const override
Definition: MyCommonStyle.h:33
~MyCommonStyle() override=default
MyCommonStyle()=default