ImagingTools Core SDK
CMenuPanelDelegate.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtWidgets/QTreeView>
7
8// ImtCore includes
9#include <imtwidgets/IMenuPanelDelegate.h>
10
11
12namespace imtwidgets
13{
14
15
16class CMenuPanelDelegate: public IMenuPanelDelegate
17{
18public:
19 explicit CMenuPanelDelegate(QTreeView* menuPanelPtr = nullptr);
20
21 // reimplemented (IMenuPanelDelegate)
22 virtual int GetMinimumWidth() override;
23
24 virtual void SetFont(const QFont& font) override;
25
26 virtual void SetIndent(int indent) override;
27 virtual void SetItemHeight(int height) override;
28 virtual void SetIconSizeRatio(double ratio) override;
29 virtual void SetIconSizeHoverRatio(double ratio) override;
30
31 virtual void SetTopPadding(int padding) override;
32 virtual void SetLeftPadding(int padding) override;
33 virtual void SetRightPadding(int padding) override;
34 virtual void SetIconToTextPadding(int padding) override;
35
36protected:
37 // reimplemented (QItemDelegate)
38 virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
39 virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
40
41protected:
42 int m_indent;
43 int m_height;
44
45 double m_iconSizeRatio;
46 double m_iconSizeHoverRatio;
47 int m_iconHeight;
48 int m_iconHeightHover;
49
50 int m_topPadding;
51 int m_leftPadding;
52 int m_rightPadding;
53 int m_iconToTextPadding;
54
55 QFont m_font;
56};
57
58
59} // namespace imtwidgets
60
61