X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fevents%2Fgesture-event-processor.h;h=9ae5d6f139487e1982a16eda84b9f894312cfeed;hb=a4eb68faf1e75d213c951a7d4d1b67727247917a;hp=78c252f6a7fb868e54643d0d69e9ee7c5f50f4ea;hpb=b836da3012e648299bf46f536ddf704794e8f5f1;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/events/gesture-event-processor.h b/dali/internal/event/events/gesture-event-processor.h index 78c252f..9ae5d6f 100644 --- a/dali/internal/event/events/gesture-event-processor.h +++ b/dali/internal/event/events/gesture-event-processor.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H__ -#define __DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H__ +#ifndef DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H +#define DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,10 +21,11 @@ // INTERNAL INCLUDES #include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include namespace Dali { @@ -33,8 +34,7 @@ struct Gesture; namespace Integration { -struct GestureEvent; -class GestureManager; + class RenderController; } @@ -47,6 +47,7 @@ namespace Internal { class Stage; +class Scene; /** * Gesture Event Processing: @@ -60,12 +61,10 @@ public: /** * Create a gesture event processor. - * @param[in] stage The stage. * @param[in] updateManager The update manager - * @param[in] gestureManager The gesture manager * @param[in] renderController The render controller */ - GestureEventProcessor( Stage& stage, SceneGraph::UpdateManager& updateManager, Integration::GestureManager& gestureManager, Integration::RenderController& renderController ); + GestureEventProcessor( SceneGraph::UpdateManager& updateManager, Integration::RenderController& renderController ); /** * Non-virtual destructor; GestureProcessor is not a base class @@ -75,10 +74,11 @@ public: public: // To be called by EventProcessor /** - * This function is called by Core whenever a gesture event occurs. - * @param[in] event The event that has occurred. + * This function is called by Core whenever a touch event occurs + * @param[in] scene The scene + * @param[in] event The event that has occurred */ - void ProcessGestureEvent(const Integration::GestureEvent& event); + void ProcessTouchEvent( Scene& scene, const Integration::TouchEvent& event); public: // To be called by gesture detectors @@ -86,7 +86,7 @@ public: // To be called by gesture detectors * This method adds the specified gesture detector to the relevant gesture processor. * @param[in] gestureDetector The gesture detector to add */ - void AddGestureDetector(GestureDetector* gestureDetector); + void AddGestureDetector(GestureDetector* gestureDetector, Scene& scene); /** * This method removes the specified gesture detector from the relevant gesture processor. @@ -101,12 +101,6 @@ public: // To be called by gesture detectors void GestureDetectorUpdated(GestureDetector* gestureDetector); /** - * This method is called by GestureDetectors on Started or Continue state events. - * Status is queried and reset by Core in ProcessEvents - */ - void SetUpdateRequired(); - - /** * Called by GestureDetectors to set the gesture properties in the update thread. * @param[in] gesture The gesture whose values will be used in the Update object. * @note If we are in the middle of processing the gesture being set, then this call is ignored. @@ -237,6 +231,39 @@ public: // Called by Core */ void SetPanGestureMultitapSmoothingRange( int32_t value ); + /** + * @brief Sets the minimum distance required to start a pan event + * + * @param[in] value Distance in pixels + */ + void SetPanGestureMinimumDistance( int32_t value ); + + /** + * @brief Sets the minimum number of touch events required to start a pan + * + * @param[in] value Number of touch events + */ + void SetPanGestureMinimumPanEvents( int32_t value ); + + /** + * @brief Sets the minimum distance required to start a pinch event + * + * @param[in] value Distance in pixels + */ + void SetPinchGestureMinimumDistance( float value); + + /** + * @brief Sets the minimum holding time required to be recognized as a long press gesture + * + * @param[in] value The time value in milliseconds + */ + void SetLongPressMinimumHoldingTime( uint32_t value ); + + /** + * @return The minimum holding time required to be recognized as a long press gesture in milliseconds + */ + uint32_t GetLongPressMinimumHoldingTime() const; + public: // needed for PanGesture /** @@ -252,20 +279,19 @@ private: private: - Stage& mStage; - Integration::GestureManager& mGestureManager; - LongPressGestureProcessor mLongPressGestureProcessor; PanGestureProcessor mPanGestureProcessor; PinchGestureProcessor mPinchGestureProcessor; TapGestureProcessor mTapGestureProcessor; + RotationGestureProcessor mRotationGestureProcessor; Integration::RenderController& mRenderController; - bool mUpdateRequired; ///< set to true by gesture detectors if they require a Core::Update + int32_t envOptionMinimumPanDistance; + int32_t envOptionMinimumPanEvents; }; } // namespace Internal } // namespace Dali -#endif // __DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H__ +#endif // DALI_INTERNAL_GESTURE_EVENT_PROCESSOR_H