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 16exports.source = ` 17import router from '@system.router' 18import app from '@system.app' 19 20@Entry 21@Component 22struct MyComponent { 23 @State offsetX1: double = 0 24 @State offsetY1: double = 0 25 @State offsetX2: double = 0 26 @State offsetY2: double = 0 27 @State offsetX3: double = 0 28 @State offsetY3: double = 0 29 30 build() { 31 Column() { 32 Text('fingers:1,all,offsetX: ' + this.offsetX1 + ' offsetY: ' + this.offsetY1) 33 .fontSize(25) 34 .width(200) 35 .height(200) 36 .backgroundColor('red') 37 .gesture( 38 PanGesture({fingers: 1, direction: Direction.All, distance: 15}) 39 .onActionStart((event: GestureEvent) => { 40 this.offsetX1 = event.offsetX 41 this.offsetY1 = event.offsetY 42 console.error('pan gesture on clicked') 43 }) 44 .onActionUpdate((event: GestureEvent) => { 45 this.offsetX1 = event.offsetX 46 this.offsetY1 = event.offsetY 47 console.error('pan gesture on clicked') 48 }) 49 .onActionEnd((event: GestureEvent) => { 50 this.offsetX1 = event.offsetX 51 this.offsetY1 = event.offsetY 52 console.error('pan gesture on clicked') 53 }) 54 .onActionCancel(() => { 55 }) 56 ) 57 58 Text('fingers:1,horizontal,offsetX: ' + this.offsetX2 + ' offsetY: ' + this.offsetY2) 59 .fontSize(25) 60 .width(400) 61 .height(200) 62 .backgroundColor('green') 63 .gesture( 64 PanGesture({fingers: 1, direction: Direction.Horizontal, distance: 15}) 65 .onActionStart((event: GestureEvent) => { 66 this.offsetX2 = event.offsetX 67 this.offsetY2 = event.offsetY 68 console.error('pan gesture on clicked') 69 }) 70 .onActionUpdate((event: GestureEvent) => { 71 this.offsetX2 = event.offsetX 72 this.offsetY2 = event.offsetY 73 console.error('pan gesture on clicked') 74 }) 75 .onActionEnd((event: GestureEvent) => { 76 this.offsetX2 = event.offsetX 77 this.offsetY2 = event.offsetY 78 console.error('pan gesture on clicked') 79 }) 80 .onActionCancel(() => { 81 }) 82 ) 83 84 Text('fingers:1,vertical,offsetX: ' + this.offsetX3 + ' offsetY: ' + this.offsetY3) 85 .fontSize(25) 86 .width(200) 87 .height(400) 88 .backgroundColor('blue') 89 .gesture( 90 PanGesture({fingers: 1, direction: Direction.Vertical, distance: 15}) 91 .onActionStart((event: GestureEvent) => { 92 this.offsetX3 = event.offsetX 93 this.offsetY3 = event.offsetY 94 console.error('pan gesture on clicked') 95 }) 96 .onActionUpdate((event: GestureEvent) => { 97 this.offsetX3 = event.offsetX 98 this.offsetY3 = event.offsetY 99 console.error('pan gesture on clicked') 100 }) 101 .onActionEnd((event: GestureEvent) => { 102 this.offsetX3 = event.offsetX 103 this.offsetY3 = event.offsetY 104 console.error('pan gesture on clicked') 105 }) 106 .onActionCancel(() => { 107 }) 108 ) 109 } 110 } 111}` 112 113exports.expectResult = 114`"use strict"; 115var router = globalThis.requireNativeModule('system.router'); 116var app = globalThis.requireNativeModule('system.app'); 117class MyComponent extends View { 118 constructor(compilerAssignedUniqueChildId, parent, params) { 119 super(compilerAssignedUniqueChildId, parent); 120 this.__offsetX1 = new ObservedPropertyObject(0, this, "offsetX1"); 121 this.__offsetY1 = new ObservedPropertyObject(0, this, "offsetY1"); 122 this.__offsetX2 = new ObservedPropertyObject(0, this, "offsetX2"); 123 this.__offsetY2 = new ObservedPropertyObject(0, this, "offsetY2"); 124 this.__offsetX3 = new ObservedPropertyObject(0, this, "offsetX3"); 125 this.__offsetY3 = new ObservedPropertyObject(0, this, "offsetY3"); 126 this.updateWithValueParams(params); 127 } 128 updateWithValueParams(params) { 129 if (params.offsetX1 !== undefined) { 130 this.offsetX1 = params.offsetX1; 131 } 132 if (params.offsetY1 !== undefined) { 133 this.offsetY1 = params.offsetY1; 134 } 135 if (params.offsetX2 !== undefined) { 136 this.offsetX2 = params.offsetX2; 137 } 138 if (params.offsetY2 !== undefined) { 139 this.offsetY2 = params.offsetY2; 140 } 141 if (params.offsetX3 !== undefined) { 142 this.offsetX3 = params.offsetX3; 143 } 144 if (params.offsetY3 !== undefined) { 145 this.offsetY3 = params.offsetY3; 146 } 147 } 148 aboutToBeDeleted() { 149 this.__offsetX1.aboutToBeDeleted(); 150 this.__offsetY1.aboutToBeDeleted(); 151 this.__offsetX2.aboutToBeDeleted(); 152 this.__offsetY2.aboutToBeDeleted(); 153 this.__offsetX3.aboutToBeDeleted(); 154 this.__offsetY3.aboutToBeDeleted(); 155 SubscriberManager.Get().delete(this.id()); 156 } 157 get offsetX1() { 158 return this.__offsetX1.get(); 159 } 160 set offsetX1(newValue) { 161 this.__offsetX1.set(newValue); 162 } 163 get offsetY1() { 164 return this.__offsetY1.get(); 165 } 166 set offsetY1(newValue) { 167 this.__offsetY1.set(newValue); 168 } 169 get offsetX2() { 170 return this.__offsetX2.get(); 171 } 172 set offsetX2(newValue) { 173 this.__offsetX2.set(newValue); 174 } 175 get offsetY2() { 176 return this.__offsetY2.get(); 177 } 178 set offsetY2(newValue) { 179 this.__offsetY2.set(newValue); 180 } 181 get offsetX3() { 182 return this.__offsetX3.get(); 183 } 184 set offsetX3(newValue) { 185 this.__offsetX3.set(newValue); 186 } 187 get offsetY3() { 188 return this.__offsetY3.get(); 189 } 190 set offsetY3(newValue) { 191 this.__offsetY3.set(newValue); 192 } 193 render() { 194 Column.create(); 195 Text.create('fingers:1,all,offsetX: ' + this.offsetX1 + ' offsetY: ' + this.offsetY1); 196 Text.fontSize(25); 197 Text.width(200); 198 Text.height(200); 199 Text.backgroundColor('red'); 200 Gesture.create(GesturePriority.Low); 201 PanGesture.create({ fingers: 1, direction: Direction.All, distance: 15 }); 202 PanGesture.onActionStart((event) => { 203 this.offsetX1 = event.offsetX; 204 this.offsetY1 = event.offsetY; 205 console.error('pan gesture on clicked'); 206 }); 207 PanGesture.onActionUpdate((event) => { 208 this.offsetX1 = event.offsetX; 209 this.offsetY1 = event.offsetY; 210 console.error('pan gesture on clicked'); 211 }); 212 PanGesture.onActionEnd((event) => { 213 this.offsetX1 = event.offsetX; 214 this.offsetY1 = event.offsetY; 215 console.error('pan gesture on clicked'); 216 }); 217 PanGesture.onActionCancel(() => { 218 }); 219 PanGesture.pop(); 220 Gesture.pop(); 221 Text.pop(); 222 Text.create('fingers:1,horizontal,offsetX: ' + this.offsetX2 + ' offsetY: ' + this.offsetY2); 223 Text.fontSize(25); 224 Text.width(400); 225 Text.height(200); 226 Text.backgroundColor('green'); 227 Gesture.create(GesturePriority.Low); 228 PanGesture.create({ fingers: 1, direction: Direction.Horizontal, distance: 15 }); 229 PanGesture.onActionStart((event) => { 230 this.offsetX2 = event.offsetX; 231 this.offsetY2 = event.offsetY; 232 console.error('pan gesture on clicked'); 233 }); 234 PanGesture.onActionUpdate((event) => { 235 this.offsetX2 = event.offsetX; 236 this.offsetY2 = event.offsetY; 237 console.error('pan gesture on clicked'); 238 }); 239 PanGesture.onActionEnd((event) => { 240 this.offsetX2 = event.offsetX; 241 this.offsetY2 = event.offsetY; 242 console.error('pan gesture on clicked'); 243 }); 244 PanGesture.onActionCancel(() => { 245 }); 246 PanGesture.pop(); 247 Gesture.pop(); 248 Text.pop(); 249 Text.create('fingers:1,vertical,offsetX: ' + this.offsetX3 + ' offsetY: ' + this.offsetY3); 250 Text.fontSize(25); 251 Text.width(200); 252 Text.height(400); 253 Text.backgroundColor('blue'); 254 Gesture.create(GesturePriority.Low); 255 PanGesture.create({ fingers: 1, direction: Direction.Vertical, distance: 15 }); 256 PanGesture.onActionStart((event) => { 257 this.offsetX3 = event.offsetX; 258 this.offsetY3 = event.offsetY; 259 console.error('pan gesture on clicked'); 260 }); 261 PanGesture.onActionUpdate((event) => { 262 this.offsetX3 = event.offsetX; 263 this.offsetY3 = event.offsetY; 264 console.error('pan gesture on clicked'); 265 }); 266 PanGesture.onActionEnd((event) => { 267 this.offsetX3 = event.offsetX; 268 this.offsetY3 = event.offsetY; 269 console.error('pan gesture on clicked'); 270 }); 271 PanGesture.onActionCancel(() => { 272 }); 273 PanGesture.pop(); 274 Gesture.pop(); 275 Text.pop(); 276 Column.pop(); 277 } 278} 279loadDocument(new MyComponent("1", undefined, {})); 280` 281