• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */