161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit IMEKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * Define pattern options of keyboard.
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @interface PatternOptions
2561847f8eSopenharmony_ci * @syscap SystemCapability.MiscServices.InputMethodFramework
2661847f8eSopenharmony_ci * @since 11
2761847f8eSopenharmony_ci */
2861847f8eSopenharmony_ciexport interface PatternOptions {
2961847f8eSopenharmony_ci  /**
3061847f8eSopenharmony_ci   * The default selected pattern, The defaultSelected will default to 0 if left blank
3161847f8eSopenharmony_ci   *
3261847f8eSopenharmony_ci   * @type { number }
3361847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
3461847f8eSopenharmony_ci   * @since 11
3561847f8eSopenharmony_ci   */
3661847f8eSopenharmony_ci  defaultSelected?: number;
3761847f8eSopenharmony_ci  /**
3861847f8eSopenharmony_ci   * the patterns of input method.
3961847f8eSopenharmony_ci   *
4061847f8eSopenharmony_ci   * @type { Array<Pattern> }
4161847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
4261847f8eSopenharmony_ci   * @since 11
4361847f8eSopenharmony_ci   */
4461847f8eSopenharmony_ci  patterns: Array<Pattern>;
4561847f8eSopenharmony_ci  /**
4661847f8eSopenharmony_ci   * An action callback. When the pattern icon clicked, the callback will be invoked.
4761847f8eSopenharmony_ci   *
4861847f8eSopenharmony_ci   * @type { function }
4961847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
5061847f8eSopenharmony_ci   * @since 11
5161847f8eSopenharmony_ci   */
5261847f8eSopenharmony_ci  action: (index: number) => void;
5361847f8eSopenharmony_ci}
5461847f8eSopenharmony_ci
5561847f8eSopenharmony_ci/**
5661847f8eSopenharmony_ci * Define pattern of keyboard. The caller must be the current inputmethod.
5761847f8eSopenharmony_ci * 
5861847f8eSopenharmony_ci * @interface Pattern
5961847f8eSopenharmony_ci * @syscap SystemCapability.MiscServices.InputMethodFramework
6061847f8eSopenharmony_ci * @since 11
6161847f8eSopenharmony_ci */
6261847f8eSopenharmony_ciexport interface Pattern {
6361847f8eSopenharmony_ci  /**
6461847f8eSopenharmony_ci   * The icon resource of pattern.
6561847f8eSopenharmony_ci   *
6661847f8eSopenharmony_ci   * @type { Resource }
6761847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
6861847f8eSopenharmony_ci   * @since 11
6961847f8eSopenharmony_ci   */
7061847f8eSopenharmony_ci  icon: Resource;
7161847f8eSopenharmony_ci  /**
7261847f8eSopenharmony_ci   * The selected icon resource of pattern.
7361847f8eSopenharmony_ci   *
7461847f8eSopenharmony_ci   * @type { Resource }
7561847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
7661847f8eSopenharmony_ci   * @since 11
7761847f8eSopenharmony_ci   */
7861847f8eSopenharmony_ci  selectedIcon: Resource;
7961847f8eSopenharmony_ci}
8061847f8eSopenharmony_ci
8161847f8eSopenharmony_ci/**
8261847f8eSopenharmony_ci * Declare input method list dialog. The caller must be the current inputmethod.
8361847f8eSopenharmony_ci *
8461847f8eSopenharmony_ci * @syscap SystemCapability.MiscServices.InputMethodFramework
8561847f8eSopenharmony_ci * @since 11
8661847f8eSopenharmony_ci */
8761847f8eSopenharmony_ci@CustomDialog
8861847f8eSopenharmony_ciexport declare struct InputMethodListDialog {
8961847f8eSopenharmony_ci  /**
9061847f8eSopenharmony_ci   * Sets the controller.
9161847f8eSopenharmony_ci   *
9261847f8eSopenharmony_ci   * @type { CustomDialogController }
9361847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
9461847f8eSopenharmony_ci   * @since 11
9561847f8eSopenharmony_ci   */
9661847f8eSopenharmony_ci  controller: CustomDialogController;
9761847f8eSopenharmony_ci  /**
9861847f8eSopenharmony_ci   * Sets the pattern options. This parameter can be left blank when it is not default input method.
9961847f8eSopenharmony_ci   *
10061847f8eSopenharmony_ci   * @type { PatternOptions }
10161847f8eSopenharmony_ci   * @syscap SystemCapability.MiscServices.InputMethodFramework
10261847f8eSopenharmony_ci   * @since 11
10361847f8eSopenharmony_ci   */
10461847f8eSopenharmony_ci  patternOptions?: PatternOptions;
10561847f8eSopenharmony_ci}