• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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