2 // Open Service Platform
\r
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
\r
5 // Licensed under the Apache License, Version 2.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
9 // http://www.apache.org/licenses/LICENSE-2.0
\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
19 * @file FUiImeInputMethod.cpp
\r
20 * @brief This is the implementation file for the %InputMethod class.
\r
22 * This implementation file contains definition of the %InputMethod class.
\r
27 #include <FBaseSysLog.h>
\r
28 #include <FUiImeInputMethod.h>
\r
30 #include <FSec_AccessController.h>
\r
31 #include "FUiIme_InputMethodImpl.h"
\r
33 using namespace Tizen::Base;
\r
34 using namespace Tizen::Graphics;
\r
35 using namespace Tizen::Security;
\r
36 using namespace Tizen::Ui;
\r
38 namespace Tizen { namespace Ui { namespace Ime {
\r
40 static InputMethod* __pInputMethod = null;
\r
42 InputMethod::InputMethod(void)
\r
43 :__pInputMethodImpl(null)
\r
47 InputMethod::~InputMethod(void)
\r
49 __pInputMethod = null;
\r
50 __pInputMethodImpl = null;
\r
54 InputMethod::Construct(void)
\r
56 result r = E_SUCCESS;
\r
58 __pInputMethodImpl = new(std::nothrow) _InputMethodImpl();
\r
59 SysTryReturnResult(NID_UI_IME, __pInputMethodImpl, E_OUT_OF_MEMORY, "Memory allocation failed.");
\r
61 r = __pInputMethodImpl->Construct();
\r
62 SysTryCatch(NID_UI_IME, r == E_SUCCESS, , r, "Propagating.");
\r
67 delete __pInputMethodImpl;
\r
68 __pInputMethodImpl = null;
\r
74 InputMethod::GetInstance(void)
\r
76 result r = E_SUCCESS;
\r
78 r = _AccessController::CheckUserPrivilege(_PRV_IME);
\r
79 SysTryReturn(NID_UI_IME, r == E_SUCCESS, null, E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] The application does not have the privilege to call this method.");
\r
81 if (__pInputMethod == null)
\r
83 __pInputMethod = new(std::nothrow) InputMethod();
\r
84 SysTryReturn(NID_UI_IME, __pInputMethod, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
\r
86 r = __pInputMethod->Construct();
\r
87 r = ((r == E_SUCCESS) || (r == E_CONNECTION_FAILED) || (r == E_SYSTEM)) ? r : E_SYSTEM;
\r
88 SysTryCatch(NID_UI_IME, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
\r
91 return __pInputMethod;
\r
94 delete __pInputMethod;
\r
95 __pInputMethod = null;
\r
101 InputMethod::SetInputMethodProvider(IInputMethodProvider* pProvider)
\r
103 __pInputMethodImpl->SetInputMethodProvider(pProvider);
\r
107 InputMethod::SetInputMethodProviderF(IInputMethodProviderF* pProvider)
\r
109 __pInputMethodImpl->SetInputMethodProviderF(pProvider);
\r
113 InputMethod::SetInputMethodListener(IInputMethodListener* pListener)
\r
115 __pInputMethodImpl->SetInputMethodListener(pListener);
\r
119 InputMethod::DeleteText(int cursorOffset, int length)
\r
121 return __pInputMethodImpl->DeleteText(cursorOffset, length);
\r
125 InputMethod::NotifyInputPanelBounds(const FloatRectangle& portraitBounds, const FloatRectangle& landscapeBounds)
\r
127 return __pInputMethodImpl->NotifyInputPanelBounds(portraitBounds, landscapeBounds);
\r
131 InputMethod::NotifyInputPanelState(InputPanelShowState state)
\r
133 return __pInputMethodImpl->NotifyInputPanelState(state);
\r
137 InputMethod::NotifyLanguageChanged(void)
\r
139 return __pInputMethodImpl->NotifyLanguageChanged();
\r
143 InputMethod::RequestSurroundingText(int lengthBeforeCursor, int lengthAfterCursor)
\r
145 return __pInputMethodImpl->RequestSurroundingText(lengthBeforeCursor, lengthAfterCursor);
\r
149 InputMethod::SendCompositeText(const String& text)
\r
151 return __pInputMethodImpl->SendCompositeText(text);
\r
155 InputMethod::SendKeyEvent(KeyCode code, KeyState state)
\r
157 return __pInputMethodImpl->SendKeyEvent(code, state);
\r
161 InputMethod::SendText(const String& text)
\r
163 return __pInputMethodImpl->SendText(text);
\r
166 }}} // Tizen::Ui::Ime
\r