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.fontcombobox;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.flags;
18 import qt.core.size;
19 import qt.gui.font;
20 import qt.gui.fontdatabase;
21 import qt.helpers;
22 import qt.widgets.combobox;
23 import qt.widgets.widget;
24 
25 /+ QT_REQUIRE_CONFIG(fontcombobox); +/
26 
27 
28 extern(C++, class) struct QFontComboBoxPrivate;
29 
30 /// Binding for C++ class [QFontComboBox](https://doc.qt.io/qt-6/qfontcombobox.html).
31 class /+ Q_WIDGETS_EXPORT +/ QFontComboBox : QComboBox
32 {
33     mixin(Q_OBJECT);
34     /+ Q_PROPERTY(QFontDatabase::WritingSystem writingSystem READ writingSystem WRITE setWritingSystem)
35     Q_PROPERTY(FontFilters fontFilters READ fontFilters WRITE setFontFilters)
36     Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged) +/
37 
38 public:
39     /+ explicit +/this(QWidget parent = null);
40     ~this();
41 
42     final void setWritingSystem(QFontDatabase.WritingSystem);
43     final QFontDatabase.WritingSystem writingSystem() const;
44 
45     enum FontFilter {
46         AllFonts = 0,
47         ScalableFonts = 0x1,
48         NonScalableFonts = 0x2,
49         MonospacedFonts = 0x4,
50         ProportionalFonts = 0x8
51     }
52     /+ Q_DECLARE_FLAGS(FontFilters, FontFilter) +/
53 alias FontFilters = QFlags!(FontFilter);    /+ Q_FLAG(FontFilters) +/
54 
55     final void setFontFilters(FontFilters filters);
56     final FontFilters fontFilters() const;
57 
58     final QFont currentFont() const;
59     override QSize sizeHint() const;
60 
61 public /+ Q_SLOTS +/:
62     @QSlot final void setCurrentFont(ref const(QFont) f);
63 
64 /+ Q_SIGNALS +/public:
65     @QSignal final void currentFontChanged(ref const(QFont) f);
66 
67 protected:
68     override bool event(QEvent e);
69 
70 private:
71     /+ Q_DISABLE_COPY(QFontComboBox) +/
72     /+ Q_DECLARE_PRIVATE(QFontComboBox) +/
73     /+ Q_PRIVATE_SLOT(d_func(), void _q_currentChanged(const QString &))
74     Q_PRIVATE_SLOT(d_func(), void _q_updateModel()) +/
75     mixin(CREATE_CONVENIENCE_WRAPPERS);
76 }
77 /+pragma(inline, true) QFlags!(QFontComboBox.FontFilters.enum_type) operator |(QFontComboBox.FontFilters.enum_type f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/{return QFlags!(QFontComboBox.FontFilters.enum_type)(f1)|f2;}+/
78 /+pragma(inline, true) QFlags!(QFontComboBox.FontFilters.enum_type) operator |(QFontComboBox.FontFilters.enum_type f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/{return f2|f1;}+/
79 /+pragma(inline, true) QFlags!(QFontComboBox.FontFilters.enum_type) operator &(QFontComboBox.FontFilters.enum_type f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/{return QFlags!(QFontComboBox.FontFilters.enum_type)(f1)&f2;}+/
80 /+pragma(inline, true) QFlags!(QFontComboBox.FontFilters.enum_type) operator &(QFontComboBox.FontFilters.enum_type f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/{return f2&f1;}+/
81 /+pragma(inline, true) void operator +(QFontComboBox.FontFilters.enum_type f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/;+/
82 /+pragma(inline, true) void operator +(QFontComboBox.FontFilters.enum_type f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/;+/
83 /+pragma(inline, true) void operator +(int f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/;+/
84 /+pragma(inline, true) void operator -(QFontComboBox.FontFilters.enum_type f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/;+/
85 /+pragma(inline, true) void operator -(QFontComboBox.FontFilters.enum_type f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/;+/
86 /+pragma(inline, true) void operator -(int f1, QFlags!(QFontComboBox.FontFilters.enum_type) f2)/+noexcept+/;+/
87 /+pragma(inline, true) QIncompatibleFlag operator |(QFontComboBox.FontFilters.enum_type f1, int f2)/+noexcept+/{return QIncompatibleFlag(int(f1)|f2);}+/
88 /+pragma(inline, true) void operator +(int f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/;+/
89 /+pragma(inline, true) void operator +(QFontComboBox.FontFilters.enum_type f1, int f2)/+noexcept+/;+/
90 /+pragma(inline, true) void operator -(int f1, QFontComboBox.FontFilters.enum_type f2)/+noexcept+/;+/
91 /+pragma(inline, true) void operator -(QFontComboBox.FontFilters.enum_type f1, int f2)/+noexcept+/;+/
92 
93 /+ Q_DECLARE_OPERATORS_FOR_FLAGS(QFontComboBox::FontFilters) +/