Init Tizen 2.2.1
[framework/osp/web.git] / src / controls / inc / FWebCtrl_CertificateConfirmPopup.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file        FWebCtrl_CertificateConfirmPopup.h
20  * @brief       The file contains the definition of _CertificateConfirmPopup class.
21  */
22
23 #ifndef _FWEB_CTRL_INTERNAL_CERTIFICATE_CONFIRM_POPUP_H_
24 #define _FWEB_CTRL_INTERNAL_CERTIFICATE_CONFIRM_POPUP_H_
25
26 #include <EWebKit2.h>
27 #include <unique_ptr.h>
28 #include <FBaseColIList.h>
29 #include <FBaseString.h>
30 #include <FUiIPropagatedKeyEventListener.h>
31 #include "FWebCtrl_WebPopup.h"
32
33
34 namespace Tizen { namespace Web { namespace Controls
35 {
36 class _WebImpl;
37
38 enum _IdButtonCertificatePopup
39 {
40         ID_BUTTON_CERTIFICATE_ALLOW,
41         ID_BUTTON_CERTIFICATE_CANCEL,
42         ID_BUTTON_CERTIFICATE_VIEW,
43         ID_BUTTON_CERTIFICATE_CLOSE
44 };
45
46 enum _CertificatePopupMode
47 {
48         CERTIFICATE_POPUP_MODE_USER_CONFIRM,
49         CERTIFICATE_POPUP_MODE_VIEW
50 };
51
52 class _CertificateConfirmPopup
53         : public _WebPopup
54         , public Tizen::Ui::IPropagatedKeyEventListener
55 {
56
57 public:
58         /**
59          * Constructor
60          */
61         _CertificateConfirmPopup(void);
62
63         /**
64          * Destructor
65          */
66         virtual ~_CertificateConfirmPopup(void);
67
68         result Construct(_CertificatePopupMode certPopupMode, Ewk_Certificate_Policy_Decision* pPolicy, Tizen::Web::Controls::_CertificateConfirmPopup* pParent = null);
69
70         void HandleUserAction(bool allow);
71
72         bool GetConfirmResult() const;
73
74         void AddCertificateDb(const Tizen::Base::String& pem, bool allow);
75
76         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
77
78         virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
79         virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
80         virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
81         virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
82         virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
83
84 private:
85         _CertificateConfirmPopup(const _CertificateConfirmPopup&);
86
87         _CertificateConfirmPopup& operator =(const _CertificateConfirmPopup&);
88
89         result GetMessageFromPolicy(Tizen::Base::String& message);
90
91         result GenerateCertifiate(Tizen::Base::String& certString);
92
93         Tizen::Base::String GetStringOfToken(const Tizen::Base::String& parseString, const Tizen::Base::String& parseToken);
94
95         virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
96
97 private:
98         _CertificatePopupMode __certPopupMode;
99         bool __confirm;
100         bool __reaction;
101
102         Ewk_Certificate_Policy_Decision* __pCertificatePolicyData;
103         _CertificateConfirmPopup* __pParent;
104         std::unique_ptr<_CertificateConfirmPopup> __pCertificatePopup;
105 }; // _CertificateConfirmPopup
106
107 }}} // Tizen::Web::Controls
108 #endif // _FWEB_CTRL_INTERNAL_CERTIFICATE_CONFIRM_POPUP_H_