Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_PublicActionEvent.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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  * @file                FUiCtrl_PublicActionEvent.h
19  * @brief               This is the header file for _PublicActionEvent class.
20  *
21  * This header file contains declaration of _PublicActionEvent class.
22  * The PublicActionEvent class can call listener's method. So, when event occurred,
23  * application can handle it appropriately.
24  *
25  */
26 #ifndef _FUI_CTRL_PUBLIC_ACTION_EVENT_H_
27 #define _FUI_CTRL_PUBLIC_ACTION_EVENT_H_
28
29 #include <FOspConfig.h>
30 #include <FBaseResult.h>
31 #include <FBaseRt_Event.h>
32
33 namespace Tizen { namespace Ui
34 {
35 class Control;
36 } } // Tizen::Ui
37
38 namespace Tizen { namespace Ui { namespace Controls
39 {
40 /**
41 * @class        _PublicActionEvent
42 * @brief        This class handles a action event. It is inherited from Event class.
43 *
44 * The Window(root of all widgets) class has an instance of the _PublicActionEvent class as a member variable.
45 * Applications can register action event listeners through it. When a action event occurred,
46 * the _PublicActionEvent class finds listener and calls the appropriate listener's method.
47 *
48 */
49 class _PublicActionEvent
50         : public Tizen::Base::Runtime::_Event
51 {
52 public:
53         /**
54          * This is the default class destructor.
55          *
56          */
57         virtual ~_PublicActionEvent(void);
58
59         static _PublicActionEvent* CreateInstanceN(const Tizen::Ui::Control& source);
60
61 public:
62         /**
63          * This method returns the owner of this event.
64          *
65          * @return              See the comment above.
66          */
67         const Tizen::Ui::Control* GetSource(void) const;
68
69 protected:
70         /**
71          * This is the default class constructor.
72          *
73          * @remarks             After creating an instance of this class, you must explicitly call one of
74          *                              construction methods to initialize the instance.
75          *
76          */
77         _PublicActionEvent(const Tizen::Ui::Control& source);
78
79         /**
80          * This method checks the arg and finds out the type of event. After that this method calls appopriate
81          * listener's method.
82          *
83          * @param[in]   listener        It is a event listener related to this action event.
84          * @param[in]   arg                     It is an argument-like instance of action event retransmitted to the listener's method
85          *                                                      as an argument.
86          *
87          */
88         virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg);
89
90 public:
91         static Tizen::Base::Runtime::IEventArg* CreateActionEventArgN(int actionId);
92
93 private:
94         const Tizen::Ui::Control* __pSource;
95 }; // _PublicActionEvent
96
97 }}} // Tizen::Ui::Controls
98
99 #endif // _FUI_CTRL_PUBLIC_ACTION_EVENT_H_