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.fontdialog;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.flags;
18 import qt.core.object;
19 import qt.core.string;
20 import qt.gui.font;
21 import qt.helpers;
22 import qt.widgets.dialog;
23 import qt.widgets.widget;
24 
25 /+ QT_REQUIRE_CONFIG(fontdialog); +/
26 
27 
28 extern(C++, class) struct QFontDialogPrivate;
29 
30 /// Binding for C++ class [QFontDialog](https://doc.qt.io/qt-6/qfontdialog.html).
31 class /+ Q_WIDGETS_EXPORT +/ QFontDialog : QDialog
32 {
33     mixin(Q_OBJECT);
34     /+ Q_DECLARE_PRIVATE(QFontDialog) +/
35     /+ Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged)
36     Q_PROPERTY(FontDialogOptions options READ options WRITE setOptions) +/
37 
38 public:
39     enum FontDialogOption {
40         NoButtons           = 0x00000001,
41         DontUseNativeDialog = 0x00000002,
42         ScalableFonts       = 0x00000004,
43         NonScalableFonts    = 0x00000008,
44         MonospacedFonts     = 0x00000010,
45         ProportionalFonts   = 0x00000020
46     }
47     /+ Q_ENUM(FontDialogOption) +/
48 
49     /+ Q_DECLARE_FLAGS(FontDialogOptions, FontDialogOption) +/
50 alias FontDialogOptions = QFlags!(FontDialogOption);
51     /+ explicit +/this(QWidget parent = null);
52     /+ explicit +/this(ref const(QFont) initial, QWidget parent = null);
53     ~this();
54 
55     final void setCurrentFont(ref const(QFont) font);
56     final QFont currentFont() const;
57 
58     final QFont selectedFont() const;
59 
60     final void setOption(FontDialogOption option, bool on = true);
61     final bool testOption(FontDialogOption option) const;
62     final void setOptions(FontDialogOptions options);
63     final FontDialogOptions options() const;
64 
65     /+ using QDialog::open; +/
66     final void open(QObject receiver, const(char)* member);
67 
68     override void setVisible(bool visible);
69 
70     static QFont getFont(bool* ok, QWidget parent = null);
71     static QFont getFont(bool* ok, ref const(QFont) initial, QWidget parent = null, ref const(QString) title = globalInitVar!QString,
72                              FontDialogOptions options = FontDialogOptions());
73 
74 /+ Q_SIGNALS +/public:
75     @QSignal final void currentFontChanged(ref const(QFont) font);
76     @QSignal final void fontSelected(ref const(QFont) font);
77 
78 protected:
79     override void changeEvent(QEvent event);
80     override void done(int result);
81     override bool eventFilter(QObject object, QEvent event);
82 
83 private:
84     /+ Q_DISABLE_COPY(QFontDialog) +/
85 
86     /+ Q_PRIVATE_SLOT(d_func(), void _q_sizeChanged(const QString &))
87     Q_PRIVATE_SLOT(d_func(), void _q_familyHighlighted(int))
88     Q_PRIVATE_SLOT(d_func(), void _q_writingSystemHighlighted(int))
89     Q_PRIVATE_SLOT(d_func(), void _q_styleHighlighted(int))
90     Q_PRIVATE_SLOT(d_func(), void _q_sizeHighlighted(int))
91     Q_PRIVATE_SLOT(d_func(), void _q_updateSample()) +/
92     mixin(CREATE_CONVENIENCE_WRAPPERS);
93 }
94 /+pragma(inline, true) QFlags!(QFontDialog.FontDialogOptions.enum_type) operator |(QFontDialog.FontDialogOptions.enum_type f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QFontDialog.FontDialogOptions.enum_type)(f1)|f2;}+/
95 /+pragma(inline, true) QFlags!(QFontDialog.FontDialogOptions.enum_type) operator |(QFontDialog.FontDialogOptions.enum_type f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/{return f2|f1;}+/
96 /+pragma(inline, true) QFlags!(QFontDialog.FontDialogOptions.enum_type) operator &(QFontDialog.FontDialogOptions.enum_type f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/{return QFlags!(QFontDialog.FontDialogOptions.enum_type)(f1)&f2;}+/
97 /+pragma(inline, true) QFlags!(QFontDialog.FontDialogOptions.enum_type) operator &(QFontDialog.FontDialogOptions.enum_type f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/{return f2&f1;}+/
98 /+pragma(inline, true) void operator +(QFontDialog.FontDialogOptions.enum_type f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/;+/
99 /+pragma(inline, true) void operator +(QFontDialog.FontDialogOptions.enum_type f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/;+/
100 /+pragma(inline, true) void operator +(int f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/;+/
101 /+pragma(inline, true) void operator -(QFontDialog.FontDialogOptions.enum_type f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/;+/
102 /+pragma(inline, true) void operator -(QFontDialog.FontDialogOptions.enum_type f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/;+/
103 /+pragma(inline, true) void operator -(int f1, QFlags!(QFontDialog.FontDialogOptions.enum_type) f2)/+noexcept+/;+/
104 /+pragma(inline, true) QIncompatibleFlag operator |(QFontDialog.FontDialogOptions.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
105 /+pragma(inline, true) void operator +(int f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/;+/
106 /+pragma(inline, true) void operator +(QFontDialog.FontDialogOptions.enum_type f1, int f2)/+noexcept+/;+/
107 /+pragma(inline, true) void operator -(int f1, QFontDialog.FontDialogOptions.enum_type f2)/+noexcept+/;+/
108 /+pragma(inline, true) void operator -(QFontDialog.FontDialogOptions.enum_type f1, int f2)/+noexcept+/;+/
109 
110 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QFontDialog::FontDialogOptions) +/