f02de31cb8592efd4a4542805ff3f2a0800fda24
[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 <FBaseString.h>
29 #include <FUiIPropagatedKeyEventListener.h>
30 #include "FWebCtrl_WebPopup.h"
31
32
33 namespace Tizen { namespace Web { namespace Controls
34 {
35 class _WebImpl;
36
37 enum _IdButtonCertificatePopup
38 {
39         ID_BUTTON_CERTIFICATE_ALLOW,
40         ID_BUTTON_CERTIFICATE_CANCEL,
41         ID_BUTTON_CERTIFICATE_VIEW,
42         ID_BUTTON_CERTIFICATE_CLOSE
43 };
44
45 enum _CertificatePopupMode
46 {
47         CERTIFICATE_POPUP_MODE_USER_CONFIRM,
48         CERTIFICATE_POPUP_MODE_VIEW
49 };
50
51 class _CertificateConfirmPopup
52         : public _WebPopup
53         , public Tizen::Ui::IPropagatedKeyEventListener
54 {
55
56 public:
57         /**
58          * Constructor
59          */
60         _CertificateConfirmPopup(void);
61
62         /**
63          * Destructor
64          */
65         virtual ~_CertificateConfirmPopup(void);
66
67         result Construct(_CertificatePopupMode certPopupMode, Ewk_Certificate_Policy_Decision* pPolicy, Tizen::Web::Controls::_WebImpl* pImpl);
68
69         void HandleUserAction(bool allow);
70
71         bool GetConfirmResult() const;
72
73         void AddCertificateDb(const Tizen::Base::String& pem, bool allow);
74
75         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
76
77         virtual bool  OnKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
78         virtual bool  OnKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
79         virtual bool  OnPreviewKeyPressed (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
80         virtual bool  OnPreviewKeyReleased (Tizen::Ui::Control &source, const Tizen::Ui::KeyEventInfo &keyEventInfo);
81         virtual bool  TranslateKeyEventInfo (Tizen::Ui::Control &source, Tizen::Ui::KeyEventInfo &keyEventInfo);
82
83 private:
84         _CertificateConfirmPopup(const _CertificateConfirmPopup&);
85
86         _CertificateConfirmPopup& operator =(const _CertificateConfirmPopup&);
87
88         result GetMessageFromPolicy(Tizen::Base::String& message);
89
90         result GenerateCertifiate(Tizen::Base::String& certString);
91
92         Tizen::Base::String GetStringOfToken(const Tizen::Base::String& parseString, const Tizen::Base::String& parseToken);
93
94 private:
95         _CertificatePopupMode __certPopupMode;
96         bool __confirm;
97
98         Ewk_Certificate_Policy_Decision* __pCertificatePolicyData;
99         Tizen::Web::Controls::_WebImpl* __pImpl;
100 }; // _CertificateConfirmPopup
101
102 }}} // Tizen::Web::Controls
103 #endif // _FWEB_CTRL_INTERNAL_CERTIFICATE_CONFIRM_POPUP_H_