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.treewidgetitemiterator; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.flags; 17 import qt.core.scopedpointer; 18 import qt.helpers; 19 import qt.widgets.treewidget; 20 21 /+ QT_REQUIRE_CONFIG(treewidget); +/ 22 23 24 extern(C++, class) struct QTreeModel; 25 26 extern(C++, class) struct QTreeWidgetItemIteratorPrivate; 27 /// Binding for C++ class [QTreeWidgetItemIterator](https://doc.qt.io/qt-6/qtreewidgetitemiterator.html). 28 extern(C++, class) struct /+ Q_WIDGETS_EXPORT +/ QTreeWidgetItemIterator 29 { 30 private: 31 /+ friend class QTreeModel; +/ 32 33 public: 34 enum IteratorFlag { 35 All = 0x00000000, 36 Hidden = 0x00000001, 37 NotHidden = 0x00000002, 38 Selected = 0x00000004, 39 Unselected = 0x00000008, 40 Selectable = 0x00000010, 41 NotSelectable = 0x00000020, 42 DragEnabled = 0x00000040, 43 DragDisabled = 0x00000080, 44 DropEnabled = 0x00000100, 45 DropDisabled = 0x00000200, 46 HasChildren = 0x00000400, 47 NoChildren = 0x00000800, 48 Checked = 0x00001000, 49 NotChecked = 0x00002000, 50 Enabled = 0x00004000, 51 Disabled = 0x00008000, 52 Editable = 0x00010000, 53 NotEditable = 0x00020000, 54 UserFlag = 0x01000000 // The first flag that can be used by the user. 55 } 56 /+ Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag) +/ 57 alias IteratorFlags = QFlags!(IteratorFlag); 58 @disable this(this); 59 this(ref const(QTreeWidgetItemIterator) it); 60 /+ explicit +/this(QTreeWidget widget, IteratorFlags flags = IteratorFlag.All); 61 /+ explicit +/this(QTreeWidgetItem item, IteratorFlags flags = IteratorFlag.All); 62 ~this(); 63 64 /+ref QTreeWidgetItemIterator operator =(ref const(QTreeWidgetItemIterator) it);+/ 65 66 ref QTreeWidgetItemIterator opUnary(string op)() if(op == "++"); 67 /+pragma(inline, true) const(QTreeWidgetItemIterator) operator ++(int) 68 { 69 QTreeWidgetItemIterator it = this; 70 ++(this); 71 return it; 72 }+/ 73 pragma(inline, true) ref QTreeWidgetItemIterator opOpAssign(string op)(int n) if(op == "+") 74 { 75 if (n < 0) 76 return (this) -= (-n); 77 while (current && n--) 78 ++(this); 79 return this; 80 } 81 82 ref QTreeWidgetItemIterator opUnary(string op)() if(op == "--"); 83 /+pragma(inline, true) const(QTreeWidgetItemIterator) operator --(int) 84 { 85 QTreeWidgetItemIterator it = this; 86 --(this); 87 return it; 88 }+/ 89 pragma(inline, true) ref QTreeWidgetItemIterator opOpAssign(string op)(int n) if(op == "-") 90 { 91 if (n < 0) 92 return (this) += (-n); 93 while (current && n--) 94 --(this); 95 return this; 96 } 97 98 pragma(inline, true) QTreeWidgetItem opUnary(string op)() const if(op == "*") 99 { 100 return current; 101 } 102 103 private: 104 mixin(changeWindowsMangling(q{mangleClassesTailConst}, q{ 105 bool matchesFlags(const(QTreeWidgetItem) item) const; 106 })); 107 QScopedPointer!(QTreeWidgetItemIteratorPrivate) d_ptr; 108 QTreeWidgetItem current; 109 IteratorFlags flags; 110 /+ Q_DECLARE_PRIVATE(QTreeWidgetItemIterator) +/ 111 mixin(CREATE_CONVENIENCE_WRAPPERS); 112 } 113 /+pragma(inline, true) QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) operator |(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/{return QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type)(f1)|f2;}+/ 114 /+pragma(inline, true) QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) operator |(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 115 /+pragma(inline, true) QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) operator &(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/{return QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type)(f1)&f2;}+/ 116 /+pragma(inline, true) QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) operator &(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 117 /+pragma(inline, true) void operator +(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 118 /+pragma(inline, true) void operator +(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 119 /+pragma(inline, true) void operator +(int f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 120 /+pragma(inline, true) void operator -(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 121 /+pragma(inline, true) void operator -(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 122 /+pragma(inline, true) void operator -(int f1, QFlags!(QTreeWidgetItemIterator.IteratorFlags.enum_type) f2)/+noexcept+/;+/ 123 /+pragma(inline, true) QIncompatibleFlag operator |(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 124 /+pragma(inline, true) void operator +(int f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 125 /+pragma(inline, true) void operator +(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/;+/ 126 /+pragma(inline, true) void operator -(int f1, QTreeWidgetItemIterator.IteratorFlags.enum_type f2)/+noexcept+/;+/ 127 /+pragma(inline, true) void operator -(QTreeWidgetItemIterator.IteratorFlags.enum_type f1, int f2)/+noexcept+/;+/ 128 129 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QTreeWidgetItemIterator::IteratorFlags) +/