blob: d6e797ae9b58082f48e7bc752d434e74e1d1535f [file] [log] [blame]
chudy@google.com902ebe52012-06-29 14:21:22 +00001
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 */
20class SkListWidget : public QAbstractItemDelegate {
21public:
commit-bot@chromium.org57f74e02014-03-25 23:31:33 +000022 enum IndexStyle {
23 kIndex_IndexStyle,
24 kOffset_IndexStyle,
25 };
26
chudy@google.com902ebe52012-06-29 14:21:22 +000027 /**
28 Constructs the list widget with the specified parent for layout purposes.
29 @param parent The parent container of this widget
30 */
commit-bot@chromium.org57f74e02014-03-25 23:31:33 +000031 SkListWidget(QObject* parent = NULL) : fIndexStyle(kIndex_IndexStyle) {}
chudy@google.com902ebe52012-06-29 14:21:22 +000032
commit-bot@chromium.org57f74e02014-03-25 23:31:33 +000033 virtual ~SkListWidget() {}
chudy@google.com902ebe52012-06-29 14:21:22 +000034
35 /**
36 Draws the current state of the widget. Overriden from QWidget.
37 */
commit-bot@chromium.org57f74e02014-03-25 23:31:33 +000038 void paint(QPainter* painter, const QStyleOptionViewItem& option,
39 const QModelIndex& index ) const;
chudy@google.com902ebe52012-06-29 14:21:22 +000040
41 /**
42 Returns the default size of the widget. Overriden from QWidget.
43 */
commit-bot@chromium.org57f74e02014-03-25 23:31:33 +000044 QSize sizeHint(const QStyleOptionViewItem& option,
45 const QModelIndex& index) const;
46
47
48 void setIndexStyle(IndexStyle indexStyle) {
49 fIndexStyle = indexStyle;
50 }
51
52protected:
53 IndexStyle fIndexStyle;
chudy@google.com902ebe52012-06-29 14:21:22 +000054};
55
56#endif