diff options
Diffstat (limited to 'src/gui/statemachine/qkeyeventtransition.cpp')
-rw-r--r-- | src/gui/statemachine/qkeyeventtransition.cpp | 157 |
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 |