2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0/
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.
18 * @file FUiCtrl_PublicFrameEvent.cpp
19 * @brief This is the implementation for the _PublicFrameEvent class.
24 #include <FUiCtrlFrame.h>
25 #include <FUiCtrlIFrameEventListener.h>
26 #include <FBaseErrors.h>
27 #include <FBaseSysLog.h>
28 #include "FUiCtrl_PublicFrameEvent.h"
30 using namespace Tizen::Base;
31 using namespace Tizen::Base::Runtime;
33 namespace Tizen { namespace Ui { namespace Controls
36 * @class _PublicFrameEventArg
37 * @brief This class is used as an argument of event listener's method.
39 * This class is used as an argument of event listener's method. When frame event is generated,
40 * the @c _PublicFrameEvent instance calls WindowEventListener's method with instance of this class as an argument.
42 class _PublicFrameEventArg
43 : public Tizen::Base::Object
44 , public Tizen::Base::Runtime::IEventArg
49 * This is the default class constructor.
51 * @param[in] source A pointer to the Frame instance which contains this instance.
52 * @param[in] frameState The frame event type.
54 _PublicFrameEventArg(const Frame& source, int frameState);
57 * This is the class destructor.
60 virtual ~_PublicFrameEventArg(void);
64 * This method returns the Window object which the event initially occurred.
66 * @return See the comment above.
69 const Frame* GetSource(void) const;
72 * This method returns the event type of frame event.
74 * @return See the comment above.
76 int GetType(void) const;
82 }; // _PublicFrameEventArg
84 _PublicFrameEventArg::_PublicFrameEventArg(const Frame& source, int frameState)
85 : __pSource(const_cast <Frame*>(&source))
86 , __frameState(frameState)
90 _PublicFrameEventArg::~_PublicFrameEventArg(void)
95 _PublicFrameEventArg::GetSource(void) const
101 _PublicFrameEventArg::GetType(void) const
107 _PublicFrameEvent::CreateInstanceN(const Frame& source)
109 _PublicFrameEvent* pPublicFrameEvent = new (std::nothrow) _PublicFrameEvent(source);
110 SysTryReturn(NID_UI_CTRL, pPublicFrameEvent, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
112 if (IsFailed(GetLastResult()))
117 SetLastResult(E_SUCCESS);
119 return pPublicFrameEvent;
122 delete pPublicFrameEvent;
127 _PublicFrameEvent::CreateFrameEventArgN(const Frame& source, int frameState)
129 _PublicFrameEventArg* pEventArg = new (std::nothrow) _PublicFrameEventArg(source, frameState);
130 SysTryReturn(NID_UI_CTRL, pEventArg, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory shortage.");
132 SetLastResult(E_SUCCESS);
137 _PublicFrameEvent::~_PublicFrameEvent(void)
142 _PublicFrameEvent::GetSource(void) const
148 _PublicFrameEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
150 IFrameEventListener* pFrameListener = dynamic_cast <IFrameEventListener*>(&listener);
151 SysTryReturnVoidResult(NID_UI_CTRL, pFrameListener, E_INVALID_ARG, "[E_INVALID_ARG] The invalid listener was given.");
153 const _PublicFrameEventArg* pArg = static_cast <const _PublicFrameEventArg*>(&arg);
154 SysTryReturnVoidResult(NID_UI_CTRL, pArg, E_INVALID_ARG, "[E_INVALID_ARG] The invalid event argument was given.");
156 int type = pArg->GetType();
159 case FRAME_STATE_TERMINATING :
160 pFrameListener->OnFrameTerminating(*pArg->GetSource());
162 case FRAME_STATE_ACTIVATED :
163 pFrameListener->OnFrameActivated(*pArg->GetSource());
165 case FRAME_STATE_DEACTIVATED :
166 pFrameListener->OnFrameDeactivated(*pArg->GetSource());
168 case FRAME_STATE_MINIMIZED:
169 pFrameListener->OnFrameMinimized(*pArg->GetSource());
171 case FRAME_STATE_RESTORED:
172 pFrameListener->OnFrameRestored(*pArg->GetSource());
175 SysLogException(NID_UI_CTRL, E_INVALID_ARG, "[E_INVALID_ARG] The invalid event argument was given.");
179 SetLastResult(E_SUCCESS);
184 _PublicFrameEvent::_PublicFrameEvent(const Frame& source)
187 result r = _Event::Initialize();
188 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
194 }}} // Tizen::Ui::Controls