1/* 2 * Copyright (c) 2025 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 XComponentContext from '../../interface/XComponentContext'; 17 18@Entry 19@Component 20struct PathDrawing { 21 private xComponentContext: XComponentContext | undefined = undefined; 22 23 build() { 24 Column() { 25 XComponent({ id: 'basicEffectXComponent', type: XComponentType.SURFACE, libraryname: 'entry' }) 26 .onLoad((xComponentContext) => { 27 this.xComponentContext = xComponentContext as XComponentContext; 28 }) 29 .backgroundColor(Color.White) 30 .width('100%') 31 .height('70%') 32 Flex({ 33 direction: FlexDirection.Row, 34 wrap: FlexWrap.Wrap, 35 justifyContent: FlexAlign.Start, 36 alignItems: ItemAlign.Start 37 }) { 38 Button($r('app.string.DrawingPathBasic')) 39 .onClick((): void => { 40 if (this.xComponentContext) { 41 this.xComponentContext.draw('CanvasGet', 'PathBasic'); 42 } 43 }) 44 .margin({ top: 10, bottom: 10, left: 10, right: 10 }) 45 Button($r('app.string.DrawingPathAdd')) 46 .onClick((): void => { 47 if (this.xComponentContext) { 48 this.xComponentContext.draw('CanvasGet', 'PathAdd'); 49 } 50 }) 51 .margin({ top: 10, bottom: 10, left: 10, right: 10 }) 52 Button($r('app.string.DrawingPathTo')) 53 .onClick((): void => { 54 if (this.xComponentContext) { 55 this.xComponentContext.draw('CanvasGet', 'PathTo'); 56 } 57 }) 58 .margin({ top: 10, bottom: 10, left: 10, right: 10 }) 59 Button($r('app.string.DrawingPathStar')) 60 .onClick((): void => { 61 if (this.xComponentContext) { 62 this.xComponentContext.draw('CanvasGet', 'PathStar'); 63 } 64 }) 65 .margin({ top: 10, bottom: 10, left: 10, right: 10 }) 66 Button($r('app.string.DrawingBuildFromSvgString')) 67 .onClick((): void => { 68 if (this.xComponentContext) { 69 this.xComponentContext.draw('CanvasGet', 'BuildFromSvgString'); 70 } 71 }) 72 .margin({ top: 10, bottom: 10, left: 10, right: 10 }) 73 } 74 .width('100%') 75 .height('30%') 76 } 77 } 78}