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 FUiIme_ScimDataConverter.cpp
\r
20 * @brief This is the implementation file for the %_ScimDataConverter class.
\r
22 * This implementation file contains definition of the %_ScimDataConverter class.
\r
25 #include <vector> // vector in scim_event.h
\r
27 #define Uses_SCIM_EVENT
\r
28 #define Uses_SCIM_UTILITY
\r
30 #include <scim.h> // SCIM_KEY_NullKey, SCIM_KEY_NullMask, SCIM_KEY_ReleaseMask
\r
33 #include <FBaseSysLog.h>
\r
34 #include <FBaseString.h>
\r
35 #include <FBase_StringConverter.h>
\r
37 #include "FUiIme_Key.h"
\r
38 #include "FUiIme_ScimDataConverter.h"
\r
40 using namespace Tizen::Base;
\r
41 using namespace Tizen::Locales;
\r
42 using namespace Tizen::Ui;
\r
44 namespace Tizen { namespace Ui { namespace Ime {
\r
46 _ScimDataConverter::_ScimDataConverter()
\r
51 _ScimDataConverter::~_ScimDataConverter()
\r
57 _ScimDataConverter::ConvertKey(Tizen::Ui::KeyCode code, Tizen::Ui::KeyState state, scim::KeyEvent& event) const
\r
59 result r = E_SUCCESS;
\r
61 event.code = scim::SCIM_KEY_NullKey;
\r
62 event.mask = scim::SCIM_KEY_NullMask;
\r
63 event.layout = scim::SCIM_KEYBOARD_Default;
\r
66 for (int i = 0; i < MAX_KEY_CODE; i++)
\r
68 if (code == KEY_CODE_MAP[i].keyCode)
\r
70 event.code = KEY_CODE_MAP[i].scimKeyCode;
\r
79 event.mask = scim::SCIM_KEY_NullMask; // The NullMask means the PressMask.
\r
82 event.mask = scim::SCIM_KEY_ReleaseMask;
\r
84 case KEY_LONGPRESSED:
\r
94 _ScimDataConverter::ConvertRectangle(const Tizen::Graphics::Rectangle& src, scim::rectinfo& dest) const
\r
98 dest.width = src.width;
\r
99 dest.height = src.height;
\r
105 _ScimDataConverter::ConvertString(const Tizen::Base::String& src, scim::String& dest) const
\r
107 result r = E_SUCCESS;
\r
109 char* pCharSrc = null;
\r
111 pCharSrc = _StringConverter::CopyToCharArrayN(src);
\r
112 r = GetLastResult();
\r
113 SysTryReturnResult(NID_UI_IME, pCharSrc, r, "Propagating.");
\r
123 _ScimDataConverter::ConvertString(const Tizen::Base::String& src, scim::WideString& dest) const
\r
125 result r = E_SUCCESS;
\r
127 char* pCharSrc = null;
\r
129 pCharSrc = _StringConverter::CopyToCharArrayN(src);
\r
130 r = GetLastResult();
\r
131 SysTryReturnResult(NID_UI_IME, pCharSrc, r, "Propagating.");
\r
133 dest = scim::utf8_mbstowcs(pCharSrc, strlen(pCharSrc));
\r
141 _ScimDataConverter::ConvertString(const scim::String& src, Tizen::Base::String& dest) const
\r
143 result r = E_SUCCESS;
\r
145 const char* pCharSrc = null;
\r
147 pCharSrc = src.c_str();
\r
148 SysTryReturnResult(NID_UI_IME, pCharSrc, E_INVALID_ARG, "Invalid argument(s) is used. The source is invalid.");
\r
150 String destString(pCharSrc);
\r
157 }}} // Tizen::Ui::Ime
\r