diff --git a/api/@ohos.inputmethod.d.ts b/api/@ohos.inputmethod.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..21a0439b5f4d0758007ca00c5c643fa09f4d72ea --- /dev/null +++ b/api/@ohos.inputmethod.d.ts @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {AsyncCallback} from './basic'; + +/** + * inputmethod + * + * @since 8 + * @syscap SystemCapability.MiscServices.InputMethod + */ +declare namespace inputMethod { + const MAX_TYPE_NUM: number + + function getInputMethodSetting(): InputMethodSetting; + + function getInputMethodController(): InputMethodController; + + interface InputMethodSetting { + listInputMethod(callback: AsyncCallback>): void; + + listInputMethod(): Promise>; + + displayOptionalInputMethod(callback: AsyncCallback): void; + + displayOptionalInputMethod(): Promise; + } + + interface InputMethodController { + stopInput(callback: AsyncCallback): void; + + stopInput(): Promise; + } + + interface InputMethodProperty { + readonly packageName: string; + readonly methodId: string; + } +} + +export default inputMethod; diff --git a/api/@ohos.inputmethodengine.d.ts b/api/@ohos.inputmethodengine.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..39b3b83bae1009fb04d71f19440ee9293b4711ef --- /dev/null +++ b/api/@ohos.inputmethodengine.d.ts @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {AsyncCallback} from './basic'; + +/** + * inputmethodengine + * + * @since 8 + * @syscap SystemCapability.MiscServices.InputMethodEngine + */ +declare namespace inputMethodEngine { + const ENTER_KEY_TYPE_UNSPECIFIED: number; + const ENTER_KEY_TYPE_GO: number; + const ENTER_KEY_TYPE_SEARCH: number; + const ENTER_KEY_TYPE_SEND: number; + const ENTER_KEY_TYPE_NEXT: number; + const ENTER_KEY_TYPE_DONE: number; + const ENTER_KEY_TYPE_PREVIOUS: number; + + const PATTERN_NULL: number; + const PATTERN_TEXT: number; + const PATTERN_NUMBER: number; + const PATTERN_PHONE: number; + const PATTERN_DATETIME: number; + const PATTERN_EMAIL: number; + const PATTERN_URI: number; + const PATTERN_PASSWORD: number; + + const FLAG_SELECTING: number; + const FLAG_SINGLE_LINE: number; + + const DISPLAY_MODE_PART: number; + const DISPLAY_MODE_FULL: number; + + const OPTION_ASCII: number; + const OPTION_NONE: number; + const OPTION_AUTO_CAP_CHARACTERS: number; + const OPTION_AUTO_CAP_SENTENCES: number; + const OPTION_AUTO_WORDS: number; + const OPTION_MULTI_LINE: number; + const OPTION_NO_FULLSCREEN: number; + + function getInputMethodEngine(): InputMethodEngine; + + function createKeyboardDelegate(): KeyboardDelegate; + + interface KeyboardController { + hideKeyboard(callbakc: AsyncCallback): void; + + hideKeyboard(): Promise; + } + + interface InputMethodEngine { + on(type: 'inputStart', callback: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void; + + off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputClient: TextInputClient) => void): void; + + on(type: 'keyboardShow', callback: () => void): void; + + off(type: 'keyboardShow', callback: () => void): void; + + on(type: 'keyboardHide', callback: () => void): void; + + off(type: 'keyboardHide', callback: () => void): void; + } + + interface TextInputClient { + sendKeyFunction(action: number, callback: AsyncCallback): void; + + sendKeyFunction(action: number): Promise; + + deleteForward(length: number, callback: AsyncCallback): void; + + deleteForward(length: number): Promise; + + deleteBackward(length: number, callback: AsyncCallback): void; + + deleteBackward(length: number): Promise; + + InsertText(text: string, callback: AsyncCallback): void; + + InsertText(text: string): Promise; + + getForward(length: number, callback: AsyncCallback): void; + + getForward(length: number): Promise; + + getEditorAttribute(lcallback: AsyncCallback): void; + + getEditorAttribute(): Promise; + } + + interface KeyboardDelegate { + on(type: 'keyDown', callback: (event: KeyEvent) => boolean): void; + + off(type: 'keyDown', callback?: (event: KeyEvent) => boolean): void; + + on(type: 'keyUp', callback: (event: KeyEvent) => boolean): void; + + off(type: 'keyUp', callback?: (event: KeyEvent) => boolean): void; + + on(type: 'cursorContextChange', callback: (x: number, y: number, height: number) => void): void; + + off(type: 'cursorContextChange', callback?: (x: number, y: number, height: number) => void): void; + + on(type: 'selectionChange', callback: (oldBegine: number, oldEnd: number, newBegine: number, newEnd: number) => void): void; + + off(type: 'selectionChange', callback?: (oldBegine: number, oldEnd: number, newBegine: number, newEnd: number) => void): void; + + on(type: 'textChange', callback: (text: string) => void): void; + + off(type: 'textChange', callback?: (text: string) => void): void; + } + + interface EditorAttribute { + readonly inputPattern: number; + readonly enterKeyType: number; + } +} + +export default inputMethodEngine;