ImagingTools Core SDK
CThumbPageItemGuiDelegate.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/QStyledItemDelegate>
7#include <QtGui/QStandardItemModel>
8
9// ACF includes
10#include <iprm/ISelectionParam.h>
11
12
13namespace imtgui
14{
15
16
20class CThumbPageItemGuiDelegate: public QStyledItemDelegate
21{
22public:
23 typedef QStyledItemDelegate BaseClass;
24
25 enum DataRole
26 {
27 DR_TYPE_ID = Qt::UserRole,
28 DR_PAGE_ID,
29 DR_STATE
30 };
31
33 const QStandardItemModel& itemModel,
34 int horizontalSpacing = 6,
35 int verticalSpacing = 6,
36 QObject* parent = NULL);
37
41 void SetMargins(int horizontal, int vertical);
42
43 // reimplemented (QItemDelegate)
44 virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& /*index*/) const override;
45
46protected:
47 // reimplemented (QItemDelegate)
48 virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
49 virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
50
51private:
52 const QStandardItemModel& m_itemModel;
53
54 int m_verticalMargin;
55 int m_horizontalMargin;
56};
57
58
59} // namespace imtgui
60
61
void SetMargins(int horizontal, int vertical)