1 /* 2 * Copyright (c) 2021 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 16 class Test { 17 align:number = 0; 18 fit:number = 0; 19 overflow:number = 0; 20 text:number = 0; 21 width:number = 0; 22 constructor(align:number, fit:number, overflow:number, text:number, width:number) { 23 this.align = align; 24 this.fit = fit; 25 this.overflow = overflow; 26 this.text = text; 27 this.width = width; 28 } 29 } 30 31 @Entry 32 @Component 33 struct TestView { 34 35 @State 36 currentTest:Test = new Test(0, 0, 0, 0, 0); 37 38 aligns:string[] = [ 39 "TopLeft", 40 "TopCenter", 41 "TopRight", 42 "CenterLeft", 43 "Center", 44 "CenterRight", 45 "BottomLeft", 46 "BottomCenter", 47 "BottomRight" 48 ]; 49 50 stackFits:string[] = [ 51 "Keep", 52 "Stretch", 53 "Inherit", 54 "FirstChild" 55 ]; 56 57 overflows:string[] = [ 58 "Clip", 59 "Observable" 60 ]; 61 62 texts:string[] = [ 63 "Test text", 64 "This is a very long text for demonstration purposes." 65 ]; 66 67 widths:number[] = [ 68 200, 69 500, 70 800 71 ]; 72 73 alignToText(align) { 74 if (align >= this.aligns.length) 75 return "Unknown (" + align + ")"; 76 77 return "Align." + this.aligns[align] + "(" + /*Align[this.aligns[align]]*/ + ")"; 78 } // alignToText 79 80 fitToText(fit) { 81 if (fit >= this.stackFits.length) 82 return "Unknown (" + fit + ")"; 83 84 return "StackFit." + this.stackFits[fit] + "(" + /*StackFit[this.stackFits[fit]]*/ + ")"; 85 } 86 87 overflowToText(overflow) { 88 if (overflow >= this.overflows.length) 89 return "Unknown (" + overflow + ")"; 90 91 return "Overflow." + this.overflows[overflow] + "(" + /*Overflow[this.overflows[overflow]]*/ + ")"; 92 } 93 94 build() { 95 Column(){ 96 Row(){ 97 Button("Alignment") 98 .onClick(() => { 99 this.currentTest.align = (this.currentTest.align + 1) % this.aligns.length; 100 }) 101 Text(this.alignToText(this.currentTest.align)) 102 } 103 Row(){ 104 Button("Fit") 105 .onClick(() => { 106 this.currentTest.fit = (this.currentTest.fit + 1) % this.stackFits.length; 107 }) 108 Text(this.fitToText(this.currentTest.fit)) 109 } 110 Row(){ 111 Button("Overflow") 112 .onClick(() => { 113 this.currentTest.overflow = (this.currentTest.overflow + 1) % this.overflows.length; 114 }) 115 Text(this.overflowToText(this.currentTest.overflow)) 116 } 117 Row(){ 118 Button("Text") 119 .onClick(() => { 120 this.currentTest.text = (this.currentTest.text + 1) % this.texts.length; 121 }) 122 Text(this.texts[this.currentTest.text]) 123 } 124 Row(){ 125 Button("Width") 126 .onClick(() => { 127 this.currentTest.width = (this.currentTest.width + 1) % this.widths.length; 128 }) 129 Text("" + this.widths[this.currentTest.width]) 130 } 131 Stack(){ 132 Column(){ 133 134 } 135 .width(350).height(400).backgroundColor(0xaaaaaa) 136 Text(this.texts[this.currentTest.text]).backgroundColor(0x00aaff).fontColor("#ffffff") 137 .width(this.widths[this.currentTest.width]) 138 } 139 //.alignment(Align[this.aligns[this.currentTest.align]]).stackFit(StackFit[this.stackFits[this.currentTest.fit]]) 140 //.Overflow(Overflow[this.overflows[this.currentTest.overflow]]).backgroundColor(0x0000cd).width(500.0).height(400.0) 141 Stack(){ 142 Text("test1") 143 Text("Test2") 144 } 145 } 146 .alignItems(HorizontalAlign.Center) 147 } 148 } 149