• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import {
2  memo,
3  __memo_context_type,
4  __memo_id_type,
5  State,
6  StateDecoratedVariable,
7  MutableState,
8  stateOf,
9  observableProxy
10} from '@ohos.arkui.stateManagement' // should be insert by ui-plugins
11
12import {
13  Text,
14  TextAttribute,
15  Column,
16  Component,
17  Button,
18  ButtonAttribute,
19  ClickEvent,
20  UserView,
21  TapGesture,
22  GestureGroup,
23  GestureMask,
24  GestureEvent,
25  LongPressGesture,
26  PanGesture,
27  PinchGesture,
28  GestureMode,
29  SourceTool,
30  SwipeGesture,
31  RotationGesture,
32  SwipeDirection,
33  PanGestureOptions,
34  PanGestureHandlerOptions,
35  PanDirection,
36  Row,
37  GestureInfo,
38  NavDestination,
39  NavPathStack,
40  NavDestinationContext,
41  Callback
42} from '@ohos.arkui.component'  // TextAttribute should be insert by ui-plugins
43
44import hilog from '@ohos.hilog'
45
46@Component
47export struct GestureTest {
48  @State stateVar: string = 'state var';
49  message: string = 'var';
50  panOptionNormal: PanGestureOptions = new PanGestureOptions({
51    fingers: 2,
52    distance: 5,
53    direction: PanDirection.Horizontal,
54    isFingerCountLimited: true
55  })
56
57  panOptionAbnormal: PanGestureOptions = new PanGestureOptions({
58    fingers: -1,
59    distance: -1,
60    direction: undefined,
61    isFingerCountLimited: undefined
62  })
63
64  aboutToAppear() {
65    this.panOptionNormal.setFingers(1);
66    this.panOptionNormal.setDistance(10);
67    this.panOptionNormal.setDirection(PanDirection.Right)
68    let direction = this.panOptionNormal.getDirection()
69    let distance = this.panOptionNormal.getDistance()
70    hilog.info(0x0000, 'testTag', 'zcb aboutToAppear panOptionNormal direction ' + direction + ' distance ' + distance);
71  }
72  changeValue() {
73    this.stateVar+='~'
74  }
75  build() {
76    NavDestination() {
77      Column(undefined) {
78        Row(undefined) {
79          Button('Normal tap').backgroundColor('#FFFF00FF')
80            .width(180)
81            .height(50)
82            .gesture(
83              TapGesture({
84                fingers: 1,
85                count: 1,
86                distanceThreshold: 10,
87                isFingerCountLimited: true
88              })
89                .onAction((event: GestureEvent) => {
90                  this.changeValue()
91                  hilog.info(0x0000, 'testTag',
92                    'zcb Normal tap trigger ' + JSON.stringify(event) + ' repeat: ' + event.repeat + ' offsetX: ' +
93                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
94                      ' scale: ' +
95                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
96                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
97                      ' velocity: ' + event.velocity);
98                  hilog.info(0x0000, 'testTag',
99                    'zcb Normal tap baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
100                      ' axisHorizontal ' +
101                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
102                      ' tiltX ' +
103                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
104                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
105                  let keyArray: string[] = ["Shift"];
106                  if (event.getModifierKeyState !== undefined) {
107                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
108                    let result = modifierState(keyArray)
109                    hilog.info(0x0000, 'testTag', 'zcb  Normal tap getModifierKeyState ' + result);
110                  }
111                  hilog.info(0x0000, 'testTag',
112                    'zcb Normal tap target width ' + event.target.area.width + ' height ' + event.target.area.height +
113                      ' x ' +
114                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
115                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
116                  hilog.info(0x0000, 'testTag', 'zcb Normal tap fingerList.length ' + event.fingerList.length);
117                  for (let i = 0; i < event.fingerList.length; i++) {
118                    hilog.info(0x0000, 'testTag',
119                      'zcb Normal tap fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
120                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
121                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
122                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
123                      event.fingerList[i].hand);
124                  }
125                })
126                .tag('aaa')
127                .allowedTypes([SourceTool.Finger])
128            )
129          Button('Abnormal tap').backgroundColor('#FFFF00FF')
130            .width(180)
131            .height(50)
132            .gesture(
133              TapGesture({
134                fingers: -1,
135                count: -1,
136                distanceThreshold: undefined,
137                isFingerCountLimited: undefined
138              })
139                .onAction((event: GestureEvent) => {
140                  this.changeValue()
141                  hilog.info(0x0000, 'testTag',
142                    'zcb Abnormal tap trigger ' + JSON.stringify(event) + ' repeat: ' + event.repeat + ' offsetX: ' +
143                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
144                      ' scale: ' +
145                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
146                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
147                      ' velocity: ' + event.velocity);
148                  hilog.info(0x0000, 'testTag',
149                    'zcb Abnormal tap baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
150                      ' axisHorizontal ' +
151                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
152                      ' tiltX ' +
153                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
154                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
155                  let keyArray: string[] = ["Shift"];
156                  if (event.getModifierKeyState !== undefined) {
157                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
158                    let result = modifierState(keyArray)
159                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal tap getModifierKeyState ' + result);
160                  }
161                  hilog.info(0x0000, 'testTag',
162                    'zcb Abnormal tap target width ' + event.target.area.width + ' height ' + event.target.area.height +
163                      ' x ' +
164                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
165                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
166                  hilog.info(0x0000, 'testTag', 'zcb Abnormal tap fingerList.length ' + event.fingerList.length);
167                  for (let i = 0; i < event.fingerList.length; i++) {
168                    hilog.info(0x0000, 'testTag',
169                      'zcb Abnormal tap fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
170                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
171                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
172                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
173                      event.fingerList[i].hand);
174                  }
175                })
176                .tag('aaa')
177                .allowedTypes([SourceTool.Finger])
178            )
179        }
180
181        Row(undefined) {
182          Button('Normal longpress').backgroundColor('#FFFF00FF')
183            .width(180)
184            .height(50)
185            .gesture(
186              LongPressGesture({
187                fingers: 1,
188                repeat: true,
189                duration: 500,
190                isFingerCountLimited: true
191              })
192                .onAction((event: GestureEvent) => {
193                  this.changeValue()
194                  hilog.info(0x0000, 'testTag',
195                    'zcb Normal longpress trigger onAction ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
196                      ' offsetX: ' +
197                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
198                      ' scale: ' +
199                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
200                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
201                      ' velocity: ' + event.velocity);
202                  hilog.info(0x0000, 'testTag',
203                    'zcb Normal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
204                      ' axisHorizontal ' +
205                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
206                      ' tiltX ' +
207                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
208                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
209                  let keyArray: string[] = ["Shift"];
210                  if (event.getModifierKeyState !== undefined) {
211                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
212                    let result = modifierState(keyArray)
213                    hilog.info(0x0000, 'testTag', 'zcb  Normal longpress getModifierKeyState ' + result);
214                  }
215                  hilog.info(0x0000, 'testTag',
216                    'zcb Normal longpress target width ' + event.target.area.width + ' height ' +
217                    event.target.area.height + ' x ' +
218                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
219                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
220                  hilog.info(0x0000, 'testTag', 'zcb Normal longpress fingerList.length ' + event.fingerList.length);
221                  for (let i = 0; i < event.fingerList.length; i++) {
222                    hilog.info(0x0000, 'testTag',
223                      'zcb Normal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
224                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
225                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
226                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
227                      event.fingerList[i].hand);
228                  }
229                })
230                .onActionEnd((event: GestureEvent) => {
231                  this.changeValue()
232                  hilog.info(0x0000, 'testTag',
233                    'zcb Normal longpress trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
234                      ' offsetX: ' +
235                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
236                      ' scale: ' +
237                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
238                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
239                      ' velocity: ' + event.velocity);
240                  hilog.info(0x0000, 'testTag',
241                    'zcb Normal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
242                      ' axisHorizontal ' +
243                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
244                      ' tiltX ' +
245                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
246                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
247                  let keyArray: string[] = ["Shift"];
248                  if (event.getModifierKeyState !== undefined) {
249                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
250                    let result = modifierState(keyArray)
251                    hilog.info(0x0000, 'testTag', 'zcb  Normal longpress getModifierKeyState ' + result);
252                  }
253                  hilog.info(0x0000, 'testTag',
254                    'zcb Normal longpress target width ' + event.target.area.width + ' height ' +
255                    event.target.area.height + ' x ' +
256                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
257                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
258                  hilog.info(0x0000, 'testTag', 'zcb Normal longpress fingerList.length ' + event.fingerList.length);
259                  for (let i = 0; i < event.fingerList.length; i++) {
260                    hilog.info(0x0000, 'testTag',
261                      'zcb Normal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
262                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
263                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
264                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
265                      event.fingerList[i].hand);
266                  }
267                })
268                .onActionCancel((event: GestureEvent) => {
269                  this.changeValue()
270                  hilog.info(0x0000, 'testTag',
271                    'zcb Normal longpress trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' +
272                    event.repeat + ' offsetX: ' +
273                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
274                      ' scale: ' +
275                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
276                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
277                      ' velocity: ' + event.velocity);
278                  hilog.info(0x0000, 'testTag',
279                    'zcb Normal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
280                      ' axisHorizontal ' +
281                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
282                      ' tiltX ' +
283                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
284                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
285                  let keyArray: string[] = ["Shift"];
286                  if (event.getModifierKeyState !== undefined) {
287                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
288                    let result = modifierState(keyArray)
289                    hilog.info(0x0000, 'testTag', 'zcb  Normal longpress getModifierKeyState ' + result);
290                  }
291                  hilog.info(0x0000, 'testTag',
292                    'zcb Normal longpress target width ' + event.target.area.width + ' height ' +
293                    event.target.area.height + ' x ' +
294                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
295                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
296                  hilog.info(0x0000, 'testTag', 'zcb Normal longpress fingerList.length ' + event.fingerList.length);
297                  for (let i = 0; i < event.fingerList.length; i++) {
298                    hilog.info(0x0000, 'testTag',
299                      'zcb Normal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
300                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
301                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
302                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
303                      event.fingerList[i].hand);
304                  }
305                })
306                .tag('aaa')
307                .allowedTypes([SourceTool.Finger])
308            )
309          Button('Abnormal longpress').backgroundColor('#FFFF00FF')
310            .width(180)
311            .height(50)
312            .gesture(
313              LongPressGesture({
314                fingers: -1,
315                repeat: undefined,
316                duration: -1,
317                isFingerCountLimited: undefined
318              })
319                .onAction((event: GestureEvent) => {
320                  this.changeValue()
321                  hilog.info(0x0000, 'testTag',
322                    'zcb Abnormal longpress trigger ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
323                      ' offsetX: ' +
324                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
325                      ' scale: ' +
326                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
327                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
328                      ' velocity: ' + event.velocity);
329                  hilog.info(0x0000, 'testTag',
330                    'zcb Abnormal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
331                      ' axisHorizontal ' +
332                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
333                      ' tiltX ' +
334                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
335                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
336                  let keyArray: string[] = ["Shift"];
337                  if (event.getModifierKeyState !== undefined) {
338                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
339                    let result = modifierState(keyArray)
340                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal longpress getModifierKeyState ' + result);
341                  }
342                  hilog.info(0x0000, 'testTag',
343                    'zcb Abnormal longpress target width ' + event.target.area.width + ' height ' +
344                    event.target.area.height + ' x ' +
345                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
346                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
347                  hilog.info(0x0000, 'testTag', 'zcb Abnormal longpress fingerList.length ' + event.fingerList.length);
348                  for (let i = 0; i < event.fingerList.length; i++) {
349                    hilog.info(0x0000, 'testTag',
350                      'zcb Abnormal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
351                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
352                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
353                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
354                      event.fingerList[i].hand);
355                  }
356                })
357                .onActionEnd((event: GestureEvent) => {
358                  this.changeValue()
359                  hilog.info(0x0000, 'testTag',
360                    'zcb Abnormal longpress trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
361                      ' offsetX: ' +
362                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
363                      ' scale: ' +
364                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
365                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
366                      ' velocity: ' + event.velocity);
367                  hilog.info(0x0000, 'testTag',
368                    'zcb Abnormal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
369                      ' axisHorizontal ' +
370                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
371                      ' tiltX ' +
372                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
373                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
374                  let keyArray: string[] = ["Shift"];
375                  if (event.getModifierKeyState !== undefined) {
376                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
377                    let result = modifierState(keyArray)
378                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal longpress getModifierKeyState ' + result);
379                  }
380                  hilog.info(0x0000, 'testTag',
381                    'zcb Abnormal longpress target width ' + event.target.area.width + ' height ' +
382                    event.target.area.height + ' x ' +
383                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
384                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
385                  hilog.info(0x0000, 'testTag', 'zcb Abnormal longpress fingerList.length ' + event.fingerList.length);
386                  for (let i = 0; i < event.fingerList.length; i++) {
387                    hilog.info(0x0000, 'testTag',
388                      'zcb Abnormal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
389                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
390                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
391                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
392                      event.fingerList[i].hand);
393                  }
394                })
395                .onActionCancel((event: GestureEvent) => {
396                  this.changeValue()
397                  hilog.info(0x0000, 'testTag',
398                    'zcb Abnormal longpress trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' +
399                    event.repeat + ' offsetX: ' +
400                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
401                      ' scale: ' +
402                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
403                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
404                      ' velocity: ' + event.velocity);
405                  hilog.info(0x0000, 'testTag',
406                    'zcb Abnormal longpress baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
407                      ' axisHorizontal ' +
408                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
409                      ' tiltX ' +
410                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
411                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
412                  let keyArray: string[] = ["Shift"];
413                  if (event.getModifierKeyState !== undefined) {
414                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
415                    let result = modifierState(keyArray)
416                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal longpress getModifierKeyState ' + result);
417                  }
418                  hilog.info(0x0000, 'testTag',
419                    'zcb Abnormal longpress target width ' + event.target.area.width + ' height ' +
420                    event.target.area.height + ' x ' +
421                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
422                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
423                  hilog.info(0x0000, 'testTag', 'zcb Abnormal longpress fingerList.length ' + event.fingerList.length);
424                  for (let i = 0; i < event.fingerList.length; i++) {
425                    hilog.info(0x0000, 'testTag',
426                      'zcb Abnormal longpress fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
427                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
428                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
429                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
430                      event.fingerList[i].hand);
431                  }
432                })
433                .tag('aaa')
434                .allowedTypes([SourceTool.Finger])
435            )
436        }
437
438        Row(undefined) {
439          Button('Normal swipe').backgroundColor('#FFFF00FF')
440            .width(180)
441            .height(50)
442            .gesture(
443              SwipeGesture({
444                fingers: 1,
445                speed: 100,
446                direction: SwipeDirection.Horizontal,
447                isFingerCountLimited: true
448              })
449                .onAction((event: GestureEvent) => {
450                  this.changeValue()
451                  hilog.info(0x0000, 'testTag',
452                    'zcb Normal swipe trigger ' + JSON.stringify(event) + ' repeat: ' + event.repeat + ' offsetX: ' +
453                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
454                      ' scale: ' +
455                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
456                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
457                      ' velocity: ' + event.velocity);
458                  hilog.info(0x0000, 'testTag',
459                    'zcb Normal swipe baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
460                      ' axisHorizontal ' +
461                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
462                      ' tiltX ' +
463                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
464                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
465                  let keyArray: string[] = ["Shift"];
466                  if (event.getModifierKeyState !== undefined) {
467                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
468                    let result = modifierState(keyArray)
469                    hilog.info(0x0000, 'testTag', 'zcb  Normal swipe getModifierKeyState ' + result);
470                  }
471                  hilog.info(0x0000, 'testTag',
472                    'zcb Normal swipe target width ' + event.target.area.width + ' height ' + event.target.area.height +
473                      ' x ' +
474                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
475                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
476                  hilog.info(0x0000, 'testTag', 'zcb Normal swipe fingerList.length ' + event.fingerList.length);
477                  for (let i = 0; i < event.fingerList.length; i++) {
478                    hilog.info(0x0000, 'testTag',
479                      'zcb Normal swipe fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
480                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
481                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
482                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
483                      event.fingerList[i].hand);
484                  }
485                })
486                .tag('aaa')
487                .allowedTypes([SourceTool.Finger])
488            )
489          Button('Abnormal swipe').backgroundColor('#FFFF00FF')
490            .width(180)
491            .height(50)
492            .gesture(
493              SwipeGesture({
494                fingers: -1,
495                speed: -1,
496                direction: undefined,
497                isFingerCountLimited: undefined
498              })
499                .onAction((event: GestureEvent) => {
500                  this.changeValue()
501                  hilog.info(0x0000, 'testTag',
502                    'zcb Abnormal swipe trigger ' + JSON.stringify(event) + ' repeat: ' + event.repeat + ' offsetX: ' +
503                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
504                      ' scale: ' +
505                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
506                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
507                      ' velocity: ' + event.velocity);
508                  hilog.info(0x0000, 'testTag',
509                    'zcb Abnormal swipe baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
510                      ' axisHorizontal ' +
511                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
512                      ' tiltX ' +
513                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
514                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
515                  let keyArray: string[] = ["Shift"];
516                  if (event.getModifierKeyState !== undefined) {
517                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
518                    let result = modifierState(keyArray)
519                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal swipe getModifierKeyState ' + result);
520                  }
521                  hilog.info(0x0000, 'testTag',
522                    'zcb Abnormal swipe target width ' + event.target.area.width + ' height ' +
523                    event.target.area.height + ' x ' +
524                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
525                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
526                  hilog.info(0x0000, 'testTag', 'zcb Abnormal swipe fingerList.length ' + event.fingerList.length);
527                  for (let i = 0; i < event.fingerList.length; i++) {
528                    hilog.info(0x0000, 'testTag',
529                      'zcb Abnormal swipe fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
530                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
531                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
532                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
533                      event.fingerList[i].hand);
534                  }
535                })
536                .tag('aaa')
537                .allowedTypes([SourceTool.Finger])
538            )
539        }
540
541        Row(undefined) {
542          Button('Normal pan').backgroundColor('#FFFF00FF')
543            .width(180)
544            .height(50)
545            .gesture(
546              PanGesture({
547                fingers: 1,
548                distance: 5,
549                direction: PanDirection.Right,
550                isFingerCountLimited: true
551              } as PanGestureHandlerOptions)
552                .onActionStart((event: GestureEvent) => {
553                  this.changeValue()
554                  hilog.info(0x0000, 'testTag',
555                    'zcb Normal pan trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
556                      ' offsetX: ' +
557                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
558                      ' scale: ' +
559                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
560                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
561                      ' velocity: ' + event.velocity);
562                  hilog.info(0x0000, 'testTag',
563                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
564                      ' axisHorizontal ' +
565                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
566                      ' tiltX ' +
567                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
568                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
569                  let keyArray: string[] = ["Shift"];
570                  if (event.getModifierKeyState !== undefined) {
571                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
572                    let result = modifierState(keyArray)
573                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
574                  }
575                  hilog.info(0x0000, 'testTag',
576                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
577                      ' x ' +
578                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
579                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
580                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
581                  for (let i = 0; i < event.fingerList.length; i++) {
582                    hilog.info(0x0000, 'testTag',
583                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
584                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
585                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
586                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
587                      event.fingerList[i].hand);
588                  }
589                })
590                .onActionUpdate((event: GestureEvent) => {
591                  this.changeValue()
592                  hilog.info(0x0000, 'testTag',
593                    'zcb Normal pan trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
594                      ' offsetX: ' +
595                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
596                      ' scale: ' +
597                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
598                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
599                      ' velocity: ' + event.velocity);
600                  hilog.info(0x0000, 'testTag',
601                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
602                      ' axisHorizontal ' +
603                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
604                      ' tiltX ' +
605                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
606                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
607                  let keyArray: string[] = ["Shift"];
608                  if (event.getModifierKeyState !== undefined) {
609                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
610                    let result = modifierState(keyArray)
611                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
612                  }
613                  hilog.info(0x0000, 'testTag',
614                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
615                      ' x ' +
616                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
617                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
618                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
619                  for (let i = 0; i < event.fingerList.length; i++) {
620                    hilog.info(0x0000, 'testTag',
621                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
622                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
623                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
624                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
625                      event.fingerList[i].hand);
626                  }
627                })
628                .onActionCancel((event: GestureEvent) => {
629                  this.changeValue()
630                  hilog.info(0x0000, 'testTag',
631                    'zcb Normal pan trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
632                      ' offsetX: ' +
633                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
634                      ' scale: ' +
635                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
636                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
637                      ' velocity: ' + event.velocity);
638                  hilog.info(0x0000, 'testTag',
639                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
640                      ' axisHorizontal ' +
641                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
642                      ' tiltX ' +
643                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
644                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
645                  let keyArray: string[] = ["Shift"];
646                  if (event.getModifierKeyState !== undefined) {
647                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
648                    let result = modifierState(keyArray)
649                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
650                  }
651                  hilog.info(0x0000, 'testTag',
652                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
653                      ' x ' +
654                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
655                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
656                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
657                  for (let i = 0; i < event.fingerList.length; i++) {
658                    hilog.info(0x0000, 'testTag',
659                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
660                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
661                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
662                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
663                      event.fingerList[i].hand);
664                  }
665                })
666                .onActionEnd((event: GestureEvent) => {
667                  this.changeValue()
668                  hilog.info(0x0000, 'testTag',
669                    'zcb Normal pan trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
670                      ' offsetX: ' +
671                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
672                      ' scale: ' +
673                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
674                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
675                      ' velocity: ' + event.velocity);
676                  hilog.info(0x0000, 'testTag',
677                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
678                      ' axisHorizontal ' +
679                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
680                      ' tiltX ' +
681                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
682                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
683                  let keyArray: string[] = ["Shift"];
684                  if (event.getModifierKeyState !== undefined) {
685                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
686                    let result = modifierState(keyArray)
687                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
688                  }
689                  hilog.info(0x0000, 'testTag',
690                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
691                      ' x ' +
692                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
693                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
694                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
695                  for (let i = 0; i < event.fingerList.length; i++) {
696                    hilog.info(0x0000, 'testTag',
697                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
698                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
699                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
700                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
701                      event.fingerList[i].hand);
702                  }
703                })
704                .tag('aaa')
705                .allowedTypes([SourceTool.Finger])
706            )
707          Button('Abnormal pan').backgroundColor('#FFFF00FF')
708            .width(180)
709            .height(50)
710            .gesture(
711              PanGesture({
712                fingers: -1,
713                distance: -1,
714                direction: undefined,
715                isFingerCountLimited: undefined
716              } as PanGestureHandlerOptions)
717                .onActionStart((event: GestureEvent) => {
718                  this.changeValue()
719                  hilog.info(0x0000, 'testTag',
720                    'zcb Abnormal pan trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
721                      ' offsetX: ' +
722                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
723                      ' scale: ' +
724                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
725                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
726                      ' velocity: ' + event.velocity);
727                  hilog.info(0x0000, 'testTag',
728                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
729                      ' axisHorizontal ' +
730                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
731                      ' tiltX ' +
732                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
733                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
734                  let keyArray: string[] = ["Shift"];
735                  if (event.getModifierKeyState !== undefined) {
736                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
737                    let result = modifierState(keyArray)
738                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
739                  }
740                  hilog.info(0x0000, 'testTag',
741                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
742                      ' x ' +
743                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
744                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
745                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
746                  for (let i = 0; i < event.fingerList.length; i++) {
747                    hilog.info(0x0000, 'testTag',
748                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
749                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
750                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
751                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
752                      event.fingerList[i].hand);
753                  }
754                })
755                .onActionUpdate((event: GestureEvent) => {
756                  this.changeValue()
757                  hilog.info(0x0000, 'testTag',
758                    'zcb Abnormal pan trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
759                      ' offsetX: ' +
760                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
761                      ' scale: ' +
762                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
763                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
764                      ' velocity: ' + event.velocity);
765                  hilog.info(0x0000, 'testTag',
766                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
767                      ' axisHorizontal ' +
768                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
769                      ' tiltX ' +
770                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
771                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
772                  let keyArray: string[] = ["Shift"];
773                  if (event.getModifierKeyState !== undefined) {
774                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
775                    let result = modifierState(keyArray)
776                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
777                  }
778                  hilog.info(0x0000, 'testTag',
779                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
780                      ' x ' +
781                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
782                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
783                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
784                  for (let i = 0; i < event.fingerList.length; i++) {
785                    hilog.info(0x0000, 'testTag',
786                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
787                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
788                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
789                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
790                      event.fingerList[i].hand);
791                  }
792                })
793                .onActionCancel((event: GestureEvent) => {
794                  this.changeValue()
795                  hilog.info(0x0000, 'testTag',
796                    'zcb Abnormal pan trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
797                      ' offsetX: ' +
798                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
799                      ' scale: ' +
800                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
801                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
802                      ' velocity: ' + event.velocity);
803                  hilog.info(0x0000, 'testTag',
804                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
805                      ' axisHorizontal ' +
806                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
807                      ' tiltX ' +
808                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
809                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
810                  let keyArray: string[] = ["Shift"];
811                  if (event.getModifierKeyState !== undefined) {
812                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
813                    let result = modifierState(keyArray)
814                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
815                  }
816                  hilog.info(0x0000, 'testTag',
817                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
818                      ' x ' +
819                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
820                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
821                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
822                  for (let i = 0; i < event.fingerList.length; i++) {
823                    hilog.info(0x0000, 'testTag',
824                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
825                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
826                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
827                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
828                      event.fingerList[i].hand);
829                  }
830                })
831                .onActionEnd((event: GestureEvent) => {
832                  this.changeValue()
833                  hilog.info(0x0000, 'testTag',
834                    'zcb Abnormal pan trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
835                      ' offsetX: ' +
836                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
837                      ' scale: ' +
838                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
839                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
840                      ' velocity: ' + event.velocity);
841                  hilog.info(0x0000, 'testTag',
842                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
843                      ' axisHorizontal ' +
844                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
845                      ' tiltX ' +
846                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
847                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
848                  let keyArray: string[] = ["Shift"];
849                  if (event.getModifierKeyState !== undefined) {
850                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
851                    let result = modifierState(keyArray)
852                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
853                  }
854                  hilog.info(0x0000, 'testTag',
855                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
856                      ' x ' +
857                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
858                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
859                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
860                  for (let i = 0; i < event.fingerList.length; i++) {
861                    hilog.info(0x0000, 'testTag',
862                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
863                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
864                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
865                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
866                      event.fingerList[i].hand);
867                  }
868                })
869                .tag('aaa')
870                .allowedTypes([SourceTool.Finger])
871            )
872        }
873
874        Row(undefined) {
875          Button('Normal pan with panGestureOptions').backgroundColor('#FFFF00FF')
876            .width(180)
877            .height(50)
878            .gesture(
879              PanGesture(this.panOptionNormal)
880                .onActionStart((event: GestureEvent) => {
881                  this.changeValue()
882                  hilog.info(0x0000, 'testTag',
883                    'zcb Normal pan trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
884                      ' offsetX: ' +
885                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
886                      ' scale: ' +
887                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
888                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
889                      ' velocity: ' + event.velocity);
890                  hilog.info(0x0000, 'testTag',
891                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
892                      ' axisHorizontal ' +
893                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
894                      ' tiltX ' +
895                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
896                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
897                  let keyArray: string[] = ["Shift"];
898                  if (event.getModifierKeyState !== undefined) {
899                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
900                    let result = modifierState(keyArray)
901                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
902                  }
903                  hilog.info(0x0000, 'testTag',
904                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
905                      ' x ' +
906                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
907                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
908                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
909                  for (let i = 0; i < event.fingerList.length; i++) {
910                    hilog.info(0x0000, 'testTag',
911                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
912                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
913                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
914                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
915                      event.fingerList[i].hand);
916                  }
917                })
918                .onActionUpdate((event: GestureEvent) => {
919                  this.changeValue()
920                  hilog.info(0x0000, 'testTag',
921                    'zcb Normal pan trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
922                      ' offsetX: ' +
923                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
924                      ' scale: ' +
925                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
926                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
927                      ' velocity: ' + event.velocity);
928                  hilog.info(0x0000, 'testTag',
929                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
930                      ' axisHorizontal ' +
931                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
932                      ' tiltX ' +
933                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
934                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
935                  let keyArray: string[] = ["Shift"];
936                  if (event.getModifierKeyState !== undefined) {
937                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
938                    let result = modifierState(keyArray)
939                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
940                  }
941                  hilog.info(0x0000, 'testTag',
942                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
943                      ' x ' +
944                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
945                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
946                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
947                  for (let i = 0; i < event.fingerList.length; i++) {
948                    hilog.info(0x0000, 'testTag',
949                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
950                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
951                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
952                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
953                      event.fingerList[i].hand);
954                  }
955                })
956                .onActionCancel((event: GestureEvent) => {
957                  this.changeValue()
958                  hilog.info(0x0000, 'testTag',
959                    'zcb Normal pan trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
960                      ' offsetX: ' +
961                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
962                      ' scale: ' +
963                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
964                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
965                      ' velocity: ' + event.velocity);
966                  hilog.info(0x0000, 'testTag',
967                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
968                      ' axisHorizontal ' +
969                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
970                      ' tiltX ' +
971                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
972                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
973                  let keyArray: string[] = ["Shift"];
974                  if (event.getModifierKeyState !== undefined) {
975                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
976                    let result = modifierState(keyArray)
977                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
978                  }
979                  hilog.info(0x0000, 'testTag',
980                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
981                      ' x ' +
982                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
983                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
984                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
985                  for (let i = 0; i < event.fingerList.length; i++) {
986                    hilog.info(0x0000, 'testTag',
987                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
988                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
989                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
990                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
991                      event.fingerList[i].hand);
992                  }
993                })
994                .onActionEnd((event: GestureEvent) => {
995                  this.changeValue()
996                  hilog.info(0x0000, 'testTag',
997                    'zcb Normal pan trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
998                      ' offsetX: ' +
999                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1000                      ' scale: ' +
1001                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1002                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1003                      ' velocity: ' + event.velocity);
1004                  hilog.info(0x0000, 'testTag',
1005                    'zcb Normal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1006                      ' axisHorizontal ' +
1007                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1008                      ' tiltX ' +
1009                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1010                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1011                  let keyArray: string[] = ["Shift"];
1012                  if (event.getModifierKeyState !== undefined) {
1013                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1014                    let result = modifierState(keyArray)
1015                    hilog.info(0x0000, 'testTag', 'zcb  Normal pan getModifierKeyState ' + result);
1016                  }
1017                  hilog.info(0x0000, 'testTag',
1018                    'zcb Normal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
1019                      ' x ' +
1020                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1021                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1022                  hilog.info(0x0000, 'testTag', 'zcb Normal pan fingerList.length ' + event.fingerList.length);
1023                  for (let i = 0; i < event.fingerList.length; i++) {
1024                    hilog.info(0x0000, 'testTag',
1025                      'zcb Normal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1026                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1027                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1028                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1029                      event.fingerList[i].hand);
1030                  }
1031                })
1032                .tag('aaa')
1033                .allowedTypes([SourceTool.Finger])
1034            )
1035          Button('Abnormal pan with panGestureOptions').backgroundColor('#FFFF00FF')
1036            .width(180)
1037            .height(50)
1038            .gesture(
1039              PanGesture(this.panOptionAbnormal)
1040                .onActionStart((event: GestureEvent) => {
1041                  this.changeValue()
1042                  hilog.info(0x0000, 'testTag',
1043                    'zcb Abnormal pan trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1044                      ' offsetX: ' +
1045                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1046                      ' scale: ' +
1047                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1048                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1049                      ' velocity: ' + event.velocity);
1050                  hilog.info(0x0000, 'testTag',
1051                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1052                      ' axisHorizontal ' +
1053                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1054                      ' tiltX ' +
1055                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1056                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1057                  let keyArray: string[] = ["Shift"];
1058                  if (event.getModifierKeyState !== undefined) {
1059                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1060                    let result = modifierState(keyArray)
1061                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
1062                  }
1063                  hilog.info(0x0000, 'testTag',
1064                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
1065                      ' x ' +
1066                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1067                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1068                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
1069                  for (let i = 0; i < event.fingerList.length; i++) {
1070                    hilog.info(0x0000, 'testTag',
1071                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1072                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1073                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1074                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1075                      event.fingerList[i].hand);
1076                  }
1077                })
1078                .onActionUpdate((event: GestureEvent) => {
1079                  this.changeValue()
1080                  hilog.info(0x0000, 'testTag',
1081                    'zcb Abnormal pan trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1082                      ' offsetX: ' +
1083                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1084                      ' scale: ' +
1085                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1086                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1087                      ' velocity: ' + event.velocity);
1088                  hilog.info(0x0000, 'testTag',
1089                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1090                      ' axisHorizontal ' +
1091                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1092                      ' tiltX ' +
1093                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1094                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1095                  let keyArray: string[] = ["Shift"];
1096                  if (event.getModifierKeyState !== undefined) {
1097                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1098                    let result = modifierState(keyArray)
1099                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
1100                  }
1101                  hilog.info(0x0000, 'testTag',
1102                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
1103                      ' x ' +
1104                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1105                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1106                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
1107                  for (let i = 0; i < event.fingerList.length; i++) {
1108                    hilog.info(0x0000, 'testTag',
1109                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1110                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1111                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1112                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1113                      event.fingerList[i].hand);
1114                  }
1115                })
1116                .onActionCancel((event: GestureEvent) => {
1117                  this.changeValue()
1118                  hilog.info(0x0000, 'testTag',
1119                    'zcb Abnormal pan trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1120                      ' offsetX: ' +
1121                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1122                      ' scale: ' +
1123                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1124                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1125                      ' velocity: ' + event.velocity);
1126                  hilog.info(0x0000, 'testTag',
1127                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1128                      ' axisHorizontal ' +
1129                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1130                      ' tiltX ' +
1131                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1132                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1133                  let keyArray: string[] = ["Shift"];
1134                  if (event.getModifierKeyState !== undefined) {
1135                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1136                    let result = modifierState(keyArray)
1137                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
1138                  }
1139                  hilog.info(0x0000, 'testTag',
1140                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
1141                      ' x ' +
1142                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1143                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1144                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
1145                  for (let i = 0; i < event.fingerList.length; i++) {
1146                    hilog.info(0x0000, 'testTag',
1147                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1148                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1149                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1150                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1151                      event.fingerList[i].hand);
1152                  }
1153                })
1154                .onActionEnd((event: GestureEvent) => {
1155                  this.changeValue()
1156                  hilog.info(0x0000, 'testTag',
1157                    'zcb Abnormal pan trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1158                      ' offsetX: ' +
1159                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1160                      ' scale: ' +
1161                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1162                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1163                      ' velocity: ' + event.velocity);
1164                  hilog.info(0x0000, 'testTag',
1165                    'zcb Abnormal pan baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1166                      ' axisHorizontal ' +
1167                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1168                      ' tiltX ' +
1169                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1170                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1171                  let keyArray: string[] = ["Shift"];
1172                  if (event.getModifierKeyState !== undefined) {
1173                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1174                    let result = modifierState(keyArray)
1175                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pan getModifierKeyState ' + result);
1176                  }
1177                  hilog.info(0x0000, 'testTag',
1178                    'zcb Abnormal pan target width ' + event.target.area.width + ' height ' + event.target.area.height +
1179                      ' x ' +
1180                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1181                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1182                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pan fingerList.length ' + event.fingerList.length);
1183                  for (let i = 0; i < event.fingerList.length; i++) {
1184                    hilog.info(0x0000, 'testTag',
1185                      'zcb Abnormal pan fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1186                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1187                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1188                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1189                      event.fingerList[i].hand);
1190                  }
1191                })
1192                .tag('aaa')
1193                .allowedTypes([SourceTool.Finger])
1194            )
1195        }
1196
1197        Row(undefined) {
1198          Button('Normal pinch').backgroundColor('#FFFF00FF')
1199            .width(180)
1200            .height(50)
1201            .gesture(
1202              PinchGesture({ fingers: 1, distance: 10, isFingerCountLimited: true })
1203                .onActionStart((event: GestureEvent) => {
1204                  this.changeValue()
1205                  hilog.info(0x0000, 'testTag',
1206                    'zcb Normal pinch trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1207                      ' offsetX: ' +
1208                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1209                      ' scale: ' +
1210                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1211                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1212                      ' velocity: ' + event.velocity);
1213                  hilog.info(0x0000, 'testTag',
1214                    'zcb Normal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1215                      ' axisHorizontal ' +
1216                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1217                      ' tiltX ' +
1218                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1219                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1220                  let keyArray: string[] = ["Shift"];
1221                  if (event.getModifierKeyState !== undefined) {
1222                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1223                    let result = modifierState(keyArray)
1224                    hilog.info(0x0000, 'testTag', 'zcb  Normal pinch getModifierKeyState ' + result);
1225                  }
1226                  hilog.info(0x0000, 'testTag',
1227                    'zcb Normal pinch target width ' + event.target.area.width + ' height ' + event.target.area.height +
1228                      ' x ' +
1229                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1230                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1231                  hilog.info(0x0000, 'testTag', 'zcb Normal pinch fingerList.length ' + event.fingerList.length);
1232                  for (let i = 0; i < event.fingerList.length; i++) {
1233                    hilog.info(0x0000, 'testTag',
1234                      'zcb Normal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1235                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1236                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1237                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1238                      event.fingerList[i].hand);
1239                  }
1240                })
1241                .onActionUpdate((event: GestureEvent) => {
1242                  this.changeValue()
1243                  hilog.info(0x0000, 'testTag',
1244                    'zcb Normal pinch trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1245                      ' offsetX: ' +
1246                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1247                      ' scale: ' +
1248                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1249                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1250                      ' velocity: ' + event.velocity);
1251                  hilog.info(0x0000, 'testTag',
1252                    'zcb Normal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1253                      ' axisHorizontal ' +
1254                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1255                      ' tiltX ' +
1256                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1257                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1258                  let keyArray: string[] = ["Shift"];
1259                  if (event.getModifierKeyState !== undefined) {
1260                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1261                    let result = modifierState(keyArray)
1262                    hilog.info(0x0000, 'testTag', 'zcb  Normal pinch getModifierKeyState ' + result);
1263                  }
1264                  hilog.info(0x0000, 'testTag',
1265                    'zcb Normal pinch target width ' + event.target.area.width + ' height ' + event.target.area.height +
1266                      ' x ' +
1267                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1268                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1269                  hilog.info(0x0000, 'testTag', 'zcb Normal pinch fingerList.length ' + event.fingerList.length);
1270                  for (let i = 0; i < event.fingerList.length; i++) {
1271                    hilog.info(0x0000, 'testTag',
1272                      'zcb Normal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1273                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1274                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1275                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1276                      event.fingerList[i].hand);
1277                  }
1278                })
1279                .onActionCancel((event: GestureEvent) => {
1280                  this.changeValue()
1281                  hilog.info(0x0000, 'testTag',
1282                    'zcb Normal pinch trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1283                      ' offsetX: ' +
1284                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1285                      ' scale: ' +
1286                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1287                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1288                      ' velocity: ' + event.velocity);
1289                  hilog.info(0x0000, 'testTag',
1290                    'zcb Normal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1291                      ' axisHorizontal ' +
1292                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1293                      ' tiltX ' +
1294                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1295                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1296                  let keyArray: string[] = ["Shift"];
1297                  if (event.getModifierKeyState !== undefined) {
1298                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1299                    let result = modifierState(keyArray)
1300                    hilog.info(0x0000, 'testTag', 'zcb  Normal pinch getModifierKeyState ' + result);
1301                  }
1302                  hilog.info(0x0000, 'testTag',
1303                    'zcb Normal pinch target width ' + event.target.area.width + ' height ' + event.target.area.height +
1304                      ' x ' +
1305                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1306                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1307                  hilog.info(0x0000, 'testTag', 'zcb Normal pinch fingerList.length ' + event.fingerList.length);
1308                  for (let i = 0; i < event.fingerList.length; i++) {
1309                    hilog.info(0x0000, 'testTag',
1310                      'zcb Normal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1311                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1312                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1313                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1314                      event.fingerList[i].hand);
1315                  }
1316                })
1317                .onActionEnd((event: GestureEvent) => {
1318                  this.changeValue()
1319                  hilog.info(0x0000, 'testTag',
1320                    'zcb Normal pinch trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1321                      ' offsetX: ' +
1322                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1323                      ' scale: ' +
1324                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1325                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1326                      ' velocity: ' + event.velocity);
1327                  hilog.info(0x0000, 'testTag',
1328                    'zcb Normal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1329                      ' axisHorizontal ' +
1330                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1331                      ' tiltX ' +
1332                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1333                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1334                  let keyArray: string[] = ["Shift"];
1335                  if (event.getModifierKeyState !== undefined) {
1336                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1337                    let result = modifierState(keyArray)
1338                    hilog.info(0x0000, 'testTag', 'zcb  Normal pinch getModifierKeyState ' + result);
1339                  }
1340                  hilog.info(0x0000, 'testTag',
1341                    'zcb Normal pinch target width ' + event.target.area.width + ' height ' + event.target.area.height +
1342                      ' x ' +
1343                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1344                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1345                  hilog.info(0x0000, 'testTag', 'zcb Normal pinch fingerList.length ' + event.fingerList.length);
1346                  for (let i = 0; i < event.fingerList.length; i++) {
1347                    hilog.info(0x0000, 'testTag',
1348                      'zcb Normal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1349                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1350                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1351                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1352                      event.fingerList[i].hand);
1353                  }
1354                })
1355                .tag('aaa')
1356                .allowedTypes([SourceTool.Finger])
1357            )
1358          Button('Abnormal pinch').backgroundColor('#FFFF00FF')
1359            .width(180)
1360            .height(50)
1361            .gesture(
1362              PinchGesture({ fingers: -1, distance: -1, isFingerCountLimited: undefined })
1363                .onActionStart((event: GestureEvent) => {
1364                  this.changeValue()
1365                  hilog.info(0x0000, 'testTag',
1366                    'zcb Abnormal pinch trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1367                      ' offsetX: ' +
1368                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1369                      ' scale: ' +
1370                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1371                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1372                      ' velocity: ' + event.velocity);
1373                  hilog.info(0x0000, 'testTag',
1374                    'zcb Abnormal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1375                      ' axisHorizontal ' +
1376                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1377                      ' tiltX ' +
1378                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1379                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1380                  let keyArray: string[] = ["Shift"];
1381                  if (event.getModifierKeyState !== undefined) {
1382                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1383                    let result = modifierState(keyArray)
1384                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pinch getModifierKeyState ' + result);
1385                  }
1386                  hilog.info(0x0000, 'testTag',
1387                    'zcb Abnormal pinch target width ' + event.target.area.width + ' height ' +
1388                    event.target.area.height + ' x ' +
1389                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1390                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1391                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pinch fingerList.length ' + event.fingerList.length);
1392                  for (let i = 0; i < event.fingerList.length; i++) {
1393                    hilog.info(0x0000, 'testTag',
1394                      'zcb Abnormal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1395                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1396                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1397                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1398                      event.fingerList[i].hand);
1399                  }
1400                })
1401                .onActionUpdate((event: GestureEvent) => {
1402                  this.changeValue()
1403                  hilog.info(0x0000, 'testTag',
1404                    'zcb Abnormal pinch trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1405                      ' offsetX: ' +
1406                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1407                      ' scale: ' +
1408                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1409                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1410                      ' velocity: ' + event.velocity);
1411                  hilog.info(0x0000, 'testTag',
1412                    'zcb Abnormal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1413                      ' axisHorizontal ' +
1414                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1415                      ' tiltX ' +
1416                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1417                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1418                  let keyArray: string[] = ["Shift"];
1419                  if (event.getModifierKeyState !== undefined) {
1420                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1421                    let result = modifierState(keyArray)
1422                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pinch getModifierKeyState ' + result);
1423                  }
1424                  hilog.info(0x0000, 'testTag',
1425                    'zcb Abnormal pinch target width ' + event.target.area.width + ' height ' +
1426                    event.target.area.height + ' x ' +
1427                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1428                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1429                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pinch fingerList.length ' + event.fingerList.length);
1430                  for (let i = 0; i < event.fingerList.length; i++) {
1431                    hilog.info(0x0000, 'testTag',
1432                      'zcb Abnormal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1433                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1434                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1435                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1436                      event.fingerList[i].hand);
1437                  }
1438                })
1439                .onActionCancel((event: GestureEvent) => {
1440                  this.changeValue()
1441                  hilog.info(0x0000, 'testTag',
1442                    'zcb Abnormal pinch trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1443                      ' offsetX: ' +
1444                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1445                      ' scale: ' +
1446                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1447                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1448                      ' velocity: ' + event.velocity);
1449                  hilog.info(0x0000, 'testTag',
1450                    'zcb Abnormal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1451                      ' axisHorizontal ' +
1452                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1453                      ' tiltX ' +
1454                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1455                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1456                  let keyArray: string[] = ["Shift"];
1457                  if (event.getModifierKeyState !== undefined) {
1458                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1459                    let result = modifierState(keyArray)
1460                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pinch getModifierKeyState ' + result);
1461                  }
1462                  hilog.info(0x0000, 'testTag',
1463                    'zcb Abnormal pinch target width ' + event.target.area.width + ' height ' +
1464                    event.target.area.height + ' x ' +
1465                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1466                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1467                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pinch fingerList.length ' + event.fingerList.length);
1468                  for (let i = 0; i < event.fingerList.length; i++) {
1469                    hilog.info(0x0000, 'testTag',
1470                      'zcb Abnormal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1471                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1472                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1473                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1474                      event.fingerList[i].hand);
1475                  }
1476                })
1477                .onActionEnd((event: GestureEvent) => {
1478                  this.changeValue()
1479                  hilog.info(0x0000, 'testTag',
1480                    'zcb Abnormal pinch trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1481                      ' offsetX: ' +
1482                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1483                      ' scale: ' +
1484                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1485                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1486                      ' velocity: ' + event.velocity);
1487                  hilog.info(0x0000, 'testTag',
1488                    'zcb Abnormal pinch baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1489                      ' axisHorizontal ' +
1490                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1491                      ' tiltX ' +
1492                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1493                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1494                  let keyArray: string[] = ["Shift"];
1495                  if (event.getModifierKeyState !== undefined) {
1496                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1497                    let result = modifierState(keyArray)
1498                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal pinch getModifierKeyState ' + result);
1499                  }
1500                  hilog.info(0x0000, 'testTag',
1501                    'zcb Abnormal pinch target width ' + event.target.area.width + ' height ' +
1502                    event.target.area.height + ' x ' +
1503                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1504                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1505                  hilog.info(0x0000, 'testTag', 'zcb Abnormal pinch fingerList.length ' + event.fingerList.length);
1506                  for (let i = 0; i < event.fingerList.length; i++) {
1507                    hilog.info(0x0000, 'testTag',
1508                      'zcb Abnormal pinch fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1509                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1510                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1511                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1512                      event.fingerList[i].hand);
1513                  }
1514                })
1515                .tag('aaa')
1516                .allowedTypes([SourceTool.Finger])
1517            )
1518        }
1519
1520        Row(undefined) {
1521          Button('Normal rotation').backgroundColor('#FFFF00FF')
1522            .width(180)
1523            .height(50)
1524            .gesture(
1525              RotationGesture({ fingers: 1, angle: 10, isFingerCountLimited: true })
1526                .onActionStart((event: GestureEvent) => {
1527                  this.changeValue()
1528                  hilog.info(0x0000, 'testTag',
1529                    'zcb Normal rotation trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1530                      ' offsetX: ' +
1531                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1532                      ' scale: ' +
1533                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1534                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1535                      ' velocity: ' + event.velocity);
1536                  hilog.info(0x0000, 'testTag',
1537                    'zcb Normal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1538                      ' axisHorizontal ' +
1539                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1540                      ' tiltX ' +
1541                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1542                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1543                  let keyArray: string[] = ["Shift"];
1544                  if (event.getModifierKeyState !== undefined) {
1545                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1546                    let result = modifierState(keyArray)
1547                    hilog.info(0x0000, 'testTag', 'zcb  Normal rotation getModifierKeyState ' + result);
1548                  }
1549                  hilog.info(0x0000, 'testTag',
1550                    'zcb Normal rotation target width ' + event.target.area.width + ' height ' +
1551                    event.target.area.height + ' x ' +
1552                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1553                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1554                  hilog.info(0x0000, 'testTag', 'zcb Normal rotation fingerList.length ' + event.fingerList.length);
1555                  for (let i = 0; i < event.fingerList.length; i++) {
1556                    hilog.info(0x0000, 'testTag',
1557                      'zcb Normal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1558                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1559                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1560                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1561                      event.fingerList[i].hand);
1562                  }
1563                })
1564                .onActionUpdate((event: GestureEvent) => {
1565                  this.changeValue()
1566                  hilog.info(0x0000, 'testTag',
1567                    'zcb Normal rotation trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1568                      ' offsetX: ' +
1569                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1570                      ' scale: ' +
1571                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1572                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1573                      ' velocity: ' + event.velocity);
1574                  hilog.info(0x0000, 'testTag',
1575                    'zcb Normal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1576                      ' axisHorizontal ' +
1577                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1578                      ' tiltX ' +
1579                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1580                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1581                  let keyArray: string[] = ["Shift"];
1582                  if (event.getModifierKeyState !== undefined) {
1583                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1584                    let result = modifierState(keyArray)
1585                    hilog.info(0x0000, 'testTag', 'zcb  Normal rotation getModifierKeyState ' + result);
1586                  }
1587                  hilog.info(0x0000, 'testTag',
1588                    'zcb Normal rotation target width ' + event.target.area.width + ' height ' +
1589                    event.target.area.height + ' x ' +
1590                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1591                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1592                  hilog.info(0x0000, 'testTag', 'zcb Normal rotation fingerList.length ' + event.fingerList.length);
1593                  for (let i = 0; i < event.fingerList.length; i++) {
1594                    hilog.info(0x0000, 'testTag',
1595                      'zcb Normal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1596                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1597                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1598                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1599                      event.fingerList[i].hand);
1600                  }
1601                })
1602                .onActionCancel((event: GestureEvent) => {
1603                  this.changeValue()
1604                  hilog.info(0x0000, 'testTag',
1605                    'zcb Normal rotation trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1606                      ' offsetX: ' +
1607                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1608                      ' scale: ' +
1609                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1610                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1611                      ' velocity: ' + event.velocity);
1612                  hilog.info(0x0000, 'testTag',
1613                    'zcb Normal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1614                      ' axisHorizontal ' +
1615                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1616                      ' tiltX ' +
1617                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1618                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1619                  let keyArray: string[] = ["Shift"];
1620                  if (event.getModifierKeyState !== undefined) {
1621                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1622                    let result = modifierState(keyArray)
1623                    hilog.info(0x0000, 'testTag', 'zcb  Normal rotation getModifierKeyState ' + result);
1624                  }
1625                  hilog.info(0x0000, 'testTag',
1626                    'zcb Normal rotation target width ' + event.target.area.width + ' height ' +
1627                    event.target.area.height + ' x ' +
1628                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1629                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1630                  hilog.info(0x0000, 'testTag', 'zcb Normal rotation fingerList.length ' + event.fingerList.length);
1631                  for (let i = 0; i < event.fingerList.length; i++) {
1632                    hilog.info(0x0000, 'testTag',
1633                      'zcb Normal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1634                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1635                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1636                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1637                      event.fingerList[i].hand);
1638                  }
1639                })
1640                .onActionEnd((event: GestureEvent) => {
1641                  this.changeValue()
1642                  hilog.info(0x0000, 'testTag',
1643                    'zcb Normal rotation trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1644                      ' offsetX: ' +
1645                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1646                      ' scale: ' +
1647                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1648                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1649                      ' velocity: ' + event.velocity);
1650                  hilog.info(0x0000, 'testTag',
1651                    'zcb Normal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1652                      ' axisHorizontal ' +
1653                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1654                      ' tiltX ' +
1655                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1656                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1657                  let keyArray: string[] = ["Shift"];
1658                  if (event.getModifierKeyState !== undefined) {
1659                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1660                    let result = modifierState(keyArray)
1661                    hilog.info(0x0000, 'testTag', 'zcb  Normal rotation getModifierKeyState ' + result);
1662                  }
1663                  hilog.info(0x0000, 'testTag',
1664                    'zcb Normal rotation target width ' + event.target.area.width + ' height ' +
1665                    event.target.area.height + ' x ' +
1666                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1667                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1668                  hilog.info(0x0000, 'testTag', 'zcb Normal rotation fingerList.length ' + event.fingerList.length);
1669                  for (let i = 0; i < event.fingerList.length; i++) {
1670                    hilog.info(0x0000, 'testTag',
1671                      'zcb Normal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1672                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1673                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1674                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1675                      event.fingerList[i].hand);
1676                  }
1677                })
1678                .tag('aaa')
1679                .allowedTypes([SourceTool.Finger])
1680            )
1681          Button('Abnormal rotation').backgroundColor('#FFFF00FF')
1682            .width(180)
1683            .height(50)
1684            .gesture(
1685              RotationGesture({ fingers: -1, angle: -1, isFingerCountLimited: undefined })
1686                .onActionStart((event: GestureEvent) => {
1687                  this.changeValue()
1688                  hilog.info(0x0000, 'testTag',
1689                    'zcb Abnormal rotation trigger onActionStart ' + JSON.stringify(event) + ' repeat: ' +
1690                    event.repeat + ' offsetX: ' +
1691                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1692                      ' scale: ' +
1693                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1694                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1695                      ' velocity: ' + event.velocity);
1696                  hilog.info(0x0000, 'testTag',
1697                    'zcb Abnormal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1698                      ' axisHorizontal ' +
1699                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1700                      ' tiltX ' +
1701                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1702                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1703                  let keyArray: string[] = ["Shift"];
1704                  if (event.getModifierKeyState !== undefined) {
1705                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1706                    let result = modifierState(keyArray)
1707                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal rotation getModifierKeyState ' + result);
1708                  }
1709                  hilog.info(0x0000, 'testTag',
1710                    'zcb Abnormal rotation target width ' + event.target.area.width + ' height ' +
1711                    event.target.area.height + ' x ' +
1712                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1713                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1714                  hilog.info(0x0000, 'testTag', 'zcb Abnormal rotation fingerList.length ' + event.fingerList.length);
1715                  for (let i = 0; i < event.fingerList.length; i++) {
1716                    hilog.info(0x0000, 'testTag',
1717                      'zcb Abnormal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1718                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1719                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1720                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1721                      event.fingerList[i].hand);
1722                  }
1723                })
1724                .onActionUpdate((event: GestureEvent) => {
1725                  this.changeValue()
1726                  hilog.info(0x0000, 'testTag',
1727                    'zcb Abnormal rotation trigger onActionUpdate ' + JSON.stringify(event) + ' repeat: ' +
1728                    event.repeat + ' offsetX: ' +
1729                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1730                      ' scale: ' +
1731                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1732                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1733                      ' velocity: ' + event.velocity);
1734                  hilog.info(0x0000, 'testTag',
1735                    'zcb Abnormal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1736                      ' axisHorizontal ' +
1737                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1738                      ' tiltX ' +
1739                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1740                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1741                  let keyArray: string[] = ["Shift"];
1742                  if (event.getModifierKeyState !== undefined) {
1743                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1744                    let result = modifierState(keyArray)
1745                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal rotation getModifierKeyState ' + result);
1746                  }
1747                  hilog.info(0x0000, 'testTag',
1748                    'zcb Abnormal rotation target width ' + event.target.area.width + ' height ' +
1749                    event.target.area.height + ' x ' +
1750                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1751                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1752                  hilog.info(0x0000, 'testTag', 'zcb Abnormal rotation fingerList.length ' + event.fingerList.length);
1753                  for (let i = 0; i < event.fingerList.length; i++) {
1754                    hilog.info(0x0000, 'testTag',
1755                      'zcb Abnormal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1756                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1757                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1758                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1759                      event.fingerList[i].hand);
1760                  }
1761                })
1762                .onActionCancel((event: GestureEvent) => {
1763                  this.changeValue()
1764                  hilog.info(0x0000, 'testTag',
1765                    'zcb Abnormal rotation trigger onActionCancel ' + JSON.stringify(event) + ' repeat: ' +
1766                    event.repeat + ' offsetX: ' +
1767                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1768                      ' scale: ' +
1769                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1770                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1771                      ' velocity: ' + event.velocity);
1772                  hilog.info(0x0000, 'testTag',
1773                    'zcb Abnormal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1774                      ' axisHorizontal ' +
1775                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1776                      ' tiltX ' +
1777                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1778                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1779                  let keyArray: string[] = ["Shift"];
1780                  if (event.getModifierKeyState !== undefined) {
1781                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1782                    let result = modifierState(keyArray)
1783                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal rotation getModifierKeyState ' + result);
1784                  }
1785                  hilog.info(0x0000, 'testTag',
1786                    'zcb Abnormal rotation target width ' + event.target.area.width + ' height ' +
1787                    event.target.area.height + ' x ' +
1788                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1789                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1790                  hilog.info(0x0000, 'testTag', 'zcb Abnormal rotation fingerList.length ' + event.fingerList.length);
1791                  for (let i = 0; i < event.fingerList.length; i++) {
1792                    hilog.info(0x0000, 'testTag',
1793                      'zcb Abnormal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1794                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1795                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1796                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1797                      event.fingerList[i].hand);
1798                  }
1799                })
1800                .onActionEnd((event: GestureEvent) => {
1801                  this.changeValue()
1802                  hilog.info(0x0000, 'testTag',
1803                    'zcb Abnormal rotation trigger onActionEnd ' + JSON.stringify(event) + ' repeat: ' + event.repeat +
1804                      ' offsetX: ' +
1805                    event.offsetX + ' offsetY: ' + event.offsetY + ' angle: ' + event.angle + ' speed: ' + event.speed +
1806                      ' scale: ' +
1807                    event.scale + ' pinchCenterX: ' + event.pinchCenterX + ' pinchCenterY: ' +
1808                    event.pinchCenterY + ' velocityX: ' + event.velocityX + ' velocityY: ' + event.velocityY +
1809                      ' velocity: ' + event.velocity);
1810                  hilog.info(0x0000, 'testTag',
1811                    'zcb Abnormal rotation baseEvent timestamp ' + event.timestamp + ' source ' + event.source +
1812                      ' axisHorizontal ' +
1813                    event.axisHorizontal + ' axisVertical ' + event.axisVertical + ' pressure ' + event.pressure +
1814                      ' tiltX ' +
1815                    event.tiltX + ' tiltY ' + event.tiltY + ' sourceTool ' + event.sourceTool + ' deviceId ' +
1816                    event.deviceId + ' targetDisplayId ' + event.targetDisplayId)
1817                  let keyArray: string[] = ["Shift"];
1818                  if (event.getModifierKeyState !== undefined) {
1819                    const modifierState = event.getModifierKeyState as (keys: Array<string>) => boolean;
1820                    let result = modifierState(keyArray)
1821                    hilog.info(0x0000, 'testTag', 'zcb  Abnormal rotation getModifierKeyState ' + result);
1822                  }
1823                  hilog.info(0x0000, 'testTag',
1824                    'zcb Abnormal rotation target width ' + event.target.area.width + ' height ' +
1825                    event.target.area.height + ' x ' +
1826                    event.target.area.position.x + ' y ' + event.target.area.position.y + ' globalX ' +
1827                    event.target.area.globalPosition.x + ' globalY ' + event.target.area.globalPosition.y)
1828                  hilog.info(0x0000, 'testTag', 'zcb Abnormal rotation fingerList.length ' + event.fingerList.length);
1829                  for (let i = 0; i < event.fingerList.length; i++) {
1830                    hilog.info(0x0000, 'testTag',
1831                      'zcb Abnormal rotation fingerList[i]' + i + ' id ' + event.fingerList[i].id + ' globalX ' +
1832                      event.fingerList[i].globalX + ' globalY ' + event.fingerList[i].globalY + ' localX ' +
1833                      event.fingerList[i].localX + ' localY ' + event.fingerList[i].localY + ' displayX ' +
1834                      event.fingerList[i].displayX + ' displayY ' + event.fingerList[i].displayY + ' hand ' +
1835                      event.fingerList[i].hand);
1836                  }
1837                })
1838                .tag('aaa')
1839                .allowedTypes([SourceTool.Finger])
1840            )
1841        }
1842
1843        Button('multi group').backgroundColor('#FFFF00FF')
1844          .width(180)
1845          .height(50)
1846          .gesture(GestureGroup(GestureMode.Parallel,
1847            GestureGroup(GestureMode.Exclusive,
1848              GestureGroup(GestureMode.Sequence,
1849                LongPressGesture()
1850                  .onAction((event: GestureEvent) => {
1851                    hilog.info(0x0000, 'testTag', 'zcb LongPressGesture trigger');
1852                  }),
1853                PanGesture()
1854                  .onActionStart((event: GestureEvent) => {
1855                    hilog.info(0x0000, 'testTag', 'zcb PanGesture trigger');
1856                  })
1857              ),
1858              TapGesture()
1859                .onAction((event: GestureEvent) => {
1860                  hilog.info(0x0000, 'testTag', 'zcb TapGesture trigger');
1861                })
1862            ),
1863            TapGesture()
1864              .onAction((event: GestureEvent) => {
1865                hilog.info(0x0000, 'testTag', 'zcb TapGesture trigger');
1866              })
1867          ))
1868
1869        Column(undefined) {
1870          Button('test mask')
1871            .width(180)
1872            .height(50)
1873            .onClick((event: ClickEvent) => {
1874              hilog.info(0x0000, 'testTag', 'zcb child click trigger');
1875            })
1876        }
1877        .parallelGesture(
1878          TapGesture()
1879            .onAction((event: GestureEvent) => {
1880              hilog.info(0x0000, 'testTag', 'zcb father click trigger');
1881            }), GestureMask.IgnoreInternal
1882        )
1883
1884        Column(undefined) {
1885          Button('test priority binding')
1886            .width(180)
1887            .height(50)
1888            .onClick((event: ClickEvent) => {
1889              hilog.info(0x0000, 'testTag', 'zcb child click trigger');
1890            })
1891        }
1892        .parallelGesture(
1893          TapGesture()
1894            .onAction((event: GestureEvent) => {
1895              hilog.info(0x0000, 'testTag', 'zcb father click trigger');
1896            })
1897        )
1898        .gesture(
1899          LongPressGesture()
1900            .onAction((event: GestureEvent) => {
1901              hilog.info(0x0000, 'testTag', 'zcb LongPressGesture trigger');
1902            })
1903        )
1904        .priorityGesture(
1905          PanGesture()
1906            .onActionStart((event: GestureEvent) => {
1907              hilog.info(0x0000, 'testTag', 'zcb PanGesture trigger');
1908            })
1909        )
1910
1911
1912        Text(this.stateVar).fontSize(20)
1913        Child({ stateVar: this.stateVar } as __Options_Child)
1914      }
1915    }
1916    .title('手势基础功能测试用例')
1917  }
1918}
1919
1920@Component
1921struct Child {
1922  @State stateVar: string = 'Child';
1923  build() {
1924    Text(this.stateVar).fontSize(50)
1925  }
1926}
1927