1/* 2 * Copyright (c) 2022-2023 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 16import { Log } from '../../utils/Log'; 17import { ActionBarProp } from '../browserOperation/ActionBarProp'; 18import { Action } from '../browserOperation/Action'; 19import { ActionBarButton } from './ActionBarButton'; 20 21const TAG: string = 'common_DetailMenuPanel'; 22 23// Large picture button for dynamic refresh 24@Component 25export struct DetailMenuPanel { 26 @Consume menuList: Action[]; 27 actionBarProp: ActionBarProp = new ActionBarProp(); 28 onMenuClicked: Function = (): void => {}; 29 isLeft = false; 30 31 build() { 32 Row() { 33 ForEach(this.menuList, (menu: Action) => { 34 ActionBarButton({ 35 res: menu.iconRes, 36 action: menu, 37 onMenuClicked: this.onMenuClicked, 38 isLeft: this.isLeft, 39 isFirst: menu.actionID === this.menuList[0].actionID, 40 isAutoTint: menu.isAutoTint, 41 colorMode: this.actionBarProp.getColorMode() 42 }) 43 .margin({ right: $r('app.float.max_padding_end') }) 44 }, (menu: Action) => menu.actionID.toString()) 45 } 46 .key('DetailMenuPanel') 47 } 48 49 private onBuildDone(): void { 50 Log.info(TAG, `onBuildDone, menu's size: ${this.menuList.length}`); 51 this.menuList.forEach((menu: Action) => { 52 Log.info(TAG, `ActionId: ${menu.actionID}`) 53 }) 54 } 55}