diff options
Diffstat (limited to 'src/controls/FWebCtrl_GestureState.h')
-rwxr-xr-x | src/controls/FWebCtrl_GestureState.h | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/src/controls/FWebCtrl_GestureState.h b/src/controls/FWebCtrl_GestureState.h new file mode 100755 index 0000000..ba1bc50 --- /dev/null +++ b/src/controls/FWebCtrl_GestureState.h @@ -0,0 +1,168 @@ +// +// Open Service Platform +// Copyright (c) 2012 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. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +/** + * @file FWebCtrl_GestureState.h + * @brief The file contains the declaration of _TapGestureState, _PanningGestureState, _FlickGestureState and _PinchGestureState class. + * + * The file contains the declaration of _TapGestureState, _PanningGestureState, _FlickGestureState and _PinchGestureState class. + */ +#ifndef _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_ +#define _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_ + +#include <FUi_ITouchEventListener.h> + +namespace Tizen { namespace Graphics +{ +class Point; +}} // Tizen::Graphics + +namespace Tizen { namespace Ui +{ +class _Control; +class _TouchInfo; +}} // Tizen::Ui + +namespace Tizen { namespace Web { namespace Controls +{ + +class _Web; + +class _PinchGestureState + : public Tizen::Ui::_ITouchEventListener +{ +public: + _PinchGestureState(_Web* pWeb); + + virtual ~_PinchGestureState(void); + + void InitializeFactor(void); + + Tizen::Graphics::Point GetCenterPoint(const Tizen::Graphics::Point& firstFinger, const Tizen::Graphics::Point& secondFinger); + + double GetZoomFactor(const Tizen::Graphics::Point& firstFinger, const Tizen::Graphics::Point& secondFinger); + + virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + +private: + _Web* __pWebCore; + + int __baseDistance; + + int __distanceTolerance; +}; + +class _TapGestureState + : public Tizen::Ui::_ITouchEventListener +{ +public: + _TapGestureState(_Web* pWeb, _PinchGestureState* pPinchListener); + + virtual ~_TapGestureState(void); + + void OnLongPressGestureDetected(const Tizen::Ui::_TouchLongPressGestureDetector& gesture); + + virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + +private: + _Web* __pWebCore; + + _PinchGestureState* __pPinchListener; + + bool __longPressed; +}; + +class _DoubleTapGestureState + : public Tizen::Ui::_ITouchEventListener +{ +public: + _DoubleTapGestureState(_Web* pWeb); + + virtual ~_DoubleTapGestureState(void); + + virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + +private: + _Web* __pWebCore; +}; + +class _PanningGestureState + : public Tizen::Ui::_ITouchEventListener +{ +public: + _PanningGestureState(_Web* pWeb, _PinchGestureState* pPinchListener); + + virtual ~_PanningGestureState(void); + + virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + +private: + _Web* __pWebCore; + + _PinchGestureState* __pPinchListener; +}; + +class _FlickGestureState + : public Tizen::Ui::_ITouchEventListener +{ +public: + _FlickGestureState(_Web* pWeb); + + virtual ~_FlickGestureState(void); + + void OnFlickGestureDetected(const Tizen::Ui::_TouchFlickGestureDetector& gesture); + + virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + + virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo); + +private: + _Web* __pWebCore; + + Tizen::Graphics::Point __velocity; +}; + +}}} // Tizen::Web::Controls +#endif // _FWEB_CTRL_INTERNAL_GESTURE_STATE_H_ |