1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QEVENTTRANSITION_H
5#define QEVENTTRANSITION_H
6
7#include <QtCore/qcoreevent.h>
8#include <QtStateMachine/qabstracttransition.h>
9
10QT_BEGIN_NAMESPACE
11
12class QEventTransitionPrivate;
13class Q_STATEMACHINE_EXPORT QEventTransition : public QAbstractTransition
14{
15 Q_OBJECT
16 Q_PROPERTY(QObject* eventSource READ eventSource WRITE setEventSource
17 BINDABLE bindableEventSource)
18 Q_PROPERTY(QEvent::Type eventType READ eventType WRITE setEventType
19 BINDABLE bindableEventType)
20public:
21 QEventTransition(QState *sourceState = nullptr);
22 QEventTransition(QObject *object, QEvent::Type type, QState *sourceState = nullptr);
23 ~QEventTransition();
24
25 QObject *eventSource() const;
26 void setEventSource(QObject *object);
27 QBindable<QObject*> bindableEventSource();
28
29 QEvent::Type eventType() const;
30 void setEventType(QEvent::Type type);
31 QBindable<QEvent::Type> bindableEventType();
32
33protected:
34 bool eventTest(QEvent *event) override;
35 void onTransition(QEvent *event) override;
36
37 bool event(QEvent *e) override;
38
39protected:
40 QEventTransition(QEventTransitionPrivate &dd, QState *parent);
41 QEventTransition(QEventTransitionPrivate &dd, QObject *object,
42 QEvent::Type type, QState *parent);
43
44private:
45 Q_DISABLE_COPY(QEventTransition)
46 Q_DECLARE_PRIVATE(QEventTransition)
47};
48
49QT_END_NAMESPACE
50
51#endif
52

source code of qtscxml/src/statemachine/qeventtransition.h