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