Init Tizen 2.2.1
[framework/osp/web.git] / src / controls / FWebCtrl_Web.h
index 7a40e57..5dc1c4a 100755 (executable)
 #include <FUi_Control.h>
 #include <FUi_ITouchFlickGestureEventListener.h>
 #include <FUi_ITouchLongPressGestureEventListener.h>
+#include <FUi_ITouchPinchGestureEventListener.h>
 #include <FUi_ITouchTapGestureEventListener.h>
+#include <FUiAnim_IVisualElementCaptureProvider.h>
 
 namespace Tizen { namespace Ui
 {
+class _AccessibilityElement;
 class _TouchInfo;
 }} // Tizen::Ui
 
@@ -47,6 +50,7 @@ namespace Tizen { namespace Graphics
 class Canvas;
 class Dimension;
 class Point;
+class FloatRectangle;
 }} // Tizen::Graphics
 
 namespace Tizen { namespace Web { namespace Controls
@@ -54,25 +58,37 @@ namespace Tizen { namespace Web { namespace Controls
 class _EflWebkit;
 class _WebSettingImpl;
 class _TapGestureState;
-class _DoubleTapGestureState;
 class _PanningGestureState;
 class _FlickGestureState;
 class _PinchGestureState;
+class _WebAccessibilityListener;
+class _WebAccessibilityFocusHandler;
+class WebSetting;
 
 enum _WebGestureType
 {
        WEB_GESTURE_TYPE_TAP,
-       WEB_GESTURE_TYPE_DOUBLE_TAP,
        WEB_GESTURE_TYPE_PANNING,
        WEB_GESTURE_TYPE_FLICK,
        WEB_GESTURE_TYPE_PINCH
 };
 
+enum _WebEdgeType
+{
+       WEB_EDGE_NONE = 1,
+       WEB_EDGE_LEFT = 1 << 1,
+       WEB_EDGE_RIGHT = 1 << 2,
+       WEB_EDGE_TOP = 1 << 3,
+       WEB_EDGE_BOTTOM = 1 << 4,
+};
+
 class _Web
        : public Tizen::Ui::_Control
-       , Tizen::Ui::_ITouchFlickGestureEventListener
-       , Tizen::Ui::_ITouchLongPressGestureEventListener
-       , Tizen::Ui::_ITouchTapGestureEventListener
+       , public Tizen::Ui::_ITouchFlickGestureEventListener
+       , public Tizen::Ui::_ITouchLongPressGestureEventListener
+       , public Tizen::Ui::_ITouchPinchGestureEventListener
+       , public Tizen::Ui::_ITouchTapGestureEventListener
+       , public Tizen::Ui::Animations::_IVisualElementCaptureProvider
        , virtual public Tizen::Base::Runtime::IEventListener
        , virtual public Tizen::Ui::_IUiEventListener
        , virtual public Tizen::Ui::_IUiEventPreviewer
@@ -92,40 +108,63 @@ public:
        void ChangeGesture(_WebGestureType type);
 
        Tizen::Graphics::Point GetAbsoluteCoordinate(Tizen::Graphics::Point relativePoint);
+       Tizen::Graphics::FloatPoint GetAbsoluteCoordinate(Tizen::Graphics::FloatPoint relativePoint);
 
        Tizen::Graphics::Point GetRelativeCoordinate(Tizen::Graphics::Point absolutePoint);
+       Tizen::Graphics::FloatPoint GetRelativeCoordinate(Tizen::Graphics::FloatPoint absolutePoint);
 
-       void SetWebSettingImpl(Tizen::Web::Controls::_WebSettingImpl* pWebSettingImpl);
+       WebSetting* GetSetting(void) const;
 
-       _WebSettingImpl* GetWebSettingImpl(void) const;
+       _EflWebkit* GetEflWebkit(void) const;
 
-       virtual result OnAttaching(const _Control* pParent);
+       Tizen::Graphics::FloatPoint GetTouchPosition(void) const;
+
+       void SetEdgeReachedEvent(_WebEdgeType type);
 
+       void SetFullScreenEntered(bool isFullScreenEntered);
+
+       void SetFocusEnd(bool focus);
+
+       bool IsFocusEnd(void) const;
+
+       bool CanOutOfEdgeLeft(float scrollDistanceX, int pageDistance);
+       bool CanOutOfEdgeRight(float scrollDistanceX, int pageDistance);
+       bool CanOutOfEdgeTop(float scrollDistanceY, int pageDistance);
+       bool CanOutOfEdgeBottom(float scrollDistanceY, int pageDistance);
+       bool CanConsumeTouchMoved(float scrollDistanceX, float scrollDistanceY);
+       virtual result OnAttaching(const _Control* pParent);
        virtual result OnBoundsChanging(const Tizen::Graphics::Rectangle& bounds);
+       virtual void OnBoundsChanged(void);
+       virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
 
        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);
 
-       virtual bool OnFlickGestureDetected(Tizen::Ui::_TouchFlickGestureDetector& gesture);
+       virtual bool OnPinchGestureStarted(Tizen::Ui::_TouchPinchGestureDetector& gesture);
+       virtual bool OnPinchGestureChanged(Tizen::Ui::_TouchPinchGestureDetector& gesture);
+       virtual bool OnPinchGestureFinished(Tizen::Ui::_TouchPinchGestureDetector& gesture);
+       virtual bool OnPinchGestureCanceled(Tizen::Ui::_TouchPinchGestureDetector& gesture);
 
+       virtual bool OnFlickGestureDetected(Tizen::Ui::_TouchFlickGestureDetector& gesture);
        virtual bool OnFlickGestureCanceled(Tizen::Ui::_TouchFlickGestureDetector& gesture);
 
        virtual bool OnLongPressGestureDetected(Tizen::Ui::_TouchLongPressGestureDetector& gesture);
-
        virtual bool OnLongPressGestureCanceled(Tizen::Ui::_TouchLongPressGestureDetector& gesture);
 
        virtual bool OnTapGestureDetected(Tizen::Ui::_TouchTapGestureDetector& gesture);
-
        virtual bool OnTapGestureCanceled(Tizen::Ui::_TouchTapGestureDetector& gesture);
 
-       virtual Tizen::Graphics::Canvas* OnCanvasRequestedN(const Tizen::Graphics::Dimension& size);
-
+       virtual Tizen::Graphics::Canvas* OnCanvasRequestedN(const Tizen::Graphics::FloatRectangle& size);
        virtual Tizen::Graphics::Bitmap* OnCapturedBitmapRequestedN(void);
+       virtual bool OnCaptureAcquire(Tizen::Graphics::BufferInfo& output);
+       virtual void OnCaptureReleased(void) {};
+
+       virtual bool OnKeyPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_KeyInfo& keyInfo);
+       virtual bool OnKeyReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_KeyInfo& keyInfo);
+       virtual void OnDrawFocus(void);
+       virtual bool OnFocusLost(const Tizen::Ui::_Control& source);
 
 private:
        _Web(const _Web& value);
@@ -144,32 +183,50 @@ private:
        Ewk_Touch_Event_Type GetEwkTouchEvent(Tizen::Ui::_TouchStatus touchStatus);
        Evas_Touch_Point_State GetEvasTouchState(Tizen::Ui::TouchStatus touchStatus);
 
-       void DumpPointList(void* pData);
-
 private:
        Tizen::Ui::_ITouchEventListener* __pGestureHandler;
 
-       Tizen::Web::Controls::_WebSettingImpl* __pWebSettingImpl;
-
        std::unique_ptr<_EflWebkit> __pEflWebkit;
 
+       std::unique_ptr<WebSetting> __pWebSetting;
+
        std::unique_ptr<Tizen::Ui::_TouchFlickGestureDetector> __pGestureFlick;
 
        std::unique_ptr<Tizen::Ui::_TouchLongPressGestureDetector> __pGestureLongPress;
 
+       std::unique_ptr<Tizen::Ui::_TouchPinchGestureDetector> __pGesturePinch;
+
        std::unique_ptr<Tizen::Ui::_TouchTapGestureDetector> __pGestureDoubleTap;
 
        std::unique_ptr<Tizen::Base::Collection::IListT<Tizen::Ui::_TouchInfo*> > __pTouchEventInfoList;
 
        std::unique_ptr<_TapGestureState> __pTapGestureHandler;
 
-       std::unique_ptr<_DoubleTapGestureState> __pDoubleTapGestureHandler;
-
        std::unique_ptr<_PanningGestureState> __pPanningGestureHandler;
 
        std::unique_ptr<_FlickGestureState> __pFlickGestureHandler;
 
        std::unique_ptr<_PinchGestureState> __pPinchGestureHandler;
+
+       std::unique_ptr<_WebAccessibilityListener> __pWebAccessibilityListener;
+
+       std::unique_ptr<_WebAccessibilityFocusHandler> __pWebAccessibilityFocusHandler;
+
+       _WebGestureType __gestureType;
+
+       int __edgeType;
+
+       bool __focus;
+
+       Tizen::Ui::_AccessibilityElement* __pTextElement;
+
+       Tizen::Graphics::FloatPoint __previousTouchedPosition;
+
+       bool __isFullScreenEntered;
+
+       bool __isRotated;
+
+       bool __touchPressed;
 }; // _Web
 
 }}} // Tizen::Web::Controls