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.datetimeedit; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.calendar; 17 import qt.core.coreevent; 18 import qt.core.datetime; 19 import qt.core.flags; 20 import qt.core.metatype; 21 import qt.core.namespace; 22 import qt.core.size; 23 import qt.core.string; 24 import qt.core.variant; 25 import qt.gui.event; 26 import qt.gui.validator; 27 import qt.helpers; 28 import qt.widgets.abstractspinbox; 29 import qt.widgets.calendarwidget; 30 import qt.widgets.styleoption; 31 import qt.widgets.widget; 32 33 /+ QT_REQUIRE_CONFIG(datetimeedit); +/ 34 35 36 extern(C++, class) struct QDateTimeEditPrivate; 37 38 /// Binding for C++ class [QDateTimeEdit](https://doc.qt.io/qt-6/qdatetimeedit.html). 39 class /+ Q_WIDGETS_EXPORT +/ QDateTimeEdit : QAbstractSpinBox 40 { 41 mixin(Q_OBJECT); 42 43 /+ Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime NOTIFY dateTimeChanged USER true) 44 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged) 45 Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged) 46 Q_PROPERTY(QDateTime maximumDateTime READ maximumDateTime WRITE setMaximumDateTime 47 RESET clearMaximumDateTime) 48 Q_PROPERTY(QDateTime minimumDateTime READ minimumDateTime WRITE setMinimumDateTime 49 RESET clearMinimumDateTime) 50 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate) 51 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate) 52 Q_PROPERTY(QTime maximumTime READ maximumTime WRITE setMaximumTime RESET clearMaximumTime) 53 Q_PROPERTY(QTime minimumTime READ minimumTime WRITE setMinimumTime RESET clearMinimumTime) 54 Q_PROPERTY(Section currentSection READ currentSection WRITE setCurrentSection) 55 Q_PROPERTY(Sections displayedSections READ displayedSections) 56 Q_PROPERTY(QString displayFormat READ displayFormat WRITE setDisplayFormat) 57 Q_PROPERTY(bool calendarPopup READ calendarPopup WRITE setCalendarPopup) 58 Q_PROPERTY(int currentSectionIndex READ currentSectionIndex WRITE setCurrentSectionIndex) 59 Q_PROPERTY(int sectionCount READ sectionCount) 60 Q_PROPERTY(Qt::TimeSpec timeSpec READ timeSpec WRITE setTimeSpec) +/ 61 public: 62 enum Section { // a sub-type of QDateTimeParser's like-named enum. 63 NoSection = 0x0000, 64 AmPmSection = 0x0001, 65 MSecSection = 0x0002, 66 SecondSection = 0x0004, 67 MinuteSection = 0x0008, 68 HourSection = 0x0010, 69 DaySection = 0x0100, 70 MonthSection = 0x0200, 71 YearSection = 0x0400, 72 TimeSections_Mask = Section.AmPmSection|Section.MSecSection|Section.SecondSection|Section.MinuteSection|Section.HourSection, 73 DateSections_Mask = Section.DaySection|Section.MonthSection|Section.YearSection 74 } 75 /+ Q_ENUM(Section) +/ 76 77 /+ Q_DECLARE_FLAGS(Sections, Section) +/ 78 alias Sections = QFlags!(Section); /+ Q_FLAG(Sections) +/ 79 80 /+ explicit +/this(QWidget parent = null); 81 /+ explicit +/this(ref const(QDateTime) dt, QWidget parent = null); 82 /+ explicit +/this(QDate d, QWidget parent = null); 83 /+ explicit +/this(QTime t, QWidget parent = null); 84 ~this(); 85 86 final QDateTime dateTime() const; 87 final QDate date() const; 88 final QTime time() const; 89 90 final QCalendar calendar() const; 91 final void setCalendar(QCalendar calendar); 92 93 final QDateTime minimumDateTime() const; 94 final void clearMinimumDateTime(); 95 final void setMinimumDateTime(ref const(QDateTime) dt); 96 97 final QDateTime maximumDateTime() const; 98 final void clearMaximumDateTime(); 99 final void setMaximumDateTime(ref const(QDateTime) dt); 100 101 final void setDateTimeRange(ref const(QDateTime) min, ref const(QDateTime) max); 102 103 final QDate minimumDate() const; 104 final void setMinimumDate(QDate min); 105 final void clearMinimumDate(); 106 107 final QDate maximumDate() const; 108 final void setMaximumDate(QDate max); 109 final void clearMaximumDate(); 110 111 final void setDateRange(QDate min, QDate max); 112 113 final QTime minimumTime() const; 114 final void setMinimumTime(QTime min); 115 final void clearMinimumTime(); 116 117 final QTime maximumTime() const; 118 final void setMaximumTime(QTime max); 119 final void clearMaximumTime(); 120 121 final void setTimeRange(QTime min, QTime max); 122 123 final Sections displayedSections() const; 124 final Section currentSection() const; 125 final Section sectionAt(int index) const; 126 final void setCurrentSection(Section section); 127 128 final int currentSectionIndex() const; 129 final void setCurrentSectionIndex(int index); 130 131 final QCalendarWidget calendarWidget() const; 132 final void setCalendarWidget(QCalendarWidget calendarWidget); 133 134 final int sectionCount() const; 135 136 final void setSelectedSection(Section section); 137 138 final QString sectionText(Section section) const; 139 140 final QString displayFormat() const; 141 final void setDisplayFormat(ref const(QString) format); 142 143 final bool calendarPopup() const; 144 final void setCalendarPopup(bool enable); 145 146 final /+ Qt:: +/qt.core.namespace.TimeSpec timeSpec() const; 147 final void setTimeSpec(/+ Qt:: +/qt.core.namespace.TimeSpec spec); 148 149 override QSize sizeHint() const; 150 151 override void clear(); 152 override void stepBy(int steps); 153 154 override bool event(QEvent event); 155 /+ Q_SIGNALS +/public: 156 @QSignal final void dateTimeChanged(ref const(QDateTime) dateTime); 157 @QSignal final void timeChanged(QTime time); 158 @QSignal final void dateChanged(QDate date); 159 160 public /+ Q_SLOTS +/: 161 @QSlot final void setDateTime(ref const(QDateTime) dateTime); 162 @QSlot final void setDate(QDate date); 163 @QSlot final void setTime(QTime time); 164 165 protected: 166 override void keyPressEvent(QKeyEvent event); 167 /+ #if QT_CONFIG(wheelevent) +/ 168 override void wheelEvent(QWheelEvent event); 169 /+ #endif +/ 170 override void focusInEvent(QFocusEvent event); 171 override bool focusNextPrevChild(bool next); 172 override QValidator.State validate(ref QString input, ref int pos) const; 173 override void fixup(ref QString input) const; 174 175 /+ virtual +/ QDateTime dateTimeFromText(ref const(QString) text) const; 176 /+ virtual +/ QString textFromDateTime(ref const(QDateTime) dt) const; 177 override StepEnabled stepEnabled() const; 178 override void mousePressEvent(QMouseEvent event); 179 override void paintEvent(QPaintEvent event); 180 override void initStyleOption(QStyleOptionSpinBox* option) const; 181 182 this(ref const(QVariant) val, QMetaType.Type parserType, QWidget parent = null); 183 private: 184 /+ Q_DECLARE_PRIVATE(QDateTimeEdit) +/ 185 /+ Q_DISABLE_COPY(QDateTimeEdit) +/ 186 187 /+ Q_PRIVATE_SLOT(d_func(), void _q_resetButton()) +/ 188 mixin(CREATE_CONVENIENCE_WRAPPERS); 189 } 190 191 /// Binding for C++ class [QTimeEdit](https://doc.qt.io/qt-6/qtimeedit.html). 192 class /+ Q_WIDGETS_EXPORT +/ QTimeEdit : QDateTimeEdit 193 { 194 mixin(Q_OBJECT); 195 /+ Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY userTimeChanged USER true) +/ 196 public: 197 /+ explicit +/this(QWidget parent = null); 198 /+ explicit +/this(QTime time, QWidget parent = null); 199 ~this(); 200 201 /+ Q_SIGNALS +/public: 202 @QSignal final void userTimeChanged(QTime time); 203 mixin(CREATE_CONVENIENCE_WRAPPERS); 204 } 205 206 /// Binding for C++ class [QDateEdit](https://doc.qt.io/qt-6/qdateedit.html). 207 class /+ Q_WIDGETS_EXPORT +/ QDateEdit : QDateTimeEdit 208 { 209 mixin(Q_OBJECT); 210 /+ Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY userDateChanged USER true) +/ 211 public: 212 /+ explicit +/this(QWidget parent = null); 213 /+ explicit +/this(QDate date, QWidget parent = null); 214 ~this(); 215 216 /+ Q_SIGNALS +/public: 217 @QSignal final void userDateChanged(QDate date); 218 mixin(CREATE_CONVENIENCE_WRAPPERS); 219 } 220 /+pragma(inline, true) QFlags!(QDateTimeEdit.Sections.enum_type) operator |(QDateTimeEdit.Sections.enum_type f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/{return QFlags!(QDateTimeEdit.Sections.enum_type)(f1)|f2;}+/ 221 /+pragma(inline, true) QFlags!(QDateTimeEdit.Sections.enum_type) operator |(QDateTimeEdit.Sections.enum_type f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 222 /+pragma(inline, true) QFlags!(QDateTimeEdit.Sections.enum_type) operator &(QDateTimeEdit.Sections.enum_type f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/{return QFlags!(QDateTimeEdit.Sections.enum_type)(f1)&f2;}+/ 223 /+pragma(inline, true) QFlags!(QDateTimeEdit.Sections.enum_type) operator &(QDateTimeEdit.Sections.enum_type f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 224 /+pragma(inline, true) void operator +(QDateTimeEdit.Sections.enum_type f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/;+/ 225 /+pragma(inline, true) void operator +(QDateTimeEdit.Sections.enum_type f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/;+/ 226 /+pragma(inline, true) void operator +(int f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/;+/ 227 /+pragma(inline, true) void operator -(QDateTimeEdit.Sections.enum_type f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/;+/ 228 /+pragma(inline, true) void operator -(QDateTimeEdit.Sections.enum_type f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/;+/ 229 /+pragma(inline, true) void operator -(int f1, QFlags!(QDateTimeEdit.Sections.enum_type) f2)/+noexcept+/;+/ 230 /+pragma(inline, true) QIncompatibleFlag operator |(QDateTimeEdit.Sections.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 231 /+pragma(inline, true) void operator +(int f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/;+/ 232 /+pragma(inline, true) void operator +(QDateTimeEdit.Sections.enum_type f1, int f2)/+noexcept+/;+/ 233 /+pragma(inline, true) void operator -(int f1, QDateTimeEdit.Sections.enum_type f2)/+noexcept+/;+/ 234 /+pragma(inline, true) void operator -(QDateTimeEdit.Sections.enum_type f1, int f2)/+noexcept+/;+/ 235 236 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeEdit::Sections) +/