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.colordialog; 13 extern(C++): 14 15 import qt.config; 16 import qt.core.coreevent; 17 import qt.core.flags; 18 import qt.core.namespace; 19 import qt.core.object; 20 import qt.core.string; 21 import qt.gui.color; 22 import qt.helpers; 23 import qt.widgets.dialog; 24 import qt.widgets.widget; 25 26 /+ QT_REQUIRE_CONFIG(colordialog); +/ 27 28 29 extern(C++, class) struct QColorDialogPrivate; 30 31 /// Binding for C++ class [QColorDialog](https://doc.qt.io/qt-6/qcolordialog.html). 32 class /+ Q_WIDGETS_EXPORT +/ QColorDialog : QDialog 33 { 34 mixin(Q_OBJECT); 35 /+ Q_DECLARE_PRIVATE(QColorDialog) +/ 36 /+ Q_PROPERTY(QColor currentColor READ currentColor WRITE setCurrentColor 37 NOTIFY currentColorChanged) 38 Q_PROPERTY(ColorDialogOptions options READ options WRITE setOptions) +/ 39 40 public: 41 enum ColorDialogOption { 42 ShowAlphaChannel = 0x00000001, 43 NoButtons = 0x00000002, 44 DontUseNativeDialog = 0x00000004 45 } 46 /+ Q_ENUM(ColorDialogOption) +/ 47 48 /+ Q_DECLARE_FLAGS(ColorDialogOptions, ColorDialogOption) +/ 49 alias ColorDialogOptions = QFlags!(ColorDialogOption); 50 /+ explicit +/this(QWidget parent = null); 51 /+ explicit +/this(ref const(QColor) initial, QWidget parent = null); 52 ~this(); 53 54 final void setCurrentColor(ref const(QColor) color); 55 final QColor currentColor() const; 56 57 final QColor selectedColor() const; 58 59 final void setOption(ColorDialogOption option, bool on = true); 60 final bool testOption(ColorDialogOption option) const; 61 final void setOptions(ColorDialogOptions options); 62 final ColorDialogOptions options() const; 63 64 /+ using QDialog::open; +/ 65 final void open(QObject receiver, const(char)* member); 66 67 override void setVisible(bool visible); 68 69 static QColor getColor(ref const(QColor) initial /+ = Qt::white +/, 70 QWidget parent = null, 71 ref const(QString) title = globalInitVar!QString, 72 ColorDialogOptions options = ColorDialogOptions()); 73 74 static int customCount(); 75 static QColor customColor(int index); 76 static void setCustomColor(int index, QColor color); 77 static QColor standardColor(int index); 78 static void setStandardColor(int index, QColor color); 79 80 /+ Q_SIGNALS +/public: 81 @QSignal final void currentColorChanged(ref const(QColor) color); 82 @QSignal final void colorSelected(ref const(QColor) color); 83 84 protected: 85 override void changeEvent(QEvent event); 86 override void done(int result); 87 88 private: 89 /+ Q_DISABLE_COPY(QColorDialog) +/ 90 91 /+ Q_PRIVATE_SLOT(d_func(), void _q_addCustom()) 92 Q_PRIVATE_SLOT(d_func(), void _q_newHsv(int h, int s, int v)) 93 Q_PRIVATE_SLOT(d_func(), void _q_newColorTypedIn(QRgb rgb)) 94 Q_PRIVATE_SLOT(d_func(), void _q_nextCustom(int, int)) 95 Q_PRIVATE_SLOT(d_func(), void _q_newCustom(int, int)) 96 Q_PRIVATE_SLOT(d_func(), void _q_newStandard(int, int)) 97 Q_PRIVATE_SLOT(d_func(), void _q_pickScreenColor()) 98 Q_PRIVATE_SLOT(d_func(), void _q_updateColorPicking()) +/ 99 mixin(CREATE_CONVENIENCE_WRAPPERS); 100 } 101 /+pragma(inline, true) QFlags!(QColorDialog.ColorDialogOptions.enum_type) operator |(QColorDialog.ColorDialogOptions.enum_type f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QColorDialog.ColorDialogOptions.enum_type)(f1)|f2;}+/ 102 /+pragma(inline, true) QFlags!(QColorDialog.ColorDialogOptions.enum_type) operator |(QColorDialog.ColorDialogOptions.enum_type f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/{return f2|f1;}+/ 103 /+pragma(inline, true) QFlags!(QColorDialog.ColorDialogOptions.enum_type) operator &(QColorDialog.ColorDialogOptions.enum_type f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QColorDialog.ColorDialogOptions.enum_type)(f1)&f2;}+/ 104 /+pragma(inline, true) QFlags!(QColorDialog.ColorDialogOptions.enum_type) operator &(QColorDialog.ColorDialogOptions.enum_type f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/{return f2&f1;}+/ 105 /+pragma(inline, true) void operator +(QColorDialog.ColorDialogOptions.enum_type f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/;+/ 106 /+pragma(inline, true) void operator +(QColorDialog.ColorDialogOptions.enum_type f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/;+/ 107 /+pragma(inline, true) void operator +(int f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/;+/ 108 /+pragma(inline, true) void operator -(QColorDialog.ColorDialogOptions.enum_type f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/;+/ 109 /+pragma(inline, true) void operator -(QColorDialog.ColorDialogOptions.enum_type f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/;+/ 110 /+pragma(inline, true) void operator -(int f1, QFlags!(QColorDialog.ColorDialogOptions.enum_type) f2)/+noexcept+/;+/ 111 /+pragma(inline, true) QIncompatibleFlag operator |(QColorDialog.ColorDialogOptions.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/ 112 /+pragma(inline, true) void operator +(int f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/;+/ 113 /+pragma(inline, true) void operator +(QColorDialog.ColorDialogOptions.enum_type f1, int f2)/+noexcept+/;+/ 114 /+pragma(inline, true) void operator -(int f1, QColorDialog.ColorDialogOptions.enum_type f2)/+noexcept+/;+/ 115 /+pragma(inline, true) void operator -(QColorDialog.ColorDialogOptions.enum_type f1, int f2)/+noexcept+/;+/ 116 117 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QColorDialog::ColorDialogOptions) +/