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.label;
13 extern(C++):
14 
15 import qt.config;
16 import qt.core.coreevent;
17 import qt.core.namespace;
18 import qt.core.size;
19 import qt.core.string;
20 import qt.gui.event;
21 import qt.gui.movie;
22 import qt.gui.pixmap;
23 import qt.gui.textdocument;
24 import qt.helpers;
25 import qt.widgets.frame;
26 import qt.widgets.widget;
27 version(QT_NO_PICTURE){}else
28     import qt.gui.picture;
29 
30 /+ QT_REQUIRE_CONFIG(label); +/
31 
32 
33 
34 extern(C++, class) struct QLabelPrivate;
35 
36 /// Binding for C++ class [QLabel](https://doc.qt.io/qt-6/qlabel.html).
37 class /+ Q_WIDGETS_EXPORT +/ QLabel : QFrame
38 {
39     mixin(Q_OBJECT);
40     /+ Q_PROPERTY(QString text READ text WRITE setText)
41     Q_PROPERTY(Qt::TextFormat textFormat READ textFormat WRITE setTextFormat)
42     Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
43     Q_PROPERTY(bool scaledContents READ hasScaledContents WRITE setScaledContents)
44     Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
45     Q_PROPERTY(bool wordWrap READ wordWrap WRITE setWordWrap)
46     Q_PROPERTY(int margin READ margin WRITE setMargin)
47     Q_PROPERTY(int indent READ indent WRITE setIndent)
48     Q_PROPERTY(bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
49     Q_PROPERTY(Qt::TextInteractionFlags textInteractionFlags READ textInteractionFlags
50                WRITE setTextInteractionFlags)
51     Q_PROPERTY(bool hasSelectedText READ hasSelectedText)
52     Q_PROPERTY(QString selectedText READ selectedText) +/
53 
54 public:
55     /+ explicit +/this(QWidget parent=null, /+ Qt:: +/qt.core.namespace.WindowFlags f=/+ Qt:: +/qt.core.namespace.WindowFlags());
56     /+ explicit +/this(ref const(QString) text, QWidget parent=null, /+ Qt:: +/qt.core.namespace.WindowFlags f=/+ Qt:: +/qt.core.namespace.WindowFlags());
57     ~this();
58 
59     final QString text() const;
60 
61 /+ #if QT_DEPRECATED_SINCE(6,6) +/
62     final QPixmap pixmap(/+ Qt:: +/qt.core.namespace.ReturnByValueConstant) const { return pixmap(); }
63 /+ #endif +/
64     final QPixmap pixmap() const;
65 
66 /+ #ifndef QT_NO_PICTURE
67 #if QT_DEPRECATED_SINCE(6,6) +/
68     version(QT_NO_PICTURE){}else
69     {
70         final QPicture picture(/+ Qt:: +/qt.core.namespace.ReturnByValueConstant) const { return picture(); }
71     /+ #endif +/
72         final QPicture picture() const;
73     }
74 /+ #endif
75 #if QT_CONFIG(movie) +/
76     final QMovie movie() const;
77 /+ #endif +/
78 
79     final /+ Qt:: +/qt.core.namespace.TextFormat textFormat() const;
80     final void setTextFormat(/+ Qt:: +/qt.core.namespace.TextFormat);
81 
82     /*final QTextDocument.ResourceProvider resourceProvider() const;
83     final void setResourceProvider(ref const(QTextDocument.ResourceProvider) provider);*/
84 
85     final /+ Qt:: +/qt.core.namespace.Alignment alignment() const;
86     final void setAlignment(/+ Qt:: +/qt.core.namespace.Alignment);
87 
88     final void setWordWrap(bool on);
89     final bool wordWrap() const;
90 
91     final int indent() const;
92     final void setIndent(int);
93 
94     final int margin() const;
95     final void setMargin(int);
96 
97     final bool hasScaledContents() const;
98     final void setScaledContents(bool);
99     override QSize sizeHint() const;
100     override QSize minimumSizeHint() const;
101     version(QT_NO_SHORTCUT){}else
102     {
103         final void setBuddy(QWidget );
104         final QWidget buddy() const;
105     }
106     override int heightForWidth(int) const;
107 
108     final bool openExternalLinks() const;
109     final void setOpenExternalLinks(bool open);
110 
111     final void setTextInteractionFlags(/+ Qt:: +/qt.core.namespace.TextInteractionFlags flags);
112     final /+ Qt:: +/qt.core.namespace.TextInteractionFlags textInteractionFlags() const;
113 
114     final void setSelection(int, int);
115     final bool hasSelectedText() const;
116     final QString selectedText() const;
117     final int selectionStart() const;
118 
119 public /+ Q_SLOTS +/:
120     @QSlot final void setText(ref const(QString) );
121     @QSlot final void setPixmap(ref const(QPixmap) );
122 /+ #ifndef QT_NO_PICTURE +/
123     version(QT_NO_PICTURE){}else
124     {
125         @QSlot final void setPicture(ref const(QPicture) );
126     }
127 /+ #endif
128 #if QT_CONFIG(movie) +/
129     @QSlot final void setMovie(QMovie movie);
130 /+ #endif +/
131     @QSlot final void setNum(int);
132     @QSlot final void setNum(double);
133     @QSlot final void clear();
134 
135 /+ Q_SIGNALS +/public:
136     @QSignal final void linkActivated(ref const(QString) link);
137     @QSignal final void linkHovered(ref const(QString) link);
138 
139 protected:
140     override bool event(QEvent e);
141     override void keyPressEvent(QKeyEvent ev);
142     override void paintEvent(QPaintEvent );
143     override void changeEvent(QEvent );
144     override void mousePressEvent(QMouseEvent ev);
145     override void mouseMoveEvent(QMouseEvent ev);
146     override void mouseReleaseEvent(QMouseEvent ev);
147     version(QT_NO_CONTEXTMENU){}else
148     {
149         override void contextMenuEvent(QContextMenuEvent ev);
150     }
151     override void focusInEvent(QFocusEvent ev);
152     override void focusOutEvent(QFocusEvent ev);
153     override bool focusNextPrevChild(bool next);
154 
155 
156 private:
157     /+ Q_DISABLE_COPY(QLabel) +/
158     /+ Q_DECLARE_PRIVATE(QLabel) +/
159 /+ #if QT_CONFIG(movie)
160     Q_PRIVATE_SLOT(d_func(), void _q_movieUpdated(const QRect&))
161     Q_PRIVATE_SLOT(d_func(), void _q_movieResized(const QSize&))
162 #endif
163     Q_PRIVATE_SLOT(d_func(), void _q_linkHovered(const QString &))
164 
165 #ifndef QT_NO_SHORTCUT
166     Q_PRIVATE_SLOT(d_func(), void _q_buddyDeleted())
167 #endif +/
168     /+ friend class QTipLabel; +/
169     /+ friend class QMessageBoxPrivate; +/
170     /+ friend class QBalloonTip; +/
171     mixin(CREATE_CONVENIENCE_WRAPPERS);
172 }
173