Fork for IVI: mesa fixing
[profile/ivi/uifw.git] / src / ui / inc / FUiCtrl_PublicSplitPanelEvent.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_PublicSplitPanelEvent.h
19 * @brief                This is the header file for _PublicSplitPanelEvent class.
20 *
21 * This header file contains declaration of _PublicSplitPanelEvent class.
22 *
23 */
24
25 #ifndef _FUI_CTRL_INTERNAL_PUBLIC_SPLIT_PANEL_EVENT_H_
26 #define _FUI_CTRL_INTERNAL_PUBLIC_SPLIT_PANEL_EVENT_H_
27
28 #include <FOspConfig.h>
29 #include <FBaseResult.h>
30 #include <FUiControl.h>
31 #include <FUiCtrlISplitPanelEventListener.h>
32 #include <FBaseRt_Event.h>
33
34 namespace Tizen { namespace Ui { namespace Controls
35 {
36
37 class SplitPanel;
38
39 enum SplitPanelEventStatus
40 {
41         SPLIT_PANEL_EVENT_DIVIDER_POSITION_CHANGE = 0,
42         SPLIT_PANEL_EVENT_DIVIDER_DOUBLE_PRESSED
43 };
44
45 /**
46 * @class        _PublicSplitPanelEvent
47 * @brief        This class handles a text Block event event. It is inherited from Event class.
48 *
49 */
50 class _PublicSplitPanelEvent
51         : public Tizen::Base::Runtime::_Event
52 {
53 // Lifecycle
54 public:
55         /**
56         * This is the default class destructor.
57         *
58         */
59         virtual ~_PublicSplitPanelEvent(void);
60
61         static _PublicSplitPanelEvent* CreateInstanceN(const SplitPanel& source);
62
63 // Accessors
64 public:
65         /**
66         * This method returns the owner of this event.
67         *
68         * @return               See the comment above.
69         */
70         const SplitPanel* GetSource(void) const;
71
72         // Operations
73 protected:
74         /**
75         * This is the default class constructor.
76         *
77         * @remarks              After creating an instance of this class, you must explicitly call one of
78         *                               construction methods to initialize the instance.
79         *
80         */
81         _PublicSplitPanelEvent(const SplitPanel& source);
82
83         /**
84         * This method checks the arg and finds out the type of event. After that this method calls appopriate
85         * pListener's method.
86         *
87         * @return               This method returns a result code.
88         * @param[in]    pListener       It is a event listener related to this item event.
89         * @param[in]    arg                     It is an argument-like instance of item event retransmitted to the listener's method
90         *                                                       as an argument.
91         * @exception    E_SUCCESS               - The method is successful.
92         * @exception    E_ARG_NULL              - The listener is null.
93         * @exception    E_INVALID_ARG   - The argument passed to a method contains an invalid value.@n
94         *                                                                 &nbsp;&nbsp;The pListener is not the instance of IItemEventListener class or
95         *                                                                 the pItemEventArg is not the instance of _CustomItemEventArg class.
96         *
97         */
98         virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg);
99
100 public:
101         static Tizen::Base::Runtime::IEventArg* CreateSplitPanelEventArgN(SplitPanelEventStatus status);
102
103         //Attributess
104 private:
105         const SplitPanel* __pSource;
106 }; // _PublicSplitPanelEvent
107
108 }}} // Tizen::Ui::Controls
109
110 #endif  //_FUI_CTRL_INTERNAL_PUBLIC_SPLIT_PANEL_EVENT_H_