Tizen 2.2.1
[framework/osp/web.git] / src / controls / FWebCtrl_WebEvent.cpp
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_WebImpl.cpp
20  * @brief               The file contains the definition of _WebImpl class.
21  *
22  * The file contains the definition of _WebImpl class.
23  */
24 #include <FBaseRtIEventListener.h>
25 #include <FBaseSysLog.h>
26 #include "FWebCtrl_WebEvent.h"
27 #include "FWebCtrl_WebEventArg.h"
28
29
30 using namespace Tizen::Base::Runtime;
31
32
33 namespace Tizen { namespace Web { namespace Controls
34 {
35
36
37 _WebEvent::_WebEvent(void)
38 {
39 }
40
41
42 _WebEvent::~_WebEvent(void)
43 {
44 }
45
46
47 result
48 _WebEvent::Construct(const _IWebEventListener& listener)
49 {
50         result r = E_SUCCESS;
51
52         r = Initialize();
53         SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to initialize _WebEvent", GetErrorMessage(r));
54
55         r = AddListener(listener);
56         SysTryReturn(NID_WEB_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to add _IWebEventListener.", GetErrorMessage(r));
57
58         return r;
59 }
60
61
62 void
63 _WebEvent::FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg)
64 {
65         IEventArg* pArg = const_cast< IEventArg* >(&arg);
66         _IWebEventListener* pWebListener = static_cast< _IWebEventListener* >(&listener);
67         result r = E_SUCCESS;
68
69         _WebEventArg* pEventArg = dynamic_cast< _WebEventArg* >(pArg);
70         SysTryReturnVoidResult(NID_WEB_CTRL, pEventArg, E_INVALID_ARG, "[%s] Invalid argument(s) is used. arg is not _WebEventArg type." , GetErrorMessage(E_INVALID_ARG));
71
72         int eventGroup = pEventArg->GetEventGroup();
73         SysLog(NID_WEB_CTRL, "The current value of event group is %d", eventGroup);
74
75         switch (eventGroup)
76         {
77         case WEB_EVENT_REQUEST_SERVICE:
78 //              r = pWebListener->LaunchAppControl(arg);
79                 break;
80
81         case WEB_EVENT_DELIVER_JSBRIDGE_REQUEST:
82                 r = pWebListener->OnHandleJavaScriptRequestByEventArg(arg);
83                 break;
84
85         case WEB_EVENT_LOADINGLISTENER:
86                 r = pWebListener->OnHandleLoadingEvent(arg);
87                 break;
88
89         case WEB_EVENT_WEBDOWNLOADLISTENER:
90                 r = pWebListener->OnHandleWebDownloadEvent(arg);
91                 break;
92
93         case WEB_EVENT_WEBUIEVENTLISTENER:
94                 r = pWebListener->OnHandleWebUiEvent(arg);
95                 break;
96
97         case WEB_EVENT_WEBUIEVENTLISTENER_FLOAT:
98                 r = pWebListener->OnHandleWebUiEventF(arg);
99                 break;
100
101         case WEB_EVENT_TEXTSEARCHLISTENER:
102                 r = pWebListener->OnHandleTextSearchEvent(arg);
103                 break;
104
105         default:
106                 SysAssert(false);
107                 break;
108         }
109 }
110
111
112 result
113 _WebEvent::AddWebEventListener(const _IWebEventListener& listener)
114 {
115         return AddListener(listener);
116 }
117
118
119 result
120 _WebEvent::RemoveWebEventListener(const _IWebEventListener& listener)
121 {
122         return RemoveListener(listener);
123 }
124
125
126 }}} // Tizen::Web::Controls