Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_SplitPanelEvent.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 /**
19  * @file                FUiCtrl_SplitPanelEvent.h
20  * @brief               This is the header file for _SplitPanelEvent class.
21  * @version             1.0
22  *
23  * This header file contains declaration of _SplitPanelEvent class.
24  * The SplitPanelEvent class can call listener's method. So, when event occurred,
25  * application can handle it appropriately.
26  *
27  */
28 #ifndef _FUI_CTRL_INTERNAL_SPLIT_PANEL_EVENT_H_
29 #define _FUI_CTRL_INTERNAL_SPLIT_PANEL_EVENT_H_
30
31 #include <FBaseResult.h>
32 #include <FOspConfig.h>
33 #include <FBaseRt_Event.h>
34
35 namespace Tizen { namespace Ui { namespace Controls
36 {
37
38 class _SplitPanel;
39
40 enum _SplitPanelEventStatus
41 {
42         _SPLIT_PANEL_EVENT_DIVIDER_POSITION_CHANGE = 0,
43         _SPLIT_PANEL_EVENT_DIVIDER_DOUBLE_PRESSED
44 };
45
46
47 /**
48 * @class        _SplitPanelEvent
49 * @brief        This class handles a action event. It is inherited from Event class.
50 *
51 * The Window(root of all widgets) class has an instance of the _SplitPanelEvent class as a member variable.
52 * Applications can register splitpanel event listeners through it. When a splitpanel event occurred,
53 * the _SplitPanelEvent class finds listener and calls the appropriate listener's method.
54 *
55 */
56 class _SplitPanelEvent
57         : public Tizen::Base::Runtime::_Event
58 {
59 // Lifecycle
60 public:
61         /**
62          * This is the default class destructor.
63          *
64          */
65         virtual ~_SplitPanelEvent(void);
66
67         static _SplitPanelEvent* CreateInstanceN(const _SplitPanel& source);
68
69 // Accessors
70         /**
71          * This method returns the owner of this event.
72          *
73          * @return              See the comment above.
74          */
75         const _SplitPanel* GetSource(void) const;
76
77         static Tizen::Base::Runtime::IEventArg* CreateSplitPanelEventArgN(_SplitPanelEventStatus status);
78
79 // Operations
80 protected:
81         /**
82          * This is the default class constructor.
83          *
84          * @remarks             After creating an instance of this class, you must explicitly call one of
85          *                              construction methods to initialize the instance.
86          *
87          */
88         _SplitPanelEvent(const _SplitPanel& source);
89
90         /**
91          * This method checks the arg and finds out the type of event. After that this method calls appopriate
92          * pListener's method.
93          *
94          * @return              This method returns a result code.
95          * @param[in]   pListener       It is a event listener related to this action event.
96          * @param[in]   arg                     It is an argument-like instance of action event retransmitted to the listener's method
97          *                                                      as an argument.
98          * @exception   E_SUCCESS               - The method is successful.
99          * @exception   E_ARG_NULL              - The listener is null.
100          * @exception   E_INVALID_ARG   - The argument passed to a method contains an invalid value.@n
101          *                                                                &nbsp;&nbsp;The pListener is not the instance of IActionEventListener class or
102          *                                                                the p__SplitPanelEventArg is not the instance of _SplitPanelEventArg class.
103          *
104          */
105         virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg);
106
107 //Attributess
108 private:
109         const _SplitPanel* __pSource;
110
111 }; // _SplitPanelEvent
112
113 }}} // Tizen::Ui::Controls
114
115 #endif // _FUI_CTRL_INTERNAL_SPLIT_PANEL_EVENT_H_