1c36cf2e9Sopenharmony_ci/* 2c36cf2e9Sopenharmony_ci * Copyright (c) 2023-2023 Huawei Device Co., Ltd. 3c36cf2e9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c36cf2e9Sopenharmony_ci * you may not use this file except in compliance with the License. 5c36cf2e9Sopenharmony_ci * You may obtain a copy of the License at 6c36cf2e9Sopenharmony_ci * 7c36cf2e9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c36cf2e9Sopenharmony_ci * 9c36cf2e9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c36cf2e9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c36cf2e9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c36cf2e9Sopenharmony_ci * See the License for the specific language governing permissions and 13c36cf2e9Sopenharmony_ci * limitations under the License. 14c36cf2e9Sopenharmony_ci */ 15c36cf2e9Sopenharmony_ci 16c36cf2e9Sopenharmony_ci@Component 17c36cf2e9Sopenharmony_ciexport struct CancelButton { 18c36cf2e9Sopenharmony_ci cancelLabel?: ResourceStr; 19c36cf2e9Sopenharmony_ci cancelWidth?: Length; 20c36cf2e9Sopenharmony_ci cancelHeight?: Length; 21c36cf2e9Sopenharmony_ci cancelClick?: (event?: ClickEvent) => void; 22c36cf2e9Sopenharmony_ci build() { 23c36cf2e9Sopenharmony_ci Button(this.cancelLabel) 24c36cf2e9Sopenharmony_ci .width(this.cancelWidth) 25c36cf2e9Sopenharmony_ci .height(this.cancelHeight) 26c36cf2e9Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary_activated')) 27c36cf2e9Sopenharmony_ci .backgroundColor($r('sys.color.ohos_id_color_button_normal')) 28c36cf2e9Sopenharmony_ci .onClick(this.cancelClick); 29c36cf2e9Sopenharmony_ci } 30c36cf2e9Sopenharmony_ci} 31c36cf2e9Sopenharmony_ci 32c36cf2e9Sopenharmony_ci@Component 33c36cf2e9Sopenharmony_ciexport struct ClickableImage { 34c36cf2e9Sopenharmony_ci imageSrc?: ResourceStr; 35c36cf2e9Sopenharmony_ci imageWidth?: Length; 36c36cf2e9Sopenharmony_ci imageHeight?: Length; 37c36cf2e9Sopenharmony_ci clickEvent?: (event?: ClickEvent) => void; 38c36cf2e9Sopenharmony_ci isHoverEnable: boolean = false; 39c36cf2e9Sopenharmony_ci isHover: boolean = false; 40c36cf2e9Sopenharmony_ci @State bckColor: Resource | undefined = undefined; 41c36cf2e9Sopenharmony_ci build() { 42c36cf2e9Sopenharmony_ci Image(this.imageSrc) 43c36cf2e9Sopenharmony_ci .width(this.imageWidth) 44c36cf2e9Sopenharmony_ci .height(this.imageHeight) 45c36cf2e9Sopenharmony_ci .backgroundColor(this.bckColor) 46c36cf2e9Sopenharmony_ci .borderRadius($r('sys.float.ohos_id_corner_radius_clicked')) 47c36cf2e9Sopenharmony_ci .onClick(this.clickEvent) 48c36cf2e9Sopenharmony_ci .onHover((isHover) => { 49c36cf2e9Sopenharmony_ci if (this.isHoverEnable && this.isHover != isHover) { 50c36cf2e9Sopenharmony_ci if (isHover) { 51c36cf2e9Sopenharmony_ci this.bckColor = $r('sys.color.ohos_id_color_hover') 52c36cf2e9Sopenharmony_ci } else { 53c36cf2e9Sopenharmony_ci this.bckColor = $r('sys.color.ohos_id_color_background'); 54c36cf2e9Sopenharmony_ci } 55c36cf2e9Sopenharmony_ci } 56c36cf2e9Sopenharmony_ci this.isHover = isHover; 57c36cf2e9Sopenharmony_ci }) 58c36cf2e9Sopenharmony_ci .onTouch((event) => { 59c36cf2e9Sopenharmony_ci if (event.type === TouchType.Down) { 60c36cf2e9Sopenharmony_ci this.isHover = false; 61c36cf2e9Sopenharmony_ci this.bckColor = $r('sys.color.ohos_fa_click_effect') 62c36cf2e9Sopenharmony_ci } else if (event.type === TouchType.Up) { 63c36cf2e9Sopenharmony_ci this.bckColor = $r('sys.color.ohos_id_color_background'); 64c36cf2e9Sopenharmony_ci } 65c36cf2e9Sopenharmony_ci }) 66c36cf2e9Sopenharmony_ci } 67c36cf2e9Sopenharmony_ci} 68c36cf2e9Sopenharmony_ci 69c36cf2e9Sopenharmony_ci 70