1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #include "global.h"
16 #include "native_inputmethod_types.h"
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif /* __cplusplus */
21
OH_AttachOptions_Create(bool showKeyboard)22 InputMethod_AttachOptions *OH_AttachOptions_Create(bool showKeyboard)
23 {
24 return new (std::nothrow) InputMethod_AttachOptions({ showKeyboard });
25 }
26
OH_AttachOptions_CreateWithRequestKeyboardReason(bool showKeyboard,InputMethod_RequestKeyboardReason requestKeyboardReason)27 InputMethod_AttachOptions *OH_AttachOptions_CreateWithRequestKeyboardReason(
28 bool showKeyboard, InputMethod_RequestKeyboardReason requestKeyboardReason)
29 {
30 return new (std::nothrow) InputMethod_AttachOptions({ showKeyboard, requestKeyboardReason });
31 }
32
OH_AttachOptions_Destroy(InputMethod_AttachOptions * options)33 void OH_AttachOptions_Destroy(InputMethod_AttachOptions *options)
34 {
35 if (options == nullptr) {
36 return;
37 }
38 delete options;
39 }
40
OH_AttachOptions_IsShowKeyboard(InputMethod_AttachOptions * options,bool * showKeyboard)41 InputMethod_ErrorCode OH_AttachOptions_IsShowKeyboard(InputMethod_AttachOptions *options, bool *showKeyboard)
42 {
43 if (options == nullptr) {
44 IMSA_HILOGE("options is nullptr");
45 return IME_ERR_NULL_POINTER;
46 }
47
48 if (showKeyboard == nullptr) {
49 IMSA_HILOGE("showKeyboard is nullptr");
50 return IME_ERR_NULL_POINTER;
51 }
52
53 *showKeyboard = options->showKeyboard;
54 return IME_ERR_OK;
55 }
56
OH_AttachOptions_GetRequestKeyboardReason(InputMethod_AttachOptions * options,int * requestKeyboardReason)57 InputMethod_ErrorCode OH_AttachOptions_GetRequestKeyboardReason(
58 InputMethod_AttachOptions *options, int *requestKeyboardReason)
59 {
60 if (options == nullptr) {
61 IMSA_HILOGE("options is nullptr");
62 return IME_ERR_NULL_POINTER;
63 }
64
65 if (requestKeyboardReason == nullptr) {
66 IMSA_HILOGE("requestKeyboardReason is nullptr");
67 return IME_ERR_NULL_POINTER;
68 }
69
70 *requestKeyboardReason = static_cast<int>(options->requestKeyboardReason);
71 return IME_ERR_OK;
72 }
73
74 #ifdef __cplusplus
75 }
76 #endif /* __cplusplus */