Merge "remove link in brief tag" into tizen_2.2
[framework/osp/web.git] / src / controls / FWebCtrl_WebImpl.h
index 3253c16..fc7a729 100755 (executable)
 
 #include <unique_ptr.h>
 #include <EWebKit2.h>
+#include <FBaseColArrayList.h>
 #include <FBaseString.h>
 #include <FUiIActionEventListener.h>
 #include <FUiIOrientationEventListener.h>
 #include <FUiITextEventListener.h>
 #include <FWebCtrlILoadingListener.h>
 #include <FUi_ContainerImpl.h>
+#include "FWebCtrl_CertificateConfirmPopup.h"
 #include "FWebCtrl_IWebEventListener.h"
 #include "FWebCtrl_UserConfirmPopup.h"
-#include "FWebCtrl_CertificateConfirmPopup.h"
 
 namespace Tizen { namespace Base {  namespace Collection
 {
@@ -57,6 +58,11 @@ namespace Tizen { namespace Net { namespace Http {
 class HttpHeader;
 }}} // Tizen::Net::Http
 
+namespace Tizen { namespace System
+{
+class _VibratorImpl;
+}} // Tizen::Sytem
+
 namespace Tizen { namespace Ui
 {
 class Contorl;
@@ -96,11 +102,12 @@ class _WebPresenter;
 class _JsBridgeComparer;
 class _JsBridgeHashCodeProvider;
 class _AuthConfirmPopup;
-class _GeolocationConfirmPopup;
 class _PromptPopup;
+class _GeolocationConfirmPopup;
 class _WebDataHandler;
 class _SelectBox;
 class _InputPickerPopup;
+class _FormDataWindow;
 
 struct _TextSearch
 {
@@ -120,11 +127,17 @@ enum _SearchType {
        SEARCH_NEXT_ASYNC
 };
 
+enum _WebPopupCloseId
+{
+       ID_CERTIFICATE_CONFIRM_POPUP_CLOSE,
+       ID_PROMPT_POPUP_CLOSE,
+       ID_USER_CONFIRM_POPUP_CLOSE
+};
+
 class _WebImpl
        : public Tizen::Ui::_ContainerImpl
        , public Tizen::Ui::ITextEventListener
        , public Tizen::Web::Controls::_IWebEventListener
-       , virtual public Tizen::Base::Runtime::IEventListener
 {
 public:
        _WebImpl(Web* pWeb, Tizen::Ui::_Control* pCore);
@@ -187,7 +200,7 @@ public:
 
        Tizen::Base::String GetTextFromBlock(void) const;
 
-       Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode) const;
+       Tizen::Base::String* EvaluateJavascriptN(const Tizen::Base::String& scriptCode);
 
        bool IsPrivateBrowsingEnabled(void) const;
 
@@ -306,7 +319,15 @@ public:
 
        void SetCertificateRequested(bool arg);
        bool IsCertificateRequested(void) const;
+       void SetCertificateConfirmed(bool arg);
        bool IsCertificateConfirmed(void) const;
+       void ClearCertificateDb(void);
+
+       void SetOrientationChanged(bool arg);
+       bool IsOrientationChanged(void) const;
+
+       result VibrationRequested(uint64_t duration);
+       void VibrationCanceled(void);
 
        bool IsFooterVisible(void) const;
 
@@ -320,6 +341,7 @@ public:
 
        void SetKeypadOpened(bool isKeypadOpened);
 
+       bool IsPresenterAlived(_WebPresenter* pPresenter) const;
        Tizen::Graphics::Rectangle GetPreviousKeypadBounds(void) const;
 
        void SetPreviousKeypadBounds(Tizen::Graphics::Rectangle& bounds);
@@ -328,8 +350,10 @@ public:
 
        result ShowCertificateConfirmPopup(_CertificatePopupMode userConfirmMode, Ewk_Certificate_Policy_Decision *pPolicy);
 
-       result ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy);
-       result ShowUserConfirmPopupAsync(_UserConfirmMode userConfirmMode, void* pPolicy);
+       result ShowPromptPopup(Tizen::Base::String msg = L"", Tizen::Base::String defVal = L"");
+
+       result ShowUserConfirmPopup(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
+       result ShowUserConfirmPopupAsync(_UserConfirmMode userConfirmMode, void* pPolicy, Tizen::Base::String msg = L"");
 
        Tizen::Ui::Controls::_Form* GetParentFormCore(Tizen::Ui::_Control* pControlCore);
 
@@ -357,12 +381,14 @@ public:
 
        virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
 
-       virtual result OnAttachedToMainTree(void);
+       virtual result OnPreAttachedToMainTree(void);
 
        virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
 
        virtual void OnAncestorVisibleStateChanged(const Tizen::Ui::_Control& control);
 
+       virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
        static _WebImpl* CreateWebImplN(Web* pControl, const Tizen::Graphics::Rectangle& bounds);
 
        static _WebImpl* CreateWebImplN(Web* pControl, const Tizen::Graphics::FloatRectangle& bounds);
@@ -379,6 +405,14 @@ public:
 
        const Tizen::Base::String GetRedirectUri(const Tizen::Base::String& originuri, const Tizen::Base::String& currenturi, const Tizen::Base::String& mime);
 
+       void SetFormDataList(Eina_List* pFormDataList);
+
+       bool IsFormDataWindowVisible(void) const;
+
+       result ShowFormDataWindow(const Tizen::Graphics::Rectangle& windowRect, Evas_Object* pWebView);
+
+       void HideFormDataWindow(bool delWindow = true);
+
 private:
        result InitializeSetting(void);
        result InitJsBridgeList(void);
@@ -406,6 +440,8 @@ private:
        bool __isRedirectRequested;
        bool __isCertificateRequested;
        bool __isCertificateConfirmed;
+       bool __isOrientationChanged;
+       bool __isFormDataVisible;
        Tizen::Graphics::Rectangle __keypadBounds;
 
        _Web* __pWebCore;
@@ -430,18 +466,27 @@ private:
        std::unique_ptr<_AuthConfirmPopup> __pAuthPopup;
 
        std::unique_ptr<_UserConfirmPopup> __pUserConfirmPopup;
-
+       std::unique_ptr< _PromptPopup > __pPromptPopup;
        std::unique_ptr<_CertificateConfirmPopup>  __pCertConfirmPopup;
 
        std::unique_ptr<_SelectBox> __pSelectBox;
        std::unique_ptr<_InputPickerPopup> __pDatePicker;
        std::unique_ptr<_InputPickerPopup> __pColorPicker;
+       std::unique_ptr<_FormDataWindow> __pFormDataWindow;
+
+       std::unique_ptr<Tizen::System::_VibratorImpl> __pVibrator;
 
        Tizen::Base::Runtime::Mutex __mutex;
 
        _TextSearch __textSearch;
 
+       Tizen::Base::Collection::ArrayList __callbackList;
+
        DecisionPolicy __policy;
+
+       Tizen::Base::String __defaultUserAgent;
+
+       Eina_List* __pFormDataList;
 }; // _WebImpl
 
 }}} // Tizen::Web::Controls