1 2 /* 3 * Copyright 2012 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 #ifndef SKLISTWIDGET_H_ 11 #define SKLISTWIDGET_H_ 12 13 #include <QAbstractItemDelegate> 14 #include <QPainter> 15 16 /** \class SkListWidget 17 18 This widget contains the draw commands. 19 */ 20 class SkListWidget : public QAbstractItemDelegate { 21 public: 22 enum IndexStyle { 23 kIndex_IndexStyle, 24 kOffset_IndexStyle, 25 }; 26 27 /** 28 Constructs the list widget with the specified parent for layout purposes. 29 @param parent The parent container of this widget 30 */ 31 SkListWidget(QObject* parent = NULL) : fIndexStyle(kIndex_IndexStyle) {} 32 33 virtual ~SkListWidget() {} 34 35 /** 36 Draws the current state of the widget. Overriden from QWidget. 37 */ 38 void paint(QPainter* painter, const QStyleOptionViewItem& option, 39 const QModelIndex& index ) const; 40 41 /** 42 Returns the default size of the widget. Overriden from QWidget. 43 */ 44 QSize sizeHint(const QStyleOptionViewItem& option, 45 const QModelIndex& index) const; 46 47 48 void setIndexStyle(IndexStyle indexStyle) { 49 fIndexStyle = indexStyle; 50 } 51 52 protected: 53 IndexStyle fIndexStyle; 54 }; 55 56 #endif 57