#include <QtGui/qabstractitemview.h>
#ifndef QABSTRACTITEMVIEW_H
#ifndef QT_NO_ITEMVIEWS
class QAbstractItemView: public QAbstractScrollArea{
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: enum SelectionMode{
      NoSelection = 0,
      SingleSelection = 1,
      MultiSelection = 2,
      ExtendedSelection = 3,
      ContiguousSelection = 4,
   };
   public: enum SelectionBehavior{
      SelectItems = 0,
      SelectRows = 1,
      SelectColumns = 2,
   };
   public: enum ScrollHint{
      EnsureVisible = 0,
      PositionAtTop = 1,
      PositionAtBottom = 2,
      PositionAtCenter = 3,
   };
   public: enum EditTrigger{
      NoEditTriggers = 0,
      CurrentChanged = 1,
      DoubleClicked = 2,
      SelectedClicked = 4,
      EditKeyPressed = 8,
      AnyKeyPressed = 16,
      AllEditTriggers = 31,
   };
   public: typedef class QFlags < enum QAbstractItemView::EditTrigger > EditTriggers;
   public: enum ScrollMode{
      ScrollPerItem = 0,
      ScrollPerPixel = 1,
   };
   public: explicit QAbstractItemView(class QWidget* parent = 0);
   public: virtual ~QAbstractItemView();
   public: virtual void setModel(class QAbstractItemModel* model);
   public: class QAbstractItemModel* model() const
   public: virtual void setSelectionModel(class QItemSelectionModel* selectionModel);
   public: class QItemSelectionModel* selectionModel() const
   public: void setItemDelegate(class QAbstractItemDelegate* delegate);
   public: class QAbstractItemDelegate* itemDelegate() const
   public: void setSelectionMode(enum QAbstractItemView::SelectionMode mode);
   public: enum QAbstractItemView::SelectionMode selectionMode() const
   public: void setSelectionBehavior(enum QAbstractItemView::SelectionBehavior behavior);
   public: enum QAbstractItemView::SelectionBehavior selectionBehavior() const
   public: class QModelIndex currentIndex() const
   public: class QModelIndex rootIndex() const
   public: void setEditTriggers(class QFlags < enum QAbstractItemView::EditTrigger > triggers);
   public: class QFlags < enum QAbstractItemView::EditTrigger > editTriggers() const
   public: void setVerticalScrollMode(enum QAbstractItemView::ScrollMode mode);
   public: enum QAbstractItemView::ScrollMode verticalScrollMode() const
   public: void setHorizontalScrollMode(enum QAbstractItemView::ScrollMode mode);
   public: enum QAbstractItemView::ScrollMode horizontalScrollMode() const
   public: void setAutoScroll(bool enable);
   public: bool hasAutoScroll() const
   public: void setTabKeyNavigation(bool enable);
   public: bool tabKeyNavigation() const
#ifndef QT_NO_DRAGANDDROP
   public: void setDropIndicatorShown(bool enable);
   public: bool showDropIndicator() const
   public: void setDragEnabled(bool enable);
   public: bool dragEnabled() const
   public: void setDragDropOverwriteMode(bool overwrite);
   public: bool dragDropOverwriteMode() const
   public: enum DragDropMode{
      NoDragDrop = 0,
      DragOnly = 1,
      DropOnly = 2,
      DragDrop = 3,
      InternalMove = 4,
   };
   public: void setDragDropMode(enum QAbstractItemView::DragDropMode behavior);
   public: enum QAbstractItemView::DragDropMode dragDropMode() const
#endif
   public: void setAlternatingRowColors(bool enable);
   public: bool alternatingRowColors() const
   public: void setIconSize(class QSize const & size);
   public: class QSize iconSize() const
   public: void setTextElideMode(enum Qt::TextElideMode mode);
   public: enum Qt::TextElideMode textElideMode() const
   public: virtual void keyboardSearch(class QString const & search);
   public: virtual class QRect visualRect(class QModelIndex const & index) const = 0;
   public: virtual void scrollTo(class QModelIndex const & index, enum QAbstractItemView::ScrollHint hint = QAbstractItemView::EnsureVisible) = 0;
   public: virtual class QModelIndex indexAt(class QPoint const & point) const = 0;
   public: class QSize sizeHintForIndex(class QModelIndex const & index) const
   public: virtual int sizeHintForRow(int row) const
   public: virtual int sizeHintForColumn(int column) const
   public: void openPersistentEditor(class QModelIndex const & index);
   public: void closePersistentEditor(class QModelIndex const & index);
   public: void setIndexWidget(class QModelIndex const & index, class QWidget* widget);
   public: class QWidget* indexWidget(class QModelIndex const & index) const
   public: void setItemDelegateForRow(int row, class QAbstractItemDelegate* delegate);
   public: class QAbstractItemDelegate* itemDelegateForRow(int row) const
   public: void setItemDelegateForColumn(int column, class QAbstractItemDelegate* delegate);
   public: class QAbstractItemDelegate* itemDelegateForColumn(int column) const
   public: class QAbstractItemDelegate* itemDelegate(class QModelIndex const & index) const
   public: virtual class QVariant inputMethodQuery(enum Qt::InputMethodQuery query) const
   public: virtual void reset();
   public: virtual void setRootIndex(class QModelIndex const & index);
   public: virtual void doItemsLayout();
   public: virtual void selectAll();
   public: void edit(class QModelIndex const & index);
   public: void clearSelection();
   public: void setCurrentIndex(class QModelIndex const & index);
   public: void scrollToTop();
   public: void scrollToBottom();
   protected: virtual void dataChanged(class QModelIndex const & topLeft, class QModelIndex const & bottomRight);
   protected: virtual void rowsInserted(class QModelIndex const & parent, int start, int end);
   protected: virtual void rowsAboutToBeRemoved(class QModelIndex const & parent, int start, int end);
   protected: virtual void selectionChanged(class QItemSelection const & selected, class QItemSelection const & deselected);
   protected: virtual void currentChanged(class QModelIndex const & current, class QModelIndex const & previous);
   protected: virtual void updateEditorData();
   protected: virtual void updateEditorGeometries();
   protected: virtual void updateGeometries();
   protected: virtual void verticalScrollbarAction(int action);
   protected: virtual void horizontalScrollbarAction(int action);
   protected: virtual void verticalScrollbarValueChanged(int value);
   protected: virtual void horizontalScrollbarValueChanged(int value);
   protected: virtual void closeEditor(class QWidget* editor, enum QAbstractItemDelegate::EndEditHint hint);
   protected: virtual void commitData(class QWidget* editor);
   protected: virtual void editorDestroyed(class QObject* editor);
   protected: void pressed(class QModelIndex const & index);
   protected: void clicked(class QModelIndex const & index);
   protected: void doubleClicked(class QModelIndex const & index);
   protected: void activated(class QModelIndex const & index);
   protected: void entered(class QModelIndex const & index);
   protected: void viewportEntered();
   protected: QAbstractItemView(struct QAbstractItemViewPrivate&, class QWidget* parent = 0);
   protected: void setHorizontalStepsPerItem(int steps);
   protected: int horizontalStepsPerItem() const
   protected: void setVerticalStepsPerItem(int steps);
   protected: int verticalStepsPerItem() const
   protected: enum CursorAction{
      MoveUp = 0,
      MoveDown = 1,
      MoveLeft = 2,
      MoveRight = 3,
      MoveHome = 4,
      MoveEnd = 5,
      MovePageUp = 6,
      MovePageDown = 7,
      MoveNext = 8,
      MovePrevious = 9,
   };
   protected: virtual class QModelIndex moveCursor(enum QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0;
   protected: virtual int horizontalOffset() const = 0;
   protected: virtual int verticalOffset() const = 0;
   protected: virtual bool isIndexHidden(class QModelIndex const & index) const = 0;
   protected: virtual void setSelection(class QRect const & rect, class QFlags < enum QItemSelectionModel::SelectionFlag > command) = 0;
   protected: virtual class QRegion visualRegionForSelection(class QItemSelection const & selection) const = 0;
   protected: virtual QModelIndexList selectedIndexes() const
   protected: virtual bool edit(class QModelIndex const & index, enum QAbstractItemView::EditTrigger trigger, struct QEvent* event);
   protected: virtual class QFlags < enum QItemSelectionModel::SelectionFlag > selectionCommand(class QModelIndex const & index, struct QEvent const * event = 0) const
#ifndef QT_NO_DRAGANDDROP
   protected: virtual void startDrag(Qt::DropActions supportedActions);
#endif
   protected: virtual class QStyleOptionViewItem viewOptions() const
   protected: enum State{
      NoState = 0,
      DraggingState = 1,
      DragSelectingState = 2,
      EditingState = 3,
      ExpandingState = 4,
      CollapsingState = 5,
      AnimatingState = 6,
   };
   protected: enum QAbstractItemView::State state() const
   protected: void setState(enum QAbstractItemView::State state);
   protected: void scheduleDelayedItemsLayout();
   protected: void executeDelayedItemsLayout();
   protected: void setDirtyRegion(class QRegion const & region);
   protected: void scrollDirtyRegion(int dx, int dy);
   protected: class QPoint dirtyRegionOffset() const
   protected: void startAutoScroll();
   protected: void stopAutoScroll();
   protected: void doAutoScroll();
   protected: virtual bool focusNextPrevChild(bool next);
   protected: virtual bool event(struct QEvent* event);
   protected: virtual bool viewportEvent(struct QEvent* event);
   protected: virtual void mousePressEvent(struct QMouseEvent* event);
   protected: virtual void mouseMoveEvent(struct QMouseEvent* event);
   protected: virtual void mouseReleaseEvent(struct QMouseEvent* event);
   protected: virtual void mouseDoubleClickEvent(struct QMouseEvent* event);
#ifndef QT_NO_DRAGANDDROP
   protected: virtual void dragEnterEvent(struct QDragEnterEvent* event);
   protected: virtual void dragMoveEvent(struct QDragMoveEvent* event);
   protected: virtual void dragLeaveEvent(struct QDragLeaveEvent* event);
   protected: virtual void dropEvent(struct QDropEvent* event);
#endif
   protected: virtual void focusInEvent(struct QFocusEvent* event);
   protected: virtual void focusOutEvent(struct QFocusEvent* event);
   protected: virtual void keyPressEvent(struct QKeyEvent* event);
   protected: virtual void resizeEvent(struct QResizeEvent* event);
   protected: virtual void timerEvent(struct QTimerEvent* event);
   protected: virtual void inputMethodEvent(struct QInputMethodEvent* event);
#ifndef QT_NO_DRAGANDDROP
   protected: enum DropIndicatorPosition{
      OnItem = 0,
      AboveItem = 1,
      BelowItem = 2,
      OnViewport = 3,
   };
   protected: enum QAbstractItemView::DropIndicatorPosition dropIndicatorPosition() const
#endif
   private: inline struct QAbstractItemViewPrivate* d_func();
   private: inline struct QAbstractItemViewPrivate const * d_func() const
   private: QAbstractItemView(class QAbstractItemView const &);
   private: class QAbstractItemView& operator =(class QAbstractItemView const &);
   friend struct QAbstractItemViewPrivate;
   friend struct QTreeViewPrivate;
   friend struct QAccessibleItemRow;
};
#endif // QT_NO_ITEMVIEWS
#endif // QABSTRACTITEMVIEW_H