161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2023-2024 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 ArkUI 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ci 2261847f8eSopenharmony_ci 2361847f8eSopenharmony_ci 2461847f8eSopenharmony_ci 2561847f8eSopenharmony_ci/** 2661847f8eSopenharmony_ci * Declaration of the menu item on the right side. 2761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 2861847f8eSopenharmony_ci * @since 10 2961847f8eSopenharmony_ci */ 3061847f8eSopenharmony_ci/** 3161847f8eSopenharmony_ci * Declaration of the menu item on the right side. 3261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 3361847f8eSopenharmony_ci * @atomicservice 3461847f8eSopenharmony_ci * @since 11 3561847f8eSopenharmony_ci */ 3661847f8eSopenharmony_ciexport declare class EditableTitleBarMenuItem { 3761847f8eSopenharmony_ci /** 3861847f8eSopenharmony_ci * Icon resource for this menu item. 3961847f8eSopenharmony_ci * @type { ResourceStr }. 4061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 4161847f8eSopenharmony_ci * @since 10 4261847f8eSopenharmony_ci */ 4361847f8eSopenharmony_ci /** 4461847f8eSopenharmony_ci * Icon resource for this menu item. 4561847f8eSopenharmony_ci * @type { ResourceStr }. 4661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 4761847f8eSopenharmony_ci * @atomicservice 4861847f8eSopenharmony_ci * @since 11 4961847f8eSopenharmony_ci */ 5061847f8eSopenharmony_ci value: ResourceStr; 5161847f8eSopenharmony_ci 5261847f8eSopenharmony_ci /** 5361847f8eSopenharmony_ci * Icon label for this menu item. 5461847f8eSopenharmony_ci * @type { ?ResourceStr }. 5561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 5661847f8eSopenharmony_ci * @atomicservice 5761847f8eSopenharmony_ci * @since 12 5861847f8eSopenharmony_ci */ 5961847f8eSopenharmony_ci label?: ResourceStr; 6061847f8eSopenharmony_ci 6161847f8eSopenharmony_ci /** 6261847f8eSopenharmony_ci * Whether to enable this menu item. 6361847f8eSopenharmony_ci * @type { ?boolean }. 6461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 6561847f8eSopenharmony_ci * @since 10 6661847f8eSopenharmony_ci */ 6761847f8eSopenharmony_ci /** 6861847f8eSopenharmony_ci * Whether to enable this menu item. 6961847f8eSopenharmony_ci * @type { ?boolean }. 7061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 7161847f8eSopenharmony_ci * @atomicservice 7261847f8eSopenharmony_ci * @since 11 7361847f8eSopenharmony_ci */ 7461847f8eSopenharmony_ci isEnabled?: boolean; 7561847f8eSopenharmony_ci 7661847f8eSopenharmony_ci /** 7761847f8eSopenharmony_ci * Callback function when click on this menu item. 7861847f8eSopenharmony_ci * @type { ?() => void }. 7961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 8061847f8eSopenharmony_ci * @since 10 8161847f8eSopenharmony_ci */ 8261847f8eSopenharmony_ci /** 8361847f8eSopenharmony_ci * Callback function when click on this menu item. 8461847f8eSopenharmony_ci * @type { ?() => void }. 8561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 8661847f8eSopenharmony_ci * @atomicservice 8761847f8eSopenharmony_ci * @since 11 8861847f8eSopenharmony_ci */ 8961847f8eSopenharmony_ci action?: () => void; 9061847f8eSopenharmony_ci} 9161847f8eSopenharmony_ci 9261847f8eSopenharmony_ci/** 9361847f8eSopenharmony_ci * Declaration of the image item . 9461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 9561847f8eSopenharmony_ci * @crossplatform 9661847f8eSopenharmony_ci * @atomicservice 9761847f8eSopenharmony_ci * @since 12 9861847f8eSopenharmony_ci */ 9961847f8eSopenharmony_ciexport type EditableTitleBarItem = EditableTitleBarMenuItem; 10061847f8eSopenharmony_ci 10161847f8eSopenharmony_ci/** 10261847f8eSopenharmony_ci * Declaration of the left icon type. 10361847f8eSopenharmony_ci * @enum { EditableLeftIconType }. 10461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 10561847f8eSopenharmony_ci * @since 10 10661847f8eSopenharmony_ci */ 10761847f8eSopenharmony_ci/** 10861847f8eSopenharmony_ci * Declaration of the left icon type. 10961847f8eSopenharmony_ci * @enum { EditableLeftIconType }. 11061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 11161847f8eSopenharmony_ci * @atomicservice 11261847f8eSopenharmony_ci * @since 11 11361847f8eSopenharmony_ci */ 11461847f8eSopenharmony_ciexport declare enum EditableLeftIconType { 11561847f8eSopenharmony_ci /** 11661847f8eSopenharmony_ci * The back type. 11761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 11861847f8eSopenharmony_ci * @since 10 11961847f8eSopenharmony_ci */ 12061847f8eSopenharmony_ci /** 12161847f8eSopenharmony_ci * The back type. 12261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 12361847f8eSopenharmony_ci * @atomicservice 12461847f8eSopenharmony_ci * @since 11 12561847f8eSopenharmony_ci */ 12661847f8eSopenharmony_ci Back = 0, 12761847f8eSopenharmony_ci 12861847f8eSopenharmony_ci /** 12961847f8eSopenharmony_ci * The cancel type. 13061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 13161847f8eSopenharmony_ci * @since 10 13261847f8eSopenharmony_ci */ 13361847f8eSopenharmony_ci /** 13461847f8eSopenharmony_ci * The cancel type. 13561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 13661847f8eSopenharmony_ci * @atomicservice 13761847f8eSopenharmony_ci * @since 11 13861847f8eSopenharmony_ci */ 13961847f8eSopenharmony_ci Cancel = 1 14061847f8eSopenharmony_ci} 14161847f8eSopenharmony_ci 14261847f8eSopenharmony_ci/** 14361847f8eSopenharmony_ci * Indicates the options of the editable title bar. 14461847f8eSopenharmony_ci * 14561847f8eSopenharmony_ci * @interface EditableTitleBarOptions 14661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 14761847f8eSopenharmony_ci * @crossplatform 14861847f8eSopenharmony_ci * @atomicservice 14961847f8eSopenharmony_ci * @since 12 15061847f8eSopenharmony_ci */ 15161847f8eSopenharmony_ciexport declare interface EditableTitleBarOptions { 15261847f8eSopenharmony_ci /** 15361847f8eSopenharmony_ci * Background color. 15461847f8eSopenharmony_ci * 15561847f8eSopenharmony_ci * @type { ?ResourceColor } 15661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 15761847f8eSopenharmony_ci * @crossplatform 15861847f8eSopenharmony_ci * @atomicservice 15961847f8eSopenharmony_ci * @since 12 16061847f8eSopenharmony_ci */ 16161847f8eSopenharmony_ci backgroundColor?: ResourceColor; 16261847f8eSopenharmony_ci 16361847f8eSopenharmony_ci /** 16461847f8eSopenharmony_ci * Background blur style. 16561847f8eSopenharmony_ci * 16661847f8eSopenharmony_ci * @type { ?BlurStyle } 16761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 16861847f8eSopenharmony_ci * @crossplatform 16961847f8eSopenharmony_ci * @atomicservice 17061847f8eSopenharmony_ci * @since 12 17161847f8eSopenharmony_ci */ 17261847f8eSopenharmony_ci backgroundBlurStyle?: BlurStyle; 17361847f8eSopenharmony_ci 17461847f8eSopenharmony_ci /** 17561847f8eSopenharmony_ci * Indicates the types of the safe area. 17661847f8eSopenharmony_ci * 17761847f8eSopenharmony_ci * @type { ?Array<SafeAreaType> } 17861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 17961847f8eSopenharmony_ci * @crossplatform 18061847f8eSopenharmony_ci * @atomicservice 18161847f8eSopenharmony_ci * @since 12 18261847f8eSopenharmony_ci */ 18361847f8eSopenharmony_ci safeAreaTypes?: Array<SafeAreaType>; 18461847f8eSopenharmony_ci 18561847f8eSopenharmony_ci /** 18661847f8eSopenharmony_ci * Indicates the edges of the safe area. 18761847f8eSopenharmony_ci * 18861847f8eSopenharmony_ci * @type { ?Array<SafeAreaEdge> } 18961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 19061847f8eSopenharmony_ci * @crossplatform 19161847f8eSopenharmony_ci * @atomicservice 19261847f8eSopenharmony_ci * @since 12 19361847f8eSopenharmony_ci */ 19461847f8eSopenharmony_ci safeAreaEdges?: Array<SafeAreaEdge>; 19561847f8eSopenharmony_ci} 19661847f8eSopenharmony_ci 19761847f8eSopenharmony_ci/** 19861847f8eSopenharmony_ci * Declaration of the editable title bar. 19961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 20061847f8eSopenharmony_ci * @since 10 20161847f8eSopenharmony_ci */ 20261847f8eSopenharmony_ci/** 20361847f8eSopenharmony_ci * Declaration of the editable title bar. 20461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 20561847f8eSopenharmony_ci * @atomicservice 20661847f8eSopenharmony_ci * @since 11 20761847f8eSopenharmony_ci */ 20861847f8eSopenharmony_ci@Component 20961847f8eSopenharmony_ciexport declare struct EditableTitleBar { 21061847f8eSopenharmony_ci /** 21161847f8eSopenharmony_ci * Style of the left icon. 21261847f8eSopenharmony_ci * @type { EditableLeftIconType }. 21361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 21461847f8eSopenharmony_ci * @since 10 21561847f8eSopenharmony_ci */ 21661847f8eSopenharmony_ci /** 21761847f8eSopenharmony_ci * Style of the left icon. 21861847f8eSopenharmony_ci * @type { EditableLeftIconType }. 21961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 22061847f8eSopenharmony_ci * @atomicservice 22161847f8eSopenharmony_ci * @since 11 22261847f8eSopenharmony_ci */ 22361847f8eSopenharmony_ci leftIconStyle: EditableLeftIconType; 22461847f8eSopenharmony_ci 22561847f8eSopenharmony_ci /** 22661847f8eSopenharmony_ci * Image item between the left icon and the title. 22761847f8eSopenharmony_ci * @type { ?EditableTitleBarItem } 22861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 22961847f8eSopenharmony_ci * @crossplatform 23061847f8eSopenharmony_ci * @atomicservice 23161847f8eSopenharmony_ci * @since 12 23261847f8eSopenharmony_ci */ 23361847f8eSopenharmony_ci imageItem?: EditableTitleBarItem; 23461847f8eSopenharmony_ci 23561847f8eSopenharmony_ci /** 23661847f8eSopenharmony_ci * Title of this title bar. 23761847f8eSopenharmony_ci * @type { ResourceStr }. 23861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 23961847f8eSopenharmony_ci * @since 10 24061847f8eSopenharmony_ci */ 24161847f8eSopenharmony_ci /** 24261847f8eSopenharmony_ci * Title of this title bar. 24361847f8eSopenharmony_ci * @type { ResourceStr }. 24461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 24561847f8eSopenharmony_ci * @atomicservice 24661847f8eSopenharmony_ci * @since 11 24761847f8eSopenharmony_ci */ 24861847f8eSopenharmony_ci title: ResourceStr; 24961847f8eSopenharmony_ci 25061847f8eSopenharmony_ci /** 25161847f8eSopenharmony_ci * Sub-Title of this title bar. 25261847f8eSopenharmony_ci * @type { ?ResourceStr } 25361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 25461847f8eSopenharmony_ci * @crossplatform 25561847f8eSopenharmony_ci * @atomicservice 25661847f8eSopenharmony_ci * @since 12 25761847f8eSopenharmony_ci */ 25861847f8eSopenharmony_ci subtitle?: ResourceStr; 25961847f8eSopenharmony_ci 26061847f8eSopenharmony_ci /** 26161847f8eSopenharmony_ci * Whether to required the save icon. 26261847f8eSopenharmony_ci * @type { boolean } 26361847f8eSopenharmony_ci * @default true 26461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 26561847f8eSopenharmony_ci * @crossplatform 26661847f8eSopenharmony_ci * @atomicservice 26761847f8eSopenharmony_ci * @since 12 26861847f8eSopenharmony_ci */ 26961847f8eSopenharmony_ci isSaveIconRequired: boolean; 27061847f8eSopenharmony_ci 27161847f8eSopenharmony_ci /** 27261847f8eSopenharmony_ci * Menu items on the right side. 27361847f8eSopenharmony_ci * @type { ?Array<EditableTitleBarMenuItem> }. 27461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 27561847f8eSopenharmony_ci * @since 10 27661847f8eSopenharmony_ci */ 27761847f8eSopenharmony_ci /** 27861847f8eSopenharmony_ci * Menu items on the right side. 27961847f8eSopenharmony_ci * @type { ?Array<EditableTitleBarMenuItem> }. 28061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 28161847f8eSopenharmony_ci * @atomicservice 28261847f8eSopenharmony_ci * @since 11 28361847f8eSopenharmony_ci */ 28461847f8eSopenharmony_ci menuItems?: Array<EditableTitleBarMenuItem>; 28561847f8eSopenharmony_ci 28661847f8eSopenharmony_ci /** 28761847f8eSopenharmony_ci * Callback function when click on the save icon at the right side. 28861847f8eSopenharmony_ci * @type { ?() => void }. 28961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 29061847f8eSopenharmony_ci * @since 10 29161847f8eSopenharmony_ci */ 29261847f8eSopenharmony_ci /** 29361847f8eSopenharmony_ci * Callback function when click on the save icon at the right side. 29461847f8eSopenharmony_ci * @type { ?() => void }. 29561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 29661847f8eSopenharmony_ci * @atomicservice 29761847f8eSopenharmony_ci * @since 11 29861847f8eSopenharmony_ci */ 29961847f8eSopenharmony_ci onSave?: () => void; 30061847f8eSopenharmony_ci 30161847f8eSopenharmony_ci /** 30261847f8eSopenharmony_ci * Callback function when click on the cancel icon at the left side. 30361847f8eSopenharmony_ci * @type { ?() => void }. 30461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 30561847f8eSopenharmony_ci * @since 10 30661847f8eSopenharmony_ci */ 30761847f8eSopenharmony_ci /** 30861847f8eSopenharmony_ci * Callback function when click on the cancel icon at the left side. 30961847f8eSopenharmony_ci * @type { ?() => void }. 31061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 31161847f8eSopenharmony_ci * @atomicservice 31261847f8eSopenharmony_ci * @since 11 31361847f8eSopenharmony_ci */ 31461847f8eSopenharmony_ci onCancel?: () => void; 31561847f8eSopenharmony_ci 31661847f8eSopenharmony_ci /** 31761847f8eSopenharmony_ci * Indicates the options of titlebar. 31861847f8eSopenharmony_ci * @type { EditableTitleBarOptions } 31961847f8eSopenharmony_ci * @default {expandSafeAreaTypes: SafeAreaType.SYSTEM, expandSafeAreaEdges: SafeAreaEdge.TOP} 32061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 32161847f8eSopenharmony_ci * @crossplatform 32261847f8eSopenharmony_ci * @atomicservice 32361847f8eSopenharmony_ci * @since 12 32461847f8eSopenharmony_ci */ 32561847f8eSopenharmony_ci options: EditableTitleBarOptions; 32661847f8eSopenharmony_ci 32761847f8eSopenharmony_ci /** 32861847f8eSopenharmony_ci * Sets the content margin. 32961847f8eSopenharmony_ci * @type { ?LocalizedMargin } 33061847f8eSopenharmony_ci * @default {start: LengthMetrics.resource($r('sys.float.margin_left')), 33161847f8eSopenharmony_ci * <br> end: LengthMetrics.resource($r('sys.float.margin_right'))} 33261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full 33361847f8eSopenharmony_ci * @crossplatform 33461847f8eSopenharmony_ci * @atomicservice 33561847f8eSopenharmony_ci * @since 12 33661847f8eSopenharmony_ci */ 33761847f8eSopenharmony_ci @Prop contentMargin?: LocalizedMargin; 33861847f8eSopenharmony_ci} 339