KDEUI
kwidgetitemdelegate.h
Go to the documentation of this file.00001
00022 #ifndef KWIDGETITEMDELEGATE_H
00023 #define KWIDGETITEMDELEGATE_H
00024
00025 #include <QtCore/QEvent>
00026 #include <QtCore/QList>
00027 #include <QtCore/QPersistentModelIndex>
00028 #include <QtGui/QAbstractItemDelegate>
00029
00030 #include <kdeui_export.h>
00031
00032 class QObject;
00033 class QPainter;
00034 class QStyleOption;
00035 class QStyleOptionViewItem;
00036 class QAbstractItemView;
00037
00038 class KWidgetItemDelegatePrivate;
00039 class KWidgetItemDelegatePool;
00040
00048 class KDEUI_EXPORT KWidgetItemDelegate : public QAbstractItemDelegate
00049 {
00050 public:
00057 explicit KWidgetItemDelegate(QAbstractItemView *itemView, QObject *parent = 0);
00058
00062 virtual ~KWidgetItemDelegate();
00063
00069 QAbstractItemView *itemView() const;
00070
00076 QPersistentModelIndex focusedIndex() const;
00077
00078 protected:
00091 virtual QList<QWidget*> createItemWidgets() const = 0;
00092
00106 virtual void updateItemWidgets(const QList<QWidget*> widgets,
00107 const QStyleOptionViewItem &option,
00108 const QPersistentModelIndex &index) const = 0;
00109
00118 void paintWidgets(QPainter *painter, const QStyleOptionViewItem &option,
00119 const QPersistentModelIndex &index) const;
00120
00130 void setBlockedEventTypes(QWidget *widget, QList<QEvent::Type> types) const;
00131
00139 QList<QEvent::Type> blockedEventTypes(QWidget *widget) const;
00140
00141 private:
00142
00143 friend class KWidgetItemDelegatePool;
00144 friend class KWidgetItemDelegatePrivate;
00145 KWidgetItemDelegatePrivate *const d;
00146
00147 };
00148
00149 #endif