diff -r 000000000000 -r 1450b09d0cfd qstmgesturelib/qstmstateengineconfig.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qstmgesturelib/qstmstateengineconfig.cpp Tue May 04 12:39:35 2010 +0300 @@ -0,0 +1,163 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "qstmstateengineconfig.h" +#include "qstmstateengine.h" +#include "qstmutils.h" + +using namespace qstmUiEventEngine ; + +QStm_StateEngineConfiguration::QStm_StateEngineConfiguration() : + m_touchAreaShape(ERectangle), + m_holdAreaShape(ERectangle) +{ + m_uiEventSender = new QStm_UiEventSender() ; +} + +QStm_StateEngineConfiguration::~QStm_StateEngineConfiguration() +{ + delete m_uiEventSender ; +} + +void QStm_StateEngineConfiguration::setTolerance(long fingersize_mm, QPoint& tolerance, QStm_AreaShape shape) +{ + long s = QStm_Utils::mm2Pixels(fingersize_mm) / 2; + switch(shape) + { + case EEllipse: + tolerance.setX((s * 2) / 3); + tolerance.setY(s); + break ; + case ERectangle: + case ECircle: + default: + tolerance.setX(s); + tolerance.setY(s); + break ; + } +} + +void QStm_StateEngineConfiguration::setTouchTimeArea(long fingersize_mm) +{ + setTolerance(fingersize_mm, m_touchTimeTolerance, m_touchAreaShape); + + // make sure that both touch areas are defined, so if the touch area is not yet set, + // use the same as for touch time area. + if (m_touchTolerance.x() == 0) + { + setTouchArea(fingersize_mm) ; + } +} + + +void QStm_StateEngineConfiguration::setTouchArea(long fingersize_mm) +{ + setTolerance(fingersize_mm, m_touchTolerance, m_touchAreaShape); +} + +void QStm_StateEngineConfiguration::setMoveTolerance(long fingersize_mm) +{ + setTolerance(fingersize_mm, m_moveTolerance, m_touchAreaShape); +} + +QStm_AreaShape QStm_StateEngineConfiguration::getTouchAreaShape() +{ + return m_touchAreaShape ; +} + +void QStm_StateEngineConfiguration::setTouchAreaShape(QStm_AreaShape aShape) +{ + this->m_touchAreaShape = aShape ; +} + +unsigned int QStm_StateEngineConfiguration::getTouchTimeout() +{ + return m_touchTimerLimit ; +} + +void QStm_StateEngineConfiguration::setTouchTimeout(unsigned int a) +{ + m_touchTimerLimit = a ; +} + + +void QStm_StateEngineConfiguration::setHoldArea(long fingersize_mm) +{ + setTolerance(fingersize_mm, m_holdTolerance, m_holdAreaShape); +} + +QStm_AreaShape QStm_StateEngineConfiguration::getHoldAreaShape() +{ + return m_holdAreaShape ; +} + + +void QStm_StateEngineConfiguration::setHoldAreaShape(QStm_AreaShape aShape) +{ + m_holdAreaShape = aShape ; +} + + +unsigned int QStm_StateEngineConfiguration::getHoldTimeout() +{ + return m_holdTimerLimit ; +} + +void QStm_StateEngineConfiguration::setHoldTimeout(unsigned int a) +{ + m_holdTimerLimit = a ; +} + +unsigned int QStm_StateEngineConfiguration::getTouchSuppressTimeout() +{ + return m_suppressTimerLimit ; +} + + +void QStm_StateEngineConfiguration::setTouchSuppressTimeout(unsigned int a) +{ + m_suppressTimerLimit = a ; +} + +unsigned int QStm_StateEngineConfiguration::getMoveSuppressTimeout() +{ + return m_moveSuppressTimerLimit ; +} + +void QStm_StateEngineConfiguration::setMoveSuppressTimeout(unsigned int a) +{ + m_moveSuppressTimerLimit = a ; +} + +void QStm_StateEngineConfiguration::enableLogging(bool a) +{ + m_enableLogging = a ; + m_uiEventSender->setLogging(a) ; +} + +bool QStm_StateEngineConfiguration::addUiEventObserver(QStm_UiEventObserverIf* observer) +{ + // The event sender handles the observers + return m_uiEventSender->addObserver(observer) ; +} + +bool QStm_StateEngineConfiguration::removeUiEventObserver(QStm_UiEventObserverIf* observer) +{ + // The event sender handles the observers + return m_uiEventSender->removeObserver(observer) ; +} +