/*
* Copyright (c) 2024 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.@
*/
/**
* @file api/@ohos.arkui.advanced.SegmentedButton.d.ts
* @kit ArkUI
*/
import { ColorMetrics, LengthMetrics } from '@ohos.arkui.node';
import { ImageModifier, SymbolGlyphModifier, TextModifier } from '@ohos.arkui.modifier';
import { SizeT } from '@ohos.arkui.node';
/**
* Defines the options of the segmented button item.
*
* @interface SegmentButtonV2ItemOptions
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
export interface SegmentButtonV2ItemOptions {
/**
* Sets the text of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
text?: ResourceStr;
/**
* Sets the image icon of the segmented button item.
* This field will be useless if the symbol field is sets.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
icon?: ResourceStr;
/**
* Sets the symbol icon of the segmented button item.
*
* @type { ?Resource }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
symbol?: Resource;
/**
* Sets whether segmented button item is enabled?
*
* @type { ?boolean }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
enabled?: boolean;
/**
* Sets modifier for the text of the segmented button item.
*
* @type { ?TextModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
textModifier?: TextModifier;
/**
* Sets modifier for the image icon of the segmented button item.
*
* @type { ?ImageModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
iconModifier?: ImageModifier;
/**
* Sets modifier for the symbol icon of the segmented button item.
*
* @type { ?SymbolGlyphModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
symbolModifier?: SymbolGlyphModifier;
/**
* Sets the accessibility text of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
accessibilityText?: ResourceStr;
/**
* Sets the accessibility description of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
accessibilityDescription?: ResourceStr;
/**
* Sets the accessibility level of the segmented button item.
*
* @type { ?string }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
accessibilityLevel?: string;
}
/**
* The callback function that will be invoked when the selectedIndex of the segmented button is changed.
*
* @typedef { function } OnSelectedIndexChange
* @param { number } selectedIndex - the index of selected item
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
export type OnSelectedIndexChange = (selectedIndex: number) => void;
/**
* The callback function that will be invoked when the selectedIndexes of the segmented button is changed.
*
* @typedef { function } OnSelectedIndexesChange
* @param { number[] } selectedIndexes - the index of selected items
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
export type OnSelectedIndexesChange = (selectedIndexes: number[]) => void;
/**
* Defines segmented button item.
*
* @interface SegmentButtonV2Item
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@ObservedV2
export declare class SegmentButtonV2Item {
/**
* Sets the text of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace text?: ResourceStr;
/**
* Sets the image icon of the segmented button item.
* This field will be useless if the symbol field is sets.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace icon?: ResourceStr;
/**
* Sets the symbol icon of the segmented button item.
*
* @type { ?Resource }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace symbol?: Resource;
/**
* Sets whether segmented button item is enabled?
*
* @type { ?boolean }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace enabled: boolean;
/**
* Sets modifier for the text of the segmented button item.
*
* @type { ?TextModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace textModifier?: TextModifier;
/**
* Sets modifier for the image icon of the segmented button item.
*
* @type { ?ImageModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace iconModifier?: ImageModifier;
/**
* Sets modifier for the symbol icon of the segmented button item.
*
* @type { ?SymbolGlyphModifier }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace symbolModifier?: SymbolGlyphModifier;
/**
* Sets the accessibility text of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace accessibilityText?: ResourceStr;
/**
* Sets the accessibility description of the segmented button item.
*
* @type { ?ResourceStr }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace accessibilityDescription?: ResourceStr;
/**
* Sets the accessibility level of the segmented button item.
*
* @type { ?string }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Trace accessibilityLevel?: string;
/**
* The constructor of SegmentedButtonItem
*
* @param { SegmentedButtonItemOptions } options - the options of the segmented button item
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
constructor(options: SegmentButtonV2ItemOptions);
/**
* Is the segmented button item set with both text and icon?
*
* @type { boolean }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
get isHybrid(): boolean;
}
/**
* Defines the items of the segmented button.
*
* @extends Array<SegmentButtonV2Item>
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@ObservedV2
export declare class SegmentButtonV2Items extends Array<SegmentButtonV2Item> {
/**
* The constructor of SegmentedButtonItems
*
* @param { SegmentButtonV2ItemOptions[] } items - the options array of the segmented button items
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
constructor(items: SegmentButtonV2ItemOptions[]);
/**
* Is there an option in the segmented button options that sets both text and icon?
*
* @type { boolean }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
get hasHybrid(): boolean;
}
/**
* Defines segmented button with tab style.
*
* @struct TabSegmentedButton
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@ComponentV2
export declare struct TabSegmentButtonV2 {
/**
* Sets the items of the segmented button.
*
* @type { SegmentButtonV2Items }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly items: SegmentButtonV2Items;
/**
* Sets the selected index of the segmented button.
*
* @type { number }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly selectedIndex: number;
/**
* Sets the callback function which will be invoked when the selected index of the segmented button is changed.
*
* @type { ?OnSelectedIndexChange }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
$selectedIndex?: OnSelectedIndexChange;
/**
* Sets the callback function which will be invoked when the item of the segmented button is clicked.
*
* @type { ?Callback<number> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
onItemClicked?: Callback<number>;
/**
* Sets the min font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinFontScale?: number | Resource;
/**
* Sets the max font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMaxFontScale?: number | Resource;
/**
* Sets the space for all item of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSpace?: LengthMetrics;
/**
* Sets the font size for the text of all segmented button items that are not selected.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontSize?: LengthMetrics;
/**
* Sets the font size for the text of all segmented button selected items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontSize?: LengthMetrics;
/**
* Sets the font color for the text of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontColor?: ColorMetrics;
/**
* Sets the font color for the text of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontColor?: ColorMetrics;
/**
* Sets the font weight for the text of all segmented button items that are not selected.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontWeight?: FontWeight;
/**
* Sets the font weight for the text of all segmented button selected items.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontWeight?: FontWeight;
/**
* Sets the border radius for all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBorderRadius?: LengthMetrics;
/**
* Sets the background color for all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedBackgroundColor?: ColorMetrics;
/**
* Sets the size for the icon of all segmented button items.
*
* @type { ?SizeT<LengthMetrics> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconSize?: SizeT<LengthMetrics>;
/**
* Sets the fill color for the icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconFillColor?: ColorMetrics;
/**
* Sets the fill color for the icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedIconFillColor?: ColorMetrics;
/**
* Sets the font size for the symbol icon of all segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontSize?: LengthMetrics;
/**
* Sets the font color for the symbol icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontColor?: ColorMetrics;
/**
* Sets the font color for the symbol icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedSymbolFontColor?: ColorMetrics;
/**
* Sets the min height of all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinHeight?: LengthMetrics;
/**
* Sets the padding of all segmented button items.
*
* @type { ?LocalizedPadding }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemPadding?: LocalizedPadding;
/**
* Sets the shadow of all segmented button items.
*
* @type { ?(ShadowOptions | ShadowStyle) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemShadow?: ShadowOptions | ShadowStyle;
/**
* Sets the background color of the segmented button.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundColor?: ColorMetrics;
/**
* Sets the background blur style of the segmented button.
*
* @type { ?BlurStyle }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundBlurStyle?: BlurStyle;
/**
* Sets the background blur style options of the segmented button.
*
* @type { ?BackgroundBlurStyleOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions;
/**
* Sets the background effect of the segmented button.
*
* @type { ?BackgroundEffectOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundEffect?: BackgroundEffectOptions;
/**
* Sets the border radius of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBorderRadius?: LengthMetrics;
/**
* Sets the min height of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonMinHeight?: LengthMetrics;
/**
* Sets the padding of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonPadding?: LengthMetrics;
/**
* Sets the language direction of the segmented button.
*
* @type { ?Direction }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly languageDirection?: Direction;
/**
* Sets the build function of the segmented button.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
build(): void;
}
/**
* Defines the segmented button with capsule style.
*
* @struct CapsuleSegmentButtonV2
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@ComponentV2
export declare struct CapsuleSegmentButtonV2 {
/**
* Sets the items of the segmented button.
*
* @type { SegmentButtonV2Items }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly items: SegmentButtonV2Items;
/**
* Sets the selected index of the segmented button.
*
* @type { number }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly selectedIndex: number;
/**
* Sets the callback function which will be invoked when the selected index of the segmented button is changed.
*
* @type { ?OnSelectedIndexChange }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
$selectedIndex?: OnSelectedIndexChange;
/**
* Sets the callback function which will be invoked when the item of the segmented button is clicked.
*
* @type { ?Callback<number> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
onItemClicked?: Callback<number>;
/**
* Sets the min font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinFontScale?: number | Resource;
/**
* Sets the max font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMaxFontScale?: number | Resource;
/**
* Sets the space for all item of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSpace?: LengthMetrics;
/**
* Sets the font color for the text of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontColor?: ColorMetrics;
/**
* Sets the font color for the text of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontColor?: ColorMetrics;
/**
* Sets the font size for the text of all segmented button items that are not selected.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontSize?: LengthMetrics;
/**
* Sets the font size for the text of all segmented button selected items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontSize?: LengthMetrics;
/**
* Sets the font weight for the text of all segmented button items that are not selected.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontWeight?: FontWeight;
/**
* Sets the font weight for the text of all segmented button selected items.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontWeight?: FontWeight;
/**
* Sets the border radius for all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBorderRadius?: LengthMetrics;
/**
* Sets the background color for all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedBackgroundColor?: ColorMetrics;
/**
* Sets the size for the icon of all segmented button items.
*
* @type { ?SizeT<LengthMetrics> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconSize?: SizeT<LengthMetrics>;
/**
* Sets the fill color for the icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconFillColor?: ColorMetrics;
/**
* Sets the fill color for the icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedIconFillColor?: ColorMetrics;
/**
* Sets the font size for the symbol icon of all segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontSize?: LengthMetrics;
/**
* Sets the font color for the symbol icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontColor?: ColorMetrics;
/**
* Sets the font color for the symbol icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedSymbolFontColor?: ColorMetrics;
/**
* Sets the min height of all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinHeight?: LengthMetrics;
/**
* Sets the padding of all segmented button items.
*
* @type { ?LocalizedPadding }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemPadding?: LocalizedPadding;
/**
* Sets the shadow of all segmented button items.
*
* @type { ?(ShadowOptions | ShadowStyle) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemShadow?: ShadowOptions | ShadowStyle;
/**
* Sets the background color of the segmented button.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundColor?: ColorMetrics;
/**
* Sets the background blur style of the segmented button.
*
* @type { ?BlurStyle }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundBlurStyle?: BlurStyle;
/**
* Sets the background blur style options of the segmented button.
*
* @type { ?BackgroundBlurStyleOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions;
/**
* Sets the background effect of the segmented button.
*
* @type { ?BackgroundEffectOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBackgroundEffect?: BackgroundEffectOptions;
/**
* Sets the border radius of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonBorderRadius?: LengthMetrics;
/**
* Sets the min height of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonMinHeight?: LengthMetrics;
/**
* Sets the padding of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly buttonPadding?: LengthMetrics;
/**
* Sets the language direction of the segmented button.
*
* @type { ?Direction }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly languageDirection?: Direction;
/**
* Sets the build function of the segmented button.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
build(): void;
}
/**
* Defines the segmented button with capsule style.
*
* @struct CapsuleSegmentButtonV2
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@ComponentV2
export declare struct MultiCapsuleSegmentButtonV2 {
/**
* Sets the items of the segmented button.
*
* @type { SegmentButtonV2Items }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly items: SegmentButtonV2Items;
/**
* Sets the selection of the segmented button.
*
* @type { number[] }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Require
@Param
readonly selectedIndexes: number[];
/**
* Sets the callback function will be invoked when the selectedInexes field of the segmented button is changed.
*
* @type { ?OnSelectedIndexesChange } OnSelectedIndexesChange
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
$selectedIndexes: OnSelectedIndexesChange;
/**
* Sets the callback function will be invoked when the item of the segmented button is clicked.
*
* @type { ?Callback<number> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Event
onItemClicked?: Callback<number>;
/**
* Sets the min font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinFontScale?: number | Resource;
/**
* Sets the max font scale for all items of the segmented button.
*
* @type { ?(number | Resource) }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMaxFontScale?: number | Resource;
/**
* Sets the space for each item of the segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSpace?: LengthMetrics;
/**
* Sets the font color for the text of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontColor?: ColorMetrics;
/**
* Sets the font color for the text of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontColor?: ColorMetrics;
/**
* Sets the font size for the text of all segmented button items that are not selected.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontSize?: LengthMetrics;
/**
* Sets the font size for the text of all segmented button selected items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontSize?: LengthMetrics;
/**
* Sets the font weight for the text of all segmented button items that are not selected.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemFontWeight?: FontWeight;
/**
* Sets the font weight for the text of all segmented button selected items.
*
* @type { ?FontWeight }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedFontWeight?: FontWeight;
/**
* Sets the border radius for all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBorderRadius?: LengthMetrics;
/**
* Sets the background color for all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBackgroundColor?: ColorMetrics;
/**
* Sets the background effect of all segmented button items that are not selected.
*
* @type { ?BackgroundEffectOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBackgroundEffect?: BackgroundEffectOptions;
/**
* Sets the background blur style of all segmented button items that are not selected.
*
* @type { ?BlurStyle }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBackgroundBlurStyle?: BlurStyle;
/**
* Sets the background blur style options of all segmented button items that are not selected.
*
* @type { ?BackgroundBlurStyleOptions }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemBackgroundBlurStyleOptions?: BackgroundBlurStyleOptions;
/**
* Sets the background color for all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedBackgroundColor?: ColorMetrics;
/**
* Sets the size for the icon of all segmented button items.
*
* @type { ?SizeT<LengthMetrics> }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconSize?: SizeT<LengthMetrics>;
/**
* Sets the fill color for the icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemIconFillColor?: ColorMetrics;
/**
* Sets the fill color for the icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedIconFillColor?: ColorMetrics;
/**
* Sets the font size for the symbol icon of all segmented button.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontSize?: LengthMetrics;
/**
* Sets the font color for the symbol icon of all segmented button items that are not selected.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSymbolFontColor?: ColorMetrics;
/**
* Sets the font color for the symbol icon of all segmented button selected items.
*
* @type { ?ColorMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemSelectedSymbolFontColor?: ColorMetrics;
/**
* Sets the min height of all segmented button items.
*
* @type { ?LengthMetrics }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemMinHeight?: LengthMetrics;
/**
* Sets the padding of all segmented button items.
*
* @type { ?LocalizedPadding }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly itemPadding?: LocalizedPadding;
/**
* Sets the language direction of the segmented button.
*
* @type { ?Direction }
* @readonly
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
@Param
readonly languageDirection?: Direction;
/**
* Sets the build function of the segmented button.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @crossplatform
* @atomicservice
* @since 18 dynamic
*/
build(): void;
}