summaryrefslogtreecommitdiffstats
path: root/src/gui/statemachine/qkeyeventtransition.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/statemachine/qkeyeventtransition.cpp')
-rw-r--r--src/gui/statemachine/qkeyeventtransition.cpp157
1 files changed, 157 insertions, 0 deletions
diff --git a/src/gui/statemachine/qkeyeventtransition.cpp b/src/gui/statemachine/qkeyeventtransition.cpp
new file mode 100644
index 0000000..a4e882d
--- /dev/null
+++ b/src/gui/statemachine/qkeyeventtransition.cpp
@@ -0,0 +1,157 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the $MODULE$ of the Qt Toolkit.
+**
+** $TROLLTECH_DUAL_LICENSE$
+**
+****************************************************************************/
+
+#include "qkeyeventtransition.h"
+#include "qbasickeyeventtransition_p.h"
+
+#if defined(QT_EXPERIMENTAL_SOLUTION)
+# include "qeventtransition_p.h"
+#else
+# include <private/qeventtransition_p.h>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QKeyEventTransition
+
+ \brief The QKeyEventTransition class provides a transition for key events.
+
+ \ingroup statemachine
+
+ QKeyEventTransition is part of \l{The State Machine Framework}.
+
+ \sa QState::addTransition()
+*/
+
+/*!
+ \property QKeyEventTransition::key
+
+ \brief the key that this key event transition is associated with
+*/
+
+class QKeyEventTransitionPrivate : public QEventTransitionPrivate
+{
+ Q_DECLARE_PUBLIC(QKeyEventTransition)
+public:
+ QKeyEventTransitionPrivate() {}
+
+ QBasicKeyEventTransition *transition;
+};
+
+/*!
+ Constructs a new key event transition with the given \a sourceState.
+*/
+QKeyEventTransition::QKeyEventTransition(QState *sourceState)
+ : QEventTransition(*new QKeyEventTransitionPrivate, sourceState)
+{
+ Q_D(QKeyEventTransition);
+ d->transition = new QBasicKeyEventTransition();
+}
+
+/*!
+ Constructs a new key event transition for events of the given \a type for
+ the given \a object, with the given \a key and \a sourceState.
+*/
+QKeyEventTransition::QKeyEventTransition(QObject *object, QEvent::Type type,
+ int key, QState *sourceState)
+ : QEventTransition(*new QKeyEventTransitionPrivate, object, type, sourceState)
+{
+ Q_D(QKeyEventTransition);
+ d->transition = new QBasicKeyEventTransition(type, key);
+}
+
+/*!
+ Constructs a new key event transition for events of the given \a type for
+ the given \a object, with the given \a key, \a targets and \a sourceState.
+*/
+QKeyEventTransition::QKeyEventTransition(QObject *object, QEvent::Type type,
+ int key, const QList<QAbstractState*> &targets,
+ QState *sourceState)
+ : QEventTransition(*new QKeyEventTransitionPrivate, object, type, targets, sourceState)
+{
+ Q_D(QKeyEventTransition);
+ d->transition = new QBasicKeyEventTransition(type, key);
+}
+
+/*!
+ Destroys this key event transition.
+*/
+QKeyEventTransition::~QKeyEventTransition()
+{
+ Q_D(QKeyEventTransition);
+ delete d->transition;
+}
+
+/*!
+ Returns the key that this key event transition checks for.
+*/
+int QKeyEventTransition::key() const
+{
+ Q_D(const QKeyEventTransition);
+ return d->transition->key();
+}
+
+/*!
+ Sets the key that this key event transition will check for.
+*/
+void QKeyEventTransition::setKey(int key)
+{
+ Q_D(QKeyEventTransition);
+ d->transition->setKey(key);
+}
+
+/*!
+ Returns the keyboard modifiers that this key event transition checks for.
+*/
+Qt::KeyboardModifiers QKeyEventTransition::modifiers() const
+{
+ Q_D(const QKeyEventTransition);
+ return d->transition->modifiers();
+}
+
+/*!
+ Sets the keyboard \a modifiers that this key event transition will check
+ for.
+*/
+void QKeyEventTransition::setModifiers(Qt::KeyboardModifiers modifiers)
+{
+ Q_D(QKeyEventTransition);
+ d->transition->setModifiers(modifiers);
+}
+
+/*!
+ \reimp
+*/
+bool QKeyEventTransition::testEventCondition(QEvent *event) const
+{
+ Q_D(const QKeyEventTransition);
+ d->transition->setEventType(event->type());
+ return QAbstractTransitionPrivate::get(d->transition)->callEventTest(event);
+}
+
+/*!
+ \reimp
+*/
+bool QKeyEventTransition::eventTest(QEvent *event) const
+{
+ return QEventTransition::eventTest(event);
+}
+
+/*!
+ \reimp
+*/
+void QKeyEventTransition::onTransition()
+{
+ QEventTransition::onTransition();
+}
+
+QT_END_NAMESPACE