Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / FUi_InputConnectionImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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         FUi_InputConnectionImpl.h
19 * @brief        This is the implementation file for the _InputConnectionImpl class.
20 */
21
22 #ifndef _FUI_INTERNAL_INPUT_CONNECTION_IMPL_H_
23 #define _FUI_INTERNAL_INPUT_CONNECTION_IMPL_H_
24
25 #include <Ecore.h>
26 #include <Ecore_IMF_Evas.h>
27 #include <FBaseColLinkedListT.h>
28 #include <FGrpRectangle.h>
29 #include <FLclLocale.h>
30 #include <FUiIInputConnectionEventListener.h>
31 #include <FUiIInputConnectionEventListenerF.h>
32 #include <FUiIInputConnectionProvider.h>
33 #include "FUi_Control.h"
34
35 namespace Tizen { namespace Ui {
36
37 class InputConnection;
38
39 /**
40 * @class        _InputConnectionImpl
41 * @brief        This class is a based input method implements the behavior
42 * @since 2.0
43 *
44 */
45 class _InputConnectionImpl
46         : public Tizen::Base::Object
47         , public _IKeyEventListener
48 {
49 public:
50         virtual ~_InputConnectionImpl(void);
51         static _InputConnectionImpl* CreateInputConnectionImplN(InputConnection* pInputConnection);
52
53         result Initialize(const Tizen::Ui::_Control& control, const IInputConnectionEventListener& listener, const IInputConnectionProvider& provider);
54         result Initialize(const Tizen::Ui::_Control& control, const IInputConnectionEventListenerF& listener, const IInputConnectionProvider& provider);
55         result BindInputMethod(void);
56         result UnbindInputMethod(void);
57         result ShowInputPanel(void);
58         result HideInputPanel(void);
59         result SetInputPanelStyle(InputPanelStyle style);
60         InputPanelStyle GetInputPanelStyle(void) const;
61         result SetAutoCapitalizationMode(AutoCapitalizationMode autoCapitalizationMode);
62         AutoCapitalizationMode GetAutoCapitalizationMode(void) const;
63         InputPanelShowState GetInputPanelShowState(void) const;
64         result SetInputPanelShowState(InputPanelShowState showState);
65         result FinishTextComposition(void);
66         result SetInputPanelAction(InputPanelAction inputPanelAction);
67         InputPanelAction GetInputPanelAction(void) const;
68         result SetInputPanelActionEnabled(bool enabled);
69         bool IsInputPanelActionEnabled(void) const;
70         result SetCursorPosition(int position);
71         result SetCursorBounds(const Tizen::Graphics::Rectangle& rect);
72         result SetCursorBounds(const Tizen::Graphics::FloatRectangle& rect);
73         Tizen::Graphics::Rectangle GetInputPanelBounds(void) const;
74         Tizen::Graphics::FloatRectangle GetInputPanelBoundsF(void) const;
75         Tizen::Graphics::Rectangle GetPredictionBounds(void) const;
76         Tizen::Graphics::FloatRectangle GetPredictionBoundsF(void) const;
77         result SetTextPredictionEnabled(bool enable);
78         bool IsTextPredictionEnabled(void) const;
79         result SetCapsLockEnabled(bool enable);
80         bool IsCapsLockEnabled(void) const;
81         result SetPasswordMode(bool enable);
82         bool IsPasswordMode(void) const;
83
84         result SetInputPanelLanguage(Tizen::Locales::LanguageCode languageCode);
85         Tizen::Locales::LanguageCode GetInputPanelLanguage(void) const;
86         InputConnection* GetInputConnection(void) const;
87         IInputConnectionEventListener* GetInputConnectionListener(void) const;
88         IInputConnectionEventListenerF* GetInputConnectionListenerF(void) const;
89         IInputConnectionProvider* GetInputConnectionProvider(void) const;
90         bool CheckContextEvent(Ecore_IMF_Event_Type type, void* pEventInfo);
91         int CheckUSBKeyboardStatus(void);
92         void SendOpaqueCommand (const Tizen::Base::String& command);
93
94         static _InputConnectionImpl* GetInstance(InputConnection& inputConnection);
95         static const _InputConnectionImpl* GetInstance(const InputConnection& inputConnection);
96
97         virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
98         virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
99
100 //Internal
101         void SetKeyEventSkipped(bool enabled);
102
103 private:
104         _InputConnectionImpl(InputConnection* pInputConnection);
105         _InputConnectionImpl(const _InputConnectionImpl& rhs);
106         _InputConnectionImpl& operator=(const _InputConnectionImpl& rhs);
107
108         void AddInputPanelCallback(void);
109         void AddEcoreEventCallback(void);
110         void AddEvasObjectEventCallback(void);
111         void RemoveInputPanelCallback(void);
112         void RemoveEcoreEventCallback(void);
113         void RemoveEvasObjectEventCallback(void);
114
115         result FilterKeyOnUSBMode(InputPanelStyle style, const char* key, bool commit = false);
116
117 private:
118         Ecore_IMF_Context* __pContext;
119         _ControlHandle __controlHandle;
120         bool __IsBounded;
121         IInputConnectionEventListener* __pListener;
122         IInputConnectionEventListenerF* __pListenerF;
123         IInputConnectionProvider* __pProvider;
124         InputConnection* __pInputConnection;
125         InputPanelAction __inputPanelAction;
126         InputPanelShowState __inputPanelState;
127         InputPanelStyle __inputPanelStyle;
128         Ecore_Event_Handler* __pUSBEventHandler;
129         bool __IsKeyEventSkipped;
130         bool __passwordMode;
131
132 }; // _InputConnectionImpl
133
134 }} // Tizen::Ui
135
136 #endif // _FUI_INTERNAL_INPUT_CONNECTION_IMPL_H_
137
138