Merge "Fix Ime Rotation" into tizen_2.1
[platform/framework/native/uifw.git] / inc / FUiIInputConnectionEventListenerF.h
1 //\r
2 // Open Service Platform\r
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
4 //\r
5 // Licensed under the Flora License, Version 1.0 (the License);\r
6 // you may not use this file except in compliance with the License.\r
7 // You may obtain a copy of the License at\r
8 //\r
9 //     http://floralicense.org/license/\r
10 //\r
11 // Unless required by applicable law or agreed to in writing, software\r
12 // distributed under the License is distributed on an AS IS BASIS,\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14 // See the License for the specific language governing permissions and\r
15 // limitations under the License.\r
16 //\r
17 \r
18 /**\r
19  * @file                FUiIInputConnectionEventListenerF.h\r
20  * @brief       This is the header file for the %IInputConnectionEventListenerF class.\r
21  *\r
22  * This header file contains the declarations of the %IInputConnectionEventListenerF class.\r
23  *\r
24  *\r
25  */\r
26 \r
27 #ifndef _FUI_IINPUT_CONNECTION_EVENT_LISTENER_F_H_\r
28 #define _FUI_IINPUT_CONNECTION_EVENT_LISTENER_F_H_\r
29 \r
30 #include <FBaseRtIEventListener.h>\r
31 #include <FLclLocale.h>\r
32 #include <FUiInputConnectionTypes.h>\r
33 \r
34 namespace Tizen { namespace Base {\r
35         class String;\r
36 }} // Tizen::Base\r
37 \r
38 namespace Tizen { namespace Graphics {\r
39         class FloatRectangle;\r
40 }} // Tizen::Graphics\r
41 \r
42 \r
43 namespace Tizen { namespace Ui {\r
44 \r
45 class InputConnection;\r
46 \r
47 /**\r
48  * @class       IInputConnectionEventListenerF\r
49  * @brief       This is the header file for the %IInputConnectionEventListenerF class.\r
50  * This header file contains the declarations of the %IInputConnectionEventListenerF class.\r
51  * It's possible to not work the callback depending on the current InputMethod.\r
52  * @since 2.1\r
53  *\r
54  * The %IInputConnectionEventListener interface defines methods for processing between the InputConnection and the input method.\r
55  */\r
56 class _OSP_EXPORT_ IInputConnectionEventListenerF\r
57         : virtual public Tizen::Base::Runtime::IEventListener\r
58 {\r
59 public:\r
60         /**\r
61          * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.\r
62          *\r
63          * @since 2.1\r
64          */\r
65         virtual ~IInputConnectionEventListenerF(void) {}\r
66 \r
67         /**\r
68          * Notifies when the show state of the InputPanel is changed.\r
69          *\r
70          * @since 2.1\r
71          * @param[in]   source          The source of the event\r
72          * @param[in]   showState       The state\r
73          */\r
74         virtual void OnInputConnectionPanelShowStateChanged(Tizen::Ui::InputConnection& source, Tizen::Ui::InputPanelShowState showState) = 0;\r
75 \r
76         /**\r
77          * Notifies when the language of the InputPanel is changed.\r
78          *\r
79          * @since 2.1\r
80          * @param[in]   source          The source of the event\r
81          * @param[in]   language        The language code\r
82          */\r
83         virtual void OnInputConnectionPanelLanguageChanged(Tizen::Ui::InputConnection& source, Tizen::Locales::LanguageCode language) = 0;\r
84 \r
85         /**\r
86          * Notifies when the size of the InputPanel is changed.\r
87          *\r
88          * @since 2.1\r
89          * @param[in]   source          The source of the event\r
90          * @param[in]   bounds          The size\r
91          */\r
92         virtual void OnInputConnectionPanelBoundsChanged(Tizen::Ui::InputConnection& source, const Tizen::Graphics::FloatRectangle& bounds) = 0;\r
93 \r
94         /**\r
95          * Notifies when the show state of the Text-Prediction is changed.\r
96          *\r
97          * @since 2.1\r
98          * @param[in]   source          The source of the event\r
99          * @param[in]   isShown         The state\r
100          */\r
101         virtual void OnInputConnectionTextPredictionShowStateChanged(Tizen::Ui::InputConnection& source, bool isShown) = 0;\r
102 \r
103         /**\r
104          * Notifies when the size of the Text-Prediction is changed.\r
105          *\r
106          * @since 2.1\r
107          * @param[in]   source          The source of the event\r
108          * @param[in]   bounds          The size\r
109          */\r
110         virtual void OnInputConnectionTextPredictionBoundsChanged(Tizen::Ui::InputConnection& source, const Tizen::Graphics::FloatRectangle& bounds) = 0;\r
111 \r
112         /**\r
113          * Notifies when the key of the InputPanel is selected.\r
114          *\r
115          * @since 2.1\r
116          * @param[in]   source          The source of the event\r
117          * @param[in]   committedText           The committed text.\r
118          */\r
119         virtual void OnInputConnectionTextCommitted(Tizen::Ui::InputConnection& source, const Tizen::Base::String& committedText) = 0;\r
120 \r
121         /**\r
122          * Notifies when the key of the InputPanel is selected during the composing.\r
123          *\r
124          * @since 2.1\r
125          * @param[in]   source          The source of the event\r
126          * @param[in]   composingText           The composing text.\r
127          * @param[in]   cursorPosition  the current cursor position.\r
128          */\r
129         virtual void OnInputConnectionComposingTextChanged(Tizen::Ui::InputConnection& source, const Tizen::Base::String& composingText, int cursorPosition) = 0;\r
130 \r
131 protected:\r
132         //\r
133         // This method is for internal use only. Using this method can cause behavioral, security-related,\r
134         // and consistency-related issues in the application.\r
135         //\r
136         // This method is reserved and may change its name at any time without\r
137         // prior notice.\r
138         //\r
139         virtual void IInputConnectionEventListenerF_Reserved1(void) {}\r
140 \r
141         //\r
142         // This method is for internal use only. Using this method can cause behavioral, security-related,\r
143         // and consistency-related issues in the application.\r
144         //\r
145         // This method is reserved and may change its name at any time without\r
146         // prior notice.\r
147         //\r
148         virtual void IInputConnectionEventListenerF_Reserved2(void) {}\r
149 \r
150         //\r
151         // This method is for internal use only. Using this method can cause behavioral, security-related,\r
152         // and consistency-related issues in the application.\r
153         //\r
154         // This method is reserved and may change its name at any time without\r
155         // prior notice.\r
156         //\r
157         virtual void IInputConnectionEventListenerF_Reserved3(void) {}\r
158 \r
159         //\r
160         // This method is for internal use only. Using this method can cause behavioral, security-related,\r
161         // and consistency-related issues in the application.\r
162         //\r
163         // This method is reserved and may change its name at any time without\r
164         // prior notice.\r
165         //\r
166         virtual void IInputConnectionEventListenerF_Reserved4(void) {}\r
167 \r
168         //\r
169         // This method is for internal use only. Using this method can cause behavioral, security-related,\r
170         // and consistency-related issues in the application.\r
171         //\r
172         // This method is reserved and may change its name at any time without\r
173         // prior notice.\r
174         //\r
175         virtual void IInputConnectionEventListenerF_Reserved5(void) {}\r
176 }; // IInputConnectionEventListenerF\r
177 \r
178 }} // Tizen::Ui\r
179 #endif // _FUI_IINPUT_CONNECTION_EVENT_LISTENER_F_H_\r
180 \r