1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef QRUBBERBAND_H
#define QRUBBERBAND_H
#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qwidget.h>
QT_REQUIRE_CONFIG(rubberband);
QT_BEGIN_NAMESPACE
class QRubberBandPrivate;
class QStyleOptionRubberBand;
class Q_WIDGETS_EXPORT QRubberBand : public QWidget
{
Q_OBJECT
public:
enum Shape { Line, Rectangle };
explicit QRubberBand(Shape, QWidget * = nullptr);
~QRubberBand();
Shape shape() const;
void setGeometry(const QRect &r);
inline void setGeometry(int x, int y, int w, int h);
inline void move(int x, int y);
inline void move(const QPoint &p)
{ move(p.x(), p.y()); }
inline void resize(int w, int h)
{ setGeometry(geometry().x(), geometry().y(), w, h); }
inline void resize(const QSize &s)
{ resize(s.width(), s.height()); }
protected:
bool event(QEvent *e) override;
void paintEvent(QPaintEvent *) override;
void changeEvent(QEvent *) override;
void showEvent(QShowEvent *) override;
void resizeEvent(QResizeEvent *) override;
void moveEvent(QMoveEvent *) override;
virtual void initStyleOption(QStyleOptionRubberBand *option) const;
private:
Q_DECLARE_PRIVATE(QRubberBand)
};
inline void QRubberBand::setGeometry(int ax, int ay, int aw, int ah)
{ setGeometry(QRect(ax, ay, aw, ah)); }
inline void QRubberBand::move(int ax, int ay)
{ setGeometry(ax, ay, width(), height()); }
QT_END_NAMESPACE
#endif // QRUBBERBAND_H
|