/**************************************************************************** ** ** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** This file is part of the QtGui module of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License versions 2.0 or 3.0 as published by the Free Software ** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Alternatively you may (at ** your option) use any later version of the GNU General Public ** License if such license has been publicly approved by Trolltech ASA ** (or its successors, if any) and the KDE Free Qt Foundation. In ** addition, as a special exception, Trolltech gives you certain ** additional rights. These rights are described in the Trolltech GPL ** Exception version 1.1, which can be found at ** http://www.trolltech.com/products/qt/gplexception/ and in the file ** GPL_EXCEPTION.txt in this package. ** ** Please review the following information to ensure GNU General ** Public Licensing requirements will be met: ** http://trolltech.com/products/qt/licenses/licensing/opensource/. If ** you are unsure which license is appropriate for your use, please ** review the following information: ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview ** or contact the sales department at sales@trolltech.com. ** ** In addition, as a special exception, Trolltech, as the sole ** copyright holder for Qt Designer, grants users of the Qt/Eclipse ** Integration plug-in the right for the Qt/Eclipse Integration to ** link to functionality provided by Qt Designer and its related ** libraries. ** ** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, ** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR ** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly ** granted herein. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #ifndef QLISTVIEW_H #define QLISTVIEW_H #include <QtGui/qabstractitemview.h> QT_BEGIN_HEADER QT_MODULE(Gui) #ifndef QT_NO_LISTVIEW class QListViewPrivate; 00057 class Q_GUI_EXPORT QListView : public QAbstractItemView { Q_OBJECT Q_ENUMS(Movement Flow ResizeMode LayoutMode ViewMode) 00061 Q_PROPERTY(Movement movement READ movement WRITE setMovement) 00062 Q_PROPERTY(Flow flow READ flow WRITE setFlow) 00063 Q_PROPERTY(bool isWrapping READ isWrapping WRITE setWrapping) 00064 Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) 00065 Q_PROPERTY(LayoutMode layoutMode READ layoutMode WRITE setLayoutMode) 00066 Q_PROPERTY(int spacing READ spacing WRITE setSpacing) 00067 Q_PROPERTY(QSize gridSize READ gridSize WRITE setGridSize) 00068 Q_PROPERTY(ViewMode viewMode READ viewMode WRITE setViewMode) 00069 Q_PROPERTY(int modelColumn READ modelColumn WRITE setModelColumn) 00070 Q_PROPERTY(bool uniformItemSizes READ uniformItemSizes WRITE setUniformItemSizes) 00071 Q_PROPERTY(int batchSize READ batchSize WRITE setBatchSize) 00072 Q_PROPERTY(bool wordWrap READ wordWrap WRITE setWordWrap) 00073 Q_PROPERTY(bool selectionRectVisible READ isSelectionRectVisible WRITE setSelectionRectVisible) public: 00076 enum Movement { Static, Free, Snap }; 00077 enum Flow { LeftToRight, TopToBottom }; 00078 enum ResizeMode { Fixed, Adjust }; 00079 enum LayoutMode { SinglePass, Batched }; 00080 enum ViewMode { ListMode, IconMode }; explicit QListView(QWidget *parent = 0); ~QListView(); void setMovement(Movement movement); Movement movement() const; void setFlow(Flow flow); Flow flow() const; void setWrapping(bool enable); bool isWrapping() const; void setResizeMode(ResizeMode mode); ResizeMode resizeMode() const; void setLayoutMode(LayoutMode mode); LayoutMode layoutMode() const; void setSpacing(int space); int spacing() const; void setBatchSize(int batchSize); int batchSize() const; void setGridSize(const QSize &size); QSize gridSize() const; void setViewMode(ViewMode mode); ViewMode viewMode() const; void clearPropertyFlags(); bool isRowHidden(int row) const; void setRowHidden(int row, bool hide); void setModelColumn(int column); int modelColumn() const; void setUniformItemSizes(bool enable); bool uniformItemSizes() const; void setWordWrap(bool on); bool wordWrap() const; void setSelectionRectVisible(bool show); bool isSelectionRectVisible() const; QRect visualRect(const QModelIndex &index) const; void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible); QModelIndex indexAt(const QPoint &p) const; void doItemsLayout(); void reset(); void setRootIndex(const QModelIndex &index); Q_SIGNALS: void indexesMoved(const QModelIndexList &indexes); protected: QListView(QListViewPrivate &, QWidget *parent = 0); bool event(QEvent *e); void scrollContentsBy(int dx, int dy); void resizeContents(int width, int height); QSize contentsSize() const; void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); void rowsInserted(const QModelIndex &parent, int start, int end); void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end); void mouseMoveEvent(QMouseEvent *e); void mouseReleaseEvent(QMouseEvent *e); void timerEvent(QTimerEvent *e); void resizeEvent(QResizeEvent *e); #ifndef QT_NO_DRAGANDDROP void dragMoveEvent(QDragMoveEvent *e); void dragLeaveEvent(QDragLeaveEvent *e); void dropEvent(QDropEvent *e); void startDrag(Qt::DropActions supportedActions); void internalDrop(QDropEvent *e); void internalDrag(Qt::DropActions supportedActions); #endif // QT_NO_DRAGANDDROP QStyleOptionViewItem viewOptions() const; void paintEvent(QPaintEvent *e); int horizontalOffset() const; int verticalOffset() const; QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers); QRect rectForIndex(const QModelIndex &index) const; void setPositionForIndex(const QPoint &position, const QModelIndex &index); void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command); QRegion visualRegionForSelection(const QItemSelection &selection) const; QModelIndexList selectedIndexes() const; void updateGeometries(); bool isIndexHidden(const QModelIndex &index) const; void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); private: friend class QAccessibleItemView; int visualIndex(const QModelIndex &index) const; Q_DECLARE_PRIVATE(QListView) Q_DISABLE_COPY(QListView) }; #endif // QT_NO_LISTVIEW QT_END_HEADER #endif // QLISTVIEW_H