1 /* 2 * DQt - D bindings for the Qt Toolkit 3 * 4 * GNU Lesser General Public License Usage 5 * This file may be used under the terms of the GNU Lesser 6 * General Public License version 3 as published by the Free Software 7 * Foundation and appearing in the file LICENSE.LGPL3 included in the 8 * packaging of this file. Please review the following information to 9 * ensure the GNU Lesser General Public License version 3 requirements 10 * will be met: https://www.gnu.org/licenses/lgpl-3.0.html. 11 */ 12 module qt.widgets.listview; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.abstractitemmodel; 17 import qt.core.coreevent; 18 import qt.core.itemselectionmodel; 19 import qt.core.list; 20 import qt.core.namespace; 21 import qt.core.point; 22 import qt.core.rect; 23 import qt.core.size; 24 import qt.gui.event; 25 import qt.gui.region; 26 import qt.helpers; 27 import qt.widgets.abstractitemview; 28 import qt.widgets.styleoption; 29 import qt.widgets.widget; 30 31 /+ QT_REQUIRE_CONFIG(listview); +/ 32 33 34 extern(C++, class) struct QListViewPrivate; 35 36 /// Binding for C++ class [QListView](https://doc.qt.io/qt-6/qlistview.html). 37 class /+ Q_WIDGETS_EXPORT +/ QListView : QAbstractItemView 38 { 39 mixin(Q_OBJECT); 40 /+ Q_PROPERTY(Movement movement READ movement WRITE setMovement) 41 Q_PROPERTY(Flow flow READ flow WRITE setFlow) 42 Q_PROPERTY(bool isWrapping READ isWrapping WRITE setWrapping) 43 Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) 44 Q_PROPERTY(LayoutMode layoutMode READ layoutMode WRITE setLayoutMode) 45 Q_PROPERTY(int spacing READ spacing WRITE setSpacing) 46 Q_PROPERTY(QSize gridSize READ gridSize WRITE setGridSize) 47 Q_PROPERTY(ViewMode viewMode READ viewMode WRITE setViewMode) 48 Q_PROPERTY(int modelColumn READ modelColumn WRITE setModelColumn) 49 Q_PROPERTY(bool uniformItemSizes READ uniformItemSizes WRITE setUniformItemSizes) 50 Q_PROPERTY(int batchSize READ batchSize WRITE setBatchSize) 51 Q_PROPERTY(bool wordWrap READ wordWrap WRITE setWordWrap) 52 Q_PROPERTY(bool selectionRectVisible READ isSelectionRectVisible WRITE setSelectionRectVisible) 53 Q_PROPERTY(Qt::Alignment itemAlignment READ itemAlignment WRITE setItemAlignment) +/ 54 55 public: 56 enum Movement { Static, Free, Snap } 57 /+ Q_ENUM(Movement) +/ 58 enum Flow { LeftToRight, TopToBottom } 59 /+ Q_ENUM(Flow) +/ 60 enum ResizeMode { Fixed, Adjust } 61 /+ Q_ENUM(ResizeMode) +/ 62 enum LayoutMode { SinglePass, Batched } 63 /+ Q_ENUM(LayoutMode) +/ 64 enum ViewMode { ListMode, IconMode } 65 /+ Q_ENUM(ViewMode) +/ 66 67 /+ explicit +/this(QWidget parent = null); 68 ~this(); 69 70 final void setMovement(Movement movement); 71 final Movement movement() const; 72 73 final void setFlow(Flow flow); 74 final Flow flow() const; 75 76 final void setWrapping(bool enable); 77 final bool isWrapping() const; 78 79 final void setResizeMode(ResizeMode mode); 80 final ResizeMode resizeMode() const; 81 82 final void setLayoutMode(LayoutMode mode); 83 final LayoutMode layoutMode() const; 84 85 final void setSpacing(int space); 86 final int spacing() const; 87 88 final void setBatchSize(int batchSize); 89 final int batchSize() const; 90 91 final void setGridSize(ref const(QSize) size); 92 final QSize gridSize() const; 93 94 final void setViewMode(ViewMode mode); 95 final ViewMode viewMode() const; 96 97 final void clearPropertyFlags(); 98 99 final bool isRowHidden(int row) const; 100 final void setRowHidden(int row, bool hide); 101 102 final void setModelColumn(int column); 103 final int modelColumn() const; 104 105 final void setUniformItemSizes(bool enable); 106 final bool uniformItemSizes() const; 107 108 final void setWordWrap(bool on); 109 final bool wordWrap() const; 110 111 final void setSelectionRectVisible(bool show); 112 final bool isSelectionRectVisible() const; 113 114 final void setItemAlignment(/+ Qt:: +/qt.core.namespace.Alignment alignment); 115 final /+ Qt:: +/qt.core.namespace.Alignment itemAlignment() const; 116 117 override QRect visualRect(ref const(QModelIndex) index) const; 118 override void scrollTo(ref const(QModelIndex) index, ScrollHint hint = ScrollHint.EnsureVisible); 119 override QModelIndex indexAt(ref const(QPoint) p) const; 120 121 override void doItemsLayout(); 122 override void reset(); 123 override void setRootIndex(ref const(QModelIndex) index); 124 125 /+ Q_SIGNALS +/public: 126 @QSignal final void indexesMoved(ref const(QModelIndexList) indexes); 127 128 protected: 129 this(ref QListViewPrivate , QWidget parent = null); 130 131 override bool event(QEvent e); 132 133 override void scrollContentsBy(int dx, int dy); 134 135 final void resizeContents(int width, int height); 136 final QSize contentsSize() const; 137 138 override void dataChanged(ref const(QModelIndex) topLeft, ref const(QModelIndex) bottomRight, 139 ref const(QList!(int)) roles = globalInitVar!(QList!(int))); 140 override void rowsInserted(ref const(QModelIndex) parent, int start, int end); 141 override void rowsAboutToBeRemoved(ref const(QModelIndex) parent, int start, int end); 142 143 override void mouseMoveEvent(QMouseEvent e); 144 override void mouseReleaseEvent(QMouseEvent e); 145 /+ #if QT_CONFIG(wheelevent) +/ 146 override void wheelEvent(QWheelEvent e); 147 /+ #endif +/ 148 149 override void timerEvent(QTimerEvent e); 150 override void resizeEvent(QResizeEvent e); 151 /+ #if QT_CONFIG(draganddrop) +/ 152 override void dragMoveEvent(QDragMoveEvent e); 153 override void dragLeaveEvent(QDragLeaveEvent e); 154 override void dropEvent(QDropEvent e); 155 override void startDrag(/+ Qt:: +/qt.core.namespace.DropActions supportedActions); 156 /+ #endif +/ // QT_CONFIG(draganddrop) 157 158 override void initViewItemOption(QStyleOptionViewItem* option) const; 159 override void paintEvent(QPaintEvent e); 160 161 override int horizontalOffset() const; 162 override int verticalOffset() const; 163 override QModelIndex moveCursor(CursorAction cursorAction, /+ Qt:: +/qt.core.namespace.KeyboardModifiers modifiers); 164 final QRect rectForIndex(ref const(QModelIndex) index) const; 165 final void setPositionForIndex(ref const(QPoint) position, ref const(QModelIndex) index); 166 167 override void setSelection(ref const(QRect) rect, QItemSelectionModel.SelectionFlags command); 168 override QRegion visualRegionForSelection(ref const(QItemSelection) selection) const; 169 override QModelIndexList selectedIndexes() const; 170 171 override void updateGeometries(); 172 173 override bool isIndexHidden(ref const(QModelIndex) index) const; 174 175 override void selectionChanged(ref const(QItemSelection) selected, ref const(QItemSelection) deselected); 176 override void currentChanged(ref const(QModelIndex) current, ref const(QModelIndex) previous); 177 178 override QSize viewportSizeHint() const; 179 180 private: 181 final int visualIndex(ref const(QModelIndex) index) const; 182 /+ friend class QCommonListViewBase; +/ 183 184 /+ Q_DECLARE_PRIVATE(QListView) +/ 185 /+ Q_DISABLE_COPY(QListView) +/ 186 mixin(CREATE_CONVENIENCE_WRAPPERS); 187 } 188