DtkWidget
DTK Widget module
载入中...
搜索中...
未找到
popupmenustyle.h
1// SPDX-FileCopyrightText: 2017 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef POPUPMENUSTYLEH
6#define POPUPMENUSTYLEH
7
8#include <QProxyStyle>
9
10const QString SHORTCUT_SPLIT_FLAG = "@-_-@";
11
12class QStyleOptionMenuItem;
13class PopupMenuStyle : public QProxyStyle {
14 Q_OBJECT
15
16public:
18
19 int styleHint(StyleHint hint,
20 const QStyleOption* option = 0,
21 const QWidget* widget = 0,
22 QStyleHintReturn* returnData = 0) const;
23 int pixelMetric(PixelMetric metric,
24 const QStyleOption* option = 0,
25 const QWidget* widget = 0) const;
26 void drawControl(ControlElement control,
27 const QStyleOption* option,
28 QPainter* painter,
29 const QWidget* widget) const;
30 void drawPrimitive(PrimitiveElement element,
31 const QStyleOption *option,
32 QPainter *painter,
33 const QWidget *widget = Q_NULLPTR) const;
34 QSize sizeFromContents(ContentsType type,
35 const QStyleOption* option,
36 const QSize& contentsSize,
37 const QWidget* widget = 0) const;
38private:
39 void drawScroller(const QStyleOption* option,
40 QPainter* painter) const;
41 void drawMenuItem(const QStyleOption* option,
42 QPainter* painter) const;
43 void drawSeparator(const QStyleOptionMenuItem* menuItem,
44 QPainter* painter) const;
45 void drawMenuItemIcon(const QStyleOptionMenuItem* menuItem,
46 QPainter* painter) const;
47 void drawMenuItemText(const QStyleOptionMenuItem* menuItem,
48 QPainter* painter) const;
49 void drawMenuItemSubIcon(const QStyleOptionMenuItem* menuItem,
50 QPainter* painter) const;
51 void drawMenuItemCheckedIcon(const QStyleOptionMenuItem* menuItem,
52 QPainter* painter) const;
53
54 QSize getItemSize(const QStyleOption* option, const QSize& size) const;
55
56 QColor getItemBGColor(const QStyle::State state) const;
57 QPixmap getSubMenuPixmap(const QStyle::State state) const;
58 QPixmap getIconPixmap(const QStyle::State state,
59 const QIcon& icon,
60 const QSize& size) const;
61};
62
63#endif // POPUPMENUSTYLEH
Definition popupmenustyle.h:13