Best Python code snippet using Airtest
many-actions.gyp
Source:many-actions.gyp
1# Copyright (c) 2012 Google Inc. All rights reserved.2# Use of this source code is governed by a BSD-style license that can be3# found in the LICENSE file.4{5 'target_defaults': {6 'msvs_cygwin_dirs': ['../../../../<(DEPTH)/third_party/cygwin'],7 },8 'targets': [9 {10 'target_name': 'a',11 'type': 'none',12 'actions': [13 {14 'action_name': 'do_0',15 'inputs': [],16 'outputs': ['<(PRODUCT_DIR)/generated_0.h'],17 'action': [18 'touch',19 '<(PRODUCT_DIR)/generated_0.h',20 ],21 },22 {23 'action_name': 'do_1',24 'inputs': [],25 'outputs': ['<(PRODUCT_DIR)/generated_1.h'],26 'action': [27 'touch',28 '<(PRODUCT_DIR)/generated_1.h',29 ],30 },31 {32 'action_name': 'do_2',33 'inputs': [],34 'outputs': ['<(PRODUCT_DIR)/generated_2.h'],35 'action': [36 'touch',37 '<(PRODUCT_DIR)/generated_2.h',38 ],39 },40 {41 'action_name': 'do_3',42 'inputs': [],43 'outputs': ['<(PRODUCT_DIR)/generated_3.h'],44 'action': [45 'touch',46 '<(PRODUCT_DIR)/generated_3.h',47 ],48 },49 {50 'action_name': 'do_4',51 'inputs': [],52 'outputs': ['<(PRODUCT_DIR)/generated_4.h'],53 'action': [54 'touch',55 '<(PRODUCT_DIR)/generated_4.h',56 ],57 },58 {59 'action_name': 'do_5',60 'inputs': [],61 'outputs': ['<(PRODUCT_DIR)/generated_5.h'],62 'action': [63 'touch',64 '<(PRODUCT_DIR)/generated_5.h',65 ],66 },67 {68 'action_name': 'do_6',69 'inputs': [],70 'outputs': ['<(PRODUCT_DIR)/generated_6.h'],71 'action': [72 'touch',73 '<(PRODUCT_DIR)/generated_6.h',74 ],75 },76 {77 'action_name': 'do_7',78 'inputs': [],79 'outputs': ['<(PRODUCT_DIR)/generated_7.h'],80 'action': [81 'touch',82 '<(PRODUCT_DIR)/generated_7.h',83 ],84 },85 {86 'action_name': 'do_8',87 'inputs': [],88 'outputs': ['<(PRODUCT_DIR)/generated_8.h'],89 'action': [90 'touch',91 '<(PRODUCT_DIR)/generated_8.h',92 ],93 },94 {95 'action_name': 'do_9',96 'inputs': [],97 'outputs': ['<(PRODUCT_DIR)/generated_9.h'],98 'action': [99 'touch',100 '<(PRODUCT_DIR)/generated_9.h',101 ],102 },103 {104 'action_name': 'do_10',105 'inputs': [],106 'outputs': ['<(PRODUCT_DIR)/generated_10.h'],107 'action': [108 'touch',109 '<(PRODUCT_DIR)/generated_10.h',110 ],111 },112 {113 'action_name': 'do_11',114 'inputs': [],115 'outputs': ['<(PRODUCT_DIR)/generated_11.h'],116 'action': [117 'touch',118 '<(PRODUCT_DIR)/generated_11.h',119 ],120 },121 {122 'action_name': 'do_12',123 'inputs': [],124 'outputs': ['<(PRODUCT_DIR)/generated_12.h'],125 'action': [126 'touch',127 '<(PRODUCT_DIR)/generated_12.h',128 ],129 },130 {131 'action_name': 'do_13',132 'inputs': [],133 'outputs': ['<(PRODUCT_DIR)/generated_13.h'],134 'action': [135 'touch',136 '<(PRODUCT_DIR)/generated_13.h',137 ],138 },139 {140 'action_name': 'do_14',141 'inputs': [],142 'outputs': ['<(PRODUCT_DIR)/generated_14.h'],143 'action': [144 'touch',145 '<(PRODUCT_DIR)/generated_14.h',146 ],147 },148 {149 'action_name': 'do_15',150 'inputs': [],151 'outputs': ['<(PRODUCT_DIR)/generated_15.h'],152 'action': [153 'touch',154 '<(PRODUCT_DIR)/generated_15.h',155 ],156 },157 {158 'action_name': 'do_16',159 'inputs': [],160 'outputs': ['<(PRODUCT_DIR)/generated_16.h'],161 'action': [162 'touch',163 '<(PRODUCT_DIR)/generated_16.h',164 ],165 },166 {167 'action_name': 'do_17',168 'inputs': [],169 'outputs': ['<(PRODUCT_DIR)/generated_17.h'],170 'action': [171 'touch',172 '<(PRODUCT_DIR)/generated_17.h',173 ],174 },175 {176 'action_name': 'do_18',177 'inputs': [],178 'outputs': ['<(PRODUCT_DIR)/generated_18.h'],179 'action': [180 'touch',181 '<(PRODUCT_DIR)/generated_18.h',182 ],183 },184 {185 'action_name': 'do_19',186 'inputs': [],187 'outputs': ['<(PRODUCT_DIR)/generated_19.h'],188 'action': [189 'touch',190 '<(PRODUCT_DIR)/generated_19.h',191 ],192 },193 {194 'action_name': 'do_20',195 'inputs': [],196 'outputs': ['<(PRODUCT_DIR)/generated_20.h'],197 'action': [198 'touch',199 '<(PRODUCT_DIR)/generated_20.h',200 ],201 },202 {203 'action_name': 'do_21',204 'inputs': [],205 'outputs': ['<(PRODUCT_DIR)/generated_21.h'],206 'action': [207 'touch',208 '<(PRODUCT_DIR)/generated_21.h',209 ],210 },211 {212 'action_name': 'do_22',213 'inputs': [],214 'outputs': ['<(PRODUCT_DIR)/generated_22.h'],215 'action': [216 'touch',217 '<(PRODUCT_DIR)/generated_22.h',218 ],219 },220 {221 'action_name': 'do_23',222 'inputs': [],223 'outputs': ['<(PRODUCT_DIR)/generated_23.h'],224 'action': [225 'touch',226 '<(PRODUCT_DIR)/generated_23.h',227 ],228 },229 {230 'action_name': 'do_24',231 'inputs': [],232 'outputs': ['<(PRODUCT_DIR)/generated_24.h'],233 'action': [234 'touch',235 '<(PRODUCT_DIR)/generated_24.h',236 ],237 },238 {239 'action_name': 'do_25',240 'inputs': [],241 'outputs': ['<(PRODUCT_DIR)/generated_25.h'],242 'action': [243 'touch',244 '<(PRODUCT_DIR)/generated_25.h',245 ],246 },247 {248 'action_name': 'do_26',249 'inputs': [],250 'outputs': ['<(PRODUCT_DIR)/generated_26.h'],251 'action': [252 'touch',253 '<(PRODUCT_DIR)/generated_26.h',254 ],255 },256 {257 'action_name': 'do_27',258 'inputs': [],259 'outputs': ['<(PRODUCT_DIR)/generated_27.h'],260 'action': [261 'touch',262 '<(PRODUCT_DIR)/generated_27.h',263 ],264 },265 {266 'action_name': 'do_28',267 'inputs': [],268 'outputs': ['<(PRODUCT_DIR)/generated_28.h'],269 'action': [270 'touch',271 '<(PRODUCT_DIR)/generated_28.h',272 ],273 },274 {275 'action_name': 'do_29',276 'inputs': [],277 'outputs': ['<(PRODUCT_DIR)/generated_29.h'],278 'action': [279 'touch',280 '<(PRODUCT_DIR)/generated_29.h',281 ],282 },283 {284 'action_name': 'do_30',285 'inputs': [],286 'outputs': ['<(PRODUCT_DIR)/generated_30.h'],287 'action': [288 'touch',289 '<(PRODUCT_DIR)/generated_30.h',290 ],291 },292 {293 'action_name': 'do_31',294 'inputs': [],295 'outputs': ['<(PRODUCT_DIR)/generated_31.h'],296 'action': [297 'touch',298 '<(PRODUCT_DIR)/generated_31.h',299 ],300 },301 {302 'action_name': 'do_32',303 'inputs': [],304 'outputs': ['<(PRODUCT_DIR)/generated_32.h'],305 'action': [306 'touch',307 '<(PRODUCT_DIR)/generated_32.h',308 ],309 },310 {311 'action_name': 'do_33',312 'inputs': [],313 'outputs': ['<(PRODUCT_DIR)/generated_33.h'],314 'action': [315 'touch',316 '<(PRODUCT_DIR)/generated_33.h',317 ],318 },319 {320 'action_name': 'do_34',321 'inputs': [],322 'outputs': ['<(PRODUCT_DIR)/generated_34.h'],323 'action': [324 'touch',325 '<(PRODUCT_DIR)/generated_34.h',326 ],327 },328 {329 'action_name': 'do_35',330 'inputs': [],331 'outputs': ['<(PRODUCT_DIR)/generated_35.h'],332 'action': [333 'touch',334 '<(PRODUCT_DIR)/generated_35.h',335 ],336 },337 {338 'action_name': 'do_36',339 'inputs': [],340 'outputs': ['<(PRODUCT_DIR)/generated_36.h'],341 'action': [342 'touch',343 '<(PRODUCT_DIR)/generated_36.h',344 ],345 },346 {347 'action_name': 'do_37',348 'inputs': [],349 'outputs': ['<(PRODUCT_DIR)/generated_37.h'],350 'action': [351 'touch',352 '<(PRODUCT_DIR)/generated_37.h',353 ],354 },355 {356 'action_name': 'do_38',357 'inputs': [],358 'outputs': ['<(PRODUCT_DIR)/generated_38.h'],359 'action': [360 'touch',361 '<(PRODUCT_DIR)/generated_38.h',362 ],363 },364 {365 'action_name': 'do_39',366 'inputs': [],367 'outputs': ['<(PRODUCT_DIR)/generated_39.h'],368 'action': [369 'touch',370 '<(PRODUCT_DIR)/generated_39.h',371 ],372 },373 {374 'action_name': 'do_40',375 'inputs': [],376 'outputs': ['<(PRODUCT_DIR)/generated_40.h'],377 'action': [378 'touch',379 '<(PRODUCT_DIR)/generated_40.h',380 ],381 },382 {383 'action_name': 'do_41',384 'inputs': [],385 'outputs': ['<(PRODUCT_DIR)/generated_41.h'],386 'action': [387 'touch',388 '<(PRODUCT_DIR)/generated_41.h',389 ],390 },391 {392 'action_name': 'do_42',393 'inputs': [],394 'outputs': ['<(PRODUCT_DIR)/generated_42.h'],395 'action': [396 'touch',397 '<(PRODUCT_DIR)/generated_42.h',398 ],399 },400 {401 'action_name': 'do_43',402 'inputs': [],403 'outputs': ['<(PRODUCT_DIR)/generated_43.h'],404 'action': [405 'touch',406 '<(PRODUCT_DIR)/generated_43.h',407 ],408 },409 {410 'action_name': 'do_44',411 'inputs': [],412 'outputs': ['<(PRODUCT_DIR)/generated_44.h'],413 'action': [414 'touch',415 '<(PRODUCT_DIR)/generated_44.h',416 ],417 },418 {419 'action_name': 'do_45',420 'inputs': [],421 'outputs': ['<(PRODUCT_DIR)/generated_45.h'],422 'action': [423 'touch',424 '<(PRODUCT_DIR)/generated_45.h',425 ],426 },427 {428 'action_name': 'do_46',429 'inputs': [],430 'outputs': ['<(PRODUCT_DIR)/generated_46.h'],431 'action': [432 'touch',433 '<(PRODUCT_DIR)/generated_46.h',434 ],435 },436 {437 'action_name': 'do_47',438 'inputs': [],439 'outputs': ['<(PRODUCT_DIR)/generated_47.h'],440 'action': [441 'touch',442 '<(PRODUCT_DIR)/generated_47.h',443 ],444 },445 {446 'action_name': 'do_48',447 'inputs': [],448 'outputs': ['<(PRODUCT_DIR)/generated_48.h'],449 'action': [450 'touch',451 '<(PRODUCT_DIR)/generated_48.h',452 ],453 },454 {455 'action_name': 'do_49',456 'inputs': [],457 'outputs': ['<(PRODUCT_DIR)/generated_49.h'],458 'action': [459 'touch',460 '<(PRODUCT_DIR)/generated_49.h',461 ],462 },463 {464 'action_name': 'do_50',465 'inputs': [],466 'outputs': ['<(PRODUCT_DIR)/generated_50.h'],467 'action': [468 'touch',469 '<(PRODUCT_DIR)/generated_50.h',470 ],471 },472 {473 'action_name': 'do_51',474 'inputs': [],475 'outputs': ['<(PRODUCT_DIR)/generated_51.h'],476 'action': [477 'touch',478 '<(PRODUCT_DIR)/generated_51.h',479 ],480 },481 {482 'action_name': 'do_52',483 'inputs': [],484 'outputs': ['<(PRODUCT_DIR)/generated_52.h'],485 'action': [486 'touch',487 '<(PRODUCT_DIR)/generated_52.h',488 ],489 },490 {491 'action_name': 'do_53',492 'inputs': [],493 'outputs': ['<(PRODUCT_DIR)/generated_53.h'],494 'action': [495 'touch',496 '<(PRODUCT_DIR)/generated_53.h',497 ],498 },499 {500 'action_name': 'do_54',501 'inputs': [],502 'outputs': ['<(PRODUCT_DIR)/generated_54.h'],503 'action': [504 'touch',505 '<(PRODUCT_DIR)/generated_54.h',506 ],507 },508 {509 'action_name': 'do_55',510 'inputs': [],511 'outputs': ['<(PRODUCT_DIR)/generated_55.h'],512 'action': [513 'touch',514 '<(PRODUCT_DIR)/generated_55.h',515 ],516 },517 {518 'action_name': 'do_56',519 'inputs': [],520 'outputs': ['<(PRODUCT_DIR)/generated_56.h'],521 'action': [522 'touch',523 '<(PRODUCT_DIR)/generated_56.h',524 ],525 },526 {527 'action_name': 'do_57',528 'inputs': [],529 'outputs': ['<(PRODUCT_DIR)/generated_57.h'],530 'action': [531 'touch',532 '<(PRODUCT_DIR)/generated_57.h',533 ],534 },535 {536 'action_name': 'do_58',537 'inputs': [],538 'outputs': ['<(PRODUCT_DIR)/generated_58.h'],539 'action': [540 'touch',541 '<(PRODUCT_DIR)/generated_58.h',542 ],543 },544 {545 'action_name': 'do_59',546 'inputs': [],547 'outputs': ['<(PRODUCT_DIR)/generated_59.h'],548 'action': [549 'touch',550 '<(PRODUCT_DIR)/generated_59.h',551 ],552 },553 {554 'action_name': 'do_60',555 'inputs': [],556 'outputs': ['<(PRODUCT_DIR)/generated_60.h'],557 'action': [558 'touch',559 '<(PRODUCT_DIR)/generated_60.h',560 ],561 },562 {563 'action_name': 'do_61',564 'inputs': [],565 'outputs': ['<(PRODUCT_DIR)/generated_61.h'],566 'action': [567 'touch',568 '<(PRODUCT_DIR)/generated_61.h',569 ],570 },571 {572 'action_name': 'do_62',573 'inputs': [],574 'outputs': ['<(PRODUCT_DIR)/generated_62.h'],575 'action': [576 'touch',577 '<(PRODUCT_DIR)/generated_62.h',578 ],579 },580 {581 'action_name': 'do_63',582 'inputs': [],583 'outputs': ['<(PRODUCT_DIR)/generated_63.h'],584 'action': [585 'touch',586 '<(PRODUCT_DIR)/generated_63.h',587 ],588 },589 {590 'action_name': 'do_64',591 'inputs': [],592 'outputs': ['<(PRODUCT_DIR)/generated_64.h'],593 'action': [594 'touch',595 '<(PRODUCT_DIR)/generated_64.h',596 ],597 },598 {599 'action_name': 'do_65',600 'inputs': [],601 'outputs': ['<(PRODUCT_DIR)/generated_65.h'],602 'action': [603 'touch',604 '<(PRODUCT_DIR)/generated_65.h',605 ],606 },607 {608 'action_name': 'do_66',609 'inputs': [],610 'outputs': ['<(PRODUCT_DIR)/generated_66.h'],611 'action': [612 'touch',613 '<(PRODUCT_DIR)/generated_66.h',614 ],615 },616 {617 'action_name': 'do_67',618 'inputs': [],619 'outputs': ['<(PRODUCT_DIR)/generated_67.h'],620 'action': [621 'touch',622 '<(PRODUCT_DIR)/generated_67.h',623 ],624 },625 {626 'action_name': 'do_68',627 'inputs': [],628 'outputs': ['<(PRODUCT_DIR)/generated_68.h'],629 'action': [630 'touch',631 '<(PRODUCT_DIR)/generated_68.h',632 ],633 },634 {635 'action_name': 'do_69',636 'inputs': [],637 'outputs': ['<(PRODUCT_DIR)/generated_69.h'],638 'action': [639 'touch',640 '<(PRODUCT_DIR)/generated_69.h',641 ],642 },643 {644 'action_name': 'do_70',645 'inputs': [],646 'outputs': ['<(PRODUCT_DIR)/generated_70.h'],647 'action': [648 'touch',649 '<(PRODUCT_DIR)/generated_70.h',650 ],651 },652 {653 'action_name': 'do_71',654 'inputs': [],655 'outputs': ['<(PRODUCT_DIR)/generated_71.h'],656 'action': [657 'touch',658 '<(PRODUCT_DIR)/generated_71.h',659 ],660 },661 {662 'action_name': 'do_72',663 'inputs': [],664 'outputs': ['<(PRODUCT_DIR)/generated_72.h'],665 'action': [666 'touch',667 '<(PRODUCT_DIR)/generated_72.h',668 ],669 },670 {671 'action_name': 'do_73',672 'inputs': [],673 'outputs': ['<(PRODUCT_DIR)/generated_73.h'],674 'action': [675 'touch',676 '<(PRODUCT_DIR)/generated_73.h',677 ],678 },679 {680 'action_name': 'do_74',681 'inputs': [],682 'outputs': ['<(PRODUCT_DIR)/generated_74.h'],683 'action': [684 'touch',685 '<(PRODUCT_DIR)/generated_74.h',686 ],687 },688 {689 'action_name': 'do_75',690 'inputs': [],691 'outputs': ['<(PRODUCT_DIR)/generated_75.h'],692 'action': [693 'touch',694 '<(PRODUCT_DIR)/generated_75.h',695 ],696 },697 {698 'action_name': 'do_76',699 'inputs': [],700 'outputs': ['<(PRODUCT_DIR)/generated_76.h'],701 'action': [702 'touch',703 '<(PRODUCT_DIR)/generated_76.h',704 ],705 },706 {707 'action_name': 'do_77',708 'inputs': [],709 'outputs': ['<(PRODUCT_DIR)/generated_77.h'],710 'action': [711 'touch',712 '<(PRODUCT_DIR)/generated_77.h',713 ],714 },715 {716 'action_name': 'do_78',717 'inputs': [],718 'outputs': ['<(PRODUCT_DIR)/generated_78.h'],719 'action': [720 'touch',721 '<(PRODUCT_DIR)/generated_78.h',722 ],723 },724 {725 'action_name': 'do_79',726 'inputs': [],727 'outputs': ['<(PRODUCT_DIR)/generated_79.h'],728 'action': [729 'touch',730 '<(PRODUCT_DIR)/generated_79.h',731 ],732 },733 {734 'action_name': 'do_80',735 'inputs': [],736 'outputs': ['<(PRODUCT_DIR)/generated_80.h'],737 'action': [738 'touch',739 '<(PRODUCT_DIR)/generated_80.h',740 ],741 },742 {743 'action_name': 'do_81',744 'inputs': [],745 'outputs': ['<(PRODUCT_DIR)/generated_81.h'],746 'action': [747 'touch',748 '<(PRODUCT_DIR)/generated_81.h',749 ],750 },751 {752 'action_name': 'do_82',753 'inputs': [],754 'outputs': ['<(PRODUCT_DIR)/generated_82.h'],755 'action': [756 'touch',757 '<(PRODUCT_DIR)/generated_82.h',758 ],759 },760 {761 'action_name': 'do_83',762 'inputs': [],763 'outputs': ['<(PRODUCT_DIR)/generated_83.h'],764 'action': [765 'touch',766 '<(PRODUCT_DIR)/generated_83.h',767 ],768 },769 {770 'action_name': 'do_84',771 'inputs': [],772 'outputs': ['<(PRODUCT_DIR)/generated_84.h'],773 'action': [774 'touch',775 '<(PRODUCT_DIR)/generated_84.h',776 ],777 },778 {779 'action_name': 'do_85',780 'inputs': [],781 'outputs': ['<(PRODUCT_DIR)/generated_85.h'],782 'action': [783 'touch',784 '<(PRODUCT_DIR)/generated_85.h',785 ],786 },787 {788 'action_name': 'do_86',789 'inputs': [],790 'outputs': ['<(PRODUCT_DIR)/generated_86.h'],791 'action': [792 'touch',793 '<(PRODUCT_DIR)/generated_86.h',794 ],795 },796 {797 'action_name': 'do_87',798 'inputs': [],799 'outputs': ['<(PRODUCT_DIR)/generated_87.h'],800 'action': [801 'touch',802 '<(PRODUCT_DIR)/generated_87.h',803 ],804 },805 {806 'action_name': 'do_88',807 'inputs': [],808 'outputs': ['<(PRODUCT_DIR)/generated_88.h'],809 'action': [810 'touch',811 '<(PRODUCT_DIR)/generated_88.h',812 ],813 },814 {815 'action_name': 'do_89',816 'inputs': [],817 'outputs': ['<(PRODUCT_DIR)/generated_89.h'],818 'action': [819 'touch',820 '<(PRODUCT_DIR)/generated_89.h',821 ],822 },823 {824 'action_name': 'do_90',825 'inputs': [],826 'outputs': ['<(PRODUCT_DIR)/generated_90.h'],827 'action': [828 'touch',829 '<(PRODUCT_DIR)/generated_90.h',830 ],831 },832 {833 'action_name': 'do_91',834 'inputs': [],835 'outputs': ['<(PRODUCT_DIR)/generated_91.h'],836 'action': [837 'touch',838 '<(PRODUCT_DIR)/generated_91.h',839 ],840 },841 {842 'action_name': 'do_92',843 'inputs': [],844 'outputs': ['<(PRODUCT_DIR)/generated_92.h'],845 'action': [846 'touch',847 '<(PRODUCT_DIR)/generated_92.h',848 ],849 },850 {851 'action_name': 'do_93',852 'inputs': [],853 'outputs': ['<(PRODUCT_DIR)/generated_93.h'],854 'action': [855 'touch',856 '<(PRODUCT_DIR)/generated_93.h',857 ],858 },859 {860 'action_name': 'do_94',861 'inputs': [],862 'outputs': ['<(PRODUCT_DIR)/generated_94.h'],863 'action': [864 'touch',865 '<(PRODUCT_DIR)/generated_94.h',866 ],867 },868 {869 'action_name': 'do_95',870 'inputs': [],871 'outputs': ['<(PRODUCT_DIR)/generated_95.h'],872 'action': [873 'touch',874 '<(PRODUCT_DIR)/generated_95.h',875 ],876 },877 {878 'action_name': 'do_96',879 'inputs': [],880 'outputs': ['<(PRODUCT_DIR)/generated_96.h'],881 'action': [882 'touch',883 '<(PRODUCT_DIR)/generated_96.h',884 ],885 },886 {887 'action_name': 'do_97',888 'inputs': [],889 'outputs': ['<(PRODUCT_DIR)/generated_97.h'],890 'action': [891 'touch',892 '<(PRODUCT_DIR)/generated_97.h',893 ],894 },895 {896 'action_name': 'do_98',897 'inputs': [],898 'outputs': ['<(PRODUCT_DIR)/generated_98.h'],899 'action': [900 'touch',901 '<(PRODUCT_DIR)/generated_98.h',902 ],903 },904 {905 'action_name': 'do_99',906 'inputs': [],907 'outputs': ['<(PRODUCT_DIR)/generated_99.h'],908 'action': [909 'touch',910 '<(PRODUCT_DIR)/generated_99.h',911 ],912 },913 {914 'action_name': 'do_100',915 'inputs': [],916 'outputs': ['<(PRODUCT_DIR)/generated_100.h'],917 'action': [918 'touch',919 '<(PRODUCT_DIR)/generated_100.h',920 ],921 },922 {923 'action_name': 'do_101',924 'inputs': [],925 'outputs': ['<(PRODUCT_DIR)/generated_101.h'],926 'action': [927 'touch',928 '<(PRODUCT_DIR)/generated_101.h',929 ],930 },931 {932 'action_name': 'do_102',933 'inputs': [],934 'outputs': ['<(PRODUCT_DIR)/generated_102.h'],935 'action': [936 'touch',937 '<(PRODUCT_DIR)/generated_102.h',938 ],939 },940 {941 'action_name': 'do_103',942 'inputs': [],943 'outputs': ['<(PRODUCT_DIR)/generated_103.h'],944 'action': [945 'touch',946 '<(PRODUCT_DIR)/generated_103.h',947 ],948 },949 {950 'action_name': 'do_104',951 'inputs': [],952 'outputs': ['<(PRODUCT_DIR)/generated_104.h'],953 'action': [954 'touch',955 '<(PRODUCT_DIR)/generated_104.h',956 ],957 },958 {959 'action_name': 'do_105',960 'inputs': [],961 'outputs': ['<(PRODUCT_DIR)/generated_105.h'],962 'action': [963 'touch',964 '<(PRODUCT_DIR)/generated_105.h',965 ],966 },967 {968 'action_name': 'do_106',969 'inputs': [],970 'outputs': ['<(PRODUCT_DIR)/generated_106.h'],971 'action': [972 'touch',973 '<(PRODUCT_DIR)/generated_106.h',974 ],975 },976 {977 'action_name': 'do_107',978 'inputs': [],979 'outputs': ['<(PRODUCT_DIR)/generated_107.h'],980 'action': [981 'touch',982 '<(PRODUCT_DIR)/generated_107.h',983 ],984 },985 {986 'action_name': 'do_108',987 'inputs': [],988 'outputs': ['<(PRODUCT_DIR)/generated_108.h'],989 'action': [990 'touch',991 '<(PRODUCT_DIR)/generated_108.h',992 ],993 },994 {995 'action_name': 'do_109',996 'inputs': [],997 'outputs': ['<(PRODUCT_DIR)/generated_109.h'],998 'action': [999 'touch',1000 '<(PRODUCT_DIR)/generated_109.h',1001 ],1002 },1003 {1004 'action_name': 'do_110',1005 'inputs': [],1006 'outputs': ['<(PRODUCT_DIR)/generated_110.h'],1007 'action': [1008 'touch',1009 '<(PRODUCT_DIR)/generated_110.h',1010 ],1011 },1012 {1013 'action_name': 'do_111',1014 'inputs': [],1015 'outputs': ['<(PRODUCT_DIR)/generated_111.h'],1016 'action': [1017 'touch',1018 '<(PRODUCT_DIR)/generated_111.h',1019 ],1020 },1021 {1022 'action_name': 'do_112',1023 'inputs': [],1024 'outputs': ['<(PRODUCT_DIR)/generated_112.h'],1025 'action': [1026 'touch',1027 '<(PRODUCT_DIR)/generated_112.h',1028 ],1029 },1030 {1031 'action_name': 'do_113',1032 'inputs': [],1033 'outputs': ['<(PRODUCT_DIR)/generated_113.h'],1034 'action': [1035 'touch',1036 '<(PRODUCT_DIR)/generated_113.h',1037 ],1038 },1039 {1040 'action_name': 'do_114',1041 'inputs': [],1042 'outputs': ['<(PRODUCT_DIR)/generated_114.h'],1043 'action': [1044 'touch',1045 '<(PRODUCT_DIR)/generated_114.h',1046 ],1047 },1048 {1049 'action_name': 'do_115',1050 'inputs': [],1051 'outputs': ['<(PRODUCT_DIR)/generated_115.h'],1052 'action': [1053 'touch',1054 '<(PRODUCT_DIR)/generated_115.h',1055 ],1056 },1057 {1058 'action_name': 'do_116',1059 'inputs': [],1060 'outputs': ['<(PRODUCT_DIR)/generated_116.h'],1061 'action': [1062 'touch',1063 '<(PRODUCT_DIR)/generated_116.h',1064 ],1065 },1066 {1067 'action_name': 'do_117',1068 'inputs': [],1069 'outputs': ['<(PRODUCT_DIR)/generated_117.h'],1070 'action': [1071 'touch',1072 '<(PRODUCT_DIR)/generated_117.h',1073 ],1074 },1075 {1076 'action_name': 'do_118',1077 'inputs': [],1078 'outputs': ['<(PRODUCT_DIR)/generated_118.h'],1079 'action': [1080 'touch',1081 '<(PRODUCT_DIR)/generated_118.h',1082 ],1083 },1084 {1085 'action_name': 'do_119',1086 'inputs': [],1087 'outputs': ['<(PRODUCT_DIR)/generated_119.h'],1088 'action': [1089 'touch',1090 '<(PRODUCT_DIR)/generated_119.h',1091 ],1092 },1093 {1094 'action_name': 'do_120',1095 'inputs': [],1096 'outputs': ['<(PRODUCT_DIR)/generated_120.h'],1097 'action': [1098 'touch',1099 '<(PRODUCT_DIR)/generated_120.h',1100 ],1101 },1102 {1103 'action_name': 'do_121',1104 'inputs': [],1105 'outputs': ['<(PRODUCT_DIR)/generated_121.h'],1106 'action': [1107 'touch',1108 '<(PRODUCT_DIR)/generated_121.h',1109 ],1110 },1111 {1112 'action_name': 'do_122',1113 'inputs': [],1114 'outputs': ['<(PRODUCT_DIR)/generated_122.h'],1115 'action': [1116 'touch',1117 '<(PRODUCT_DIR)/generated_122.h',1118 ],1119 },1120 {1121 'action_name': 'do_123',1122 'inputs': [],1123 'outputs': ['<(PRODUCT_DIR)/generated_123.h'],1124 'action': [1125 'touch',1126 '<(PRODUCT_DIR)/generated_123.h',1127 ],1128 },1129 {1130 'action_name': 'do_124',1131 'inputs': [],1132 'outputs': ['<(PRODUCT_DIR)/generated_124.h'],1133 'action': [1134 'touch',1135 '<(PRODUCT_DIR)/generated_124.h',1136 ],1137 },1138 {1139 'action_name': 'do_125',1140 'inputs': [],1141 'outputs': ['<(PRODUCT_DIR)/generated_125.h'],1142 'action': [1143 'touch',1144 '<(PRODUCT_DIR)/generated_125.h',1145 ],1146 },1147 {1148 'action_name': 'do_126',1149 'inputs': [],1150 'outputs': ['<(PRODUCT_DIR)/generated_126.h'],1151 'action': [1152 'touch',1153 '<(PRODUCT_DIR)/generated_126.h',1154 ],1155 },1156 {1157 'action_name': 'do_127',1158 'inputs': [],1159 'outputs': ['<(PRODUCT_DIR)/generated_127.h'],1160 'action': [1161 'touch',1162 '<(PRODUCT_DIR)/generated_127.h',1163 ],1164 },1165 {1166 'action_name': 'do_128',1167 'inputs': [],1168 'outputs': ['<(PRODUCT_DIR)/generated_128.h'],1169 'action': [1170 'touch',1171 '<(PRODUCT_DIR)/generated_128.h',1172 ],1173 },1174 {1175 'action_name': 'do_129',1176 'inputs': [],1177 'outputs': ['<(PRODUCT_DIR)/generated_129.h'],1178 'action': [1179 'touch',1180 '<(PRODUCT_DIR)/generated_129.h',1181 ],1182 },1183 {1184 'action_name': 'do_130',1185 'inputs': [],1186 'outputs': ['<(PRODUCT_DIR)/generated_130.h'],1187 'action': [1188 'touch',1189 '<(PRODUCT_DIR)/generated_130.h',1190 ],1191 },1192 {1193 'action_name': 'do_131',1194 'inputs': [],1195 'outputs': ['<(PRODUCT_DIR)/generated_131.h'],1196 'action': [1197 'touch',1198 '<(PRODUCT_DIR)/generated_131.h',1199 ],1200 },1201 {1202 'action_name': 'do_132',1203 'inputs': [],1204 'outputs': ['<(PRODUCT_DIR)/generated_132.h'],1205 'action': [1206 'touch',1207 '<(PRODUCT_DIR)/generated_132.h',1208 ],1209 },1210 {1211 'action_name': 'do_133',1212 'inputs': [],1213 'outputs': ['<(PRODUCT_DIR)/generated_133.h'],1214 'action': [1215 'touch',1216 '<(PRODUCT_DIR)/generated_133.h',1217 ],1218 },1219 {1220 'action_name': 'do_134',1221 'inputs': [],1222 'outputs': ['<(PRODUCT_DIR)/generated_134.h'],1223 'action': [1224 'touch',1225 '<(PRODUCT_DIR)/generated_134.h',1226 ],1227 },1228 {1229 'action_name': 'do_135',1230 'inputs': [],1231 'outputs': ['<(PRODUCT_DIR)/generated_135.h'],1232 'action': [1233 'touch',1234 '<(PRODUCT_DIR)/generated_135.h',1235 ],1236 },1237 {1238 'action_name': 'do_136',1239 'inputs': [],1240 'outputs': ['<(PRODUCT_DIR)/generated_136.h'],1241 'action': [1242 'touch',1243 '<(PRODUCT_DIR)/generated_136.h',1244 ],1245 },1246 {1247 'action_name': 'do_137',1248 'inputs': [],1249 'outputs': ['<(PRODUCT_DIR)/generated_137.h'],1250 'action': [1251 'touch',1252 '<(PRODUCT_DIR)/generated_137.h',1253 ],1254 },1255 {1256 'action_name': 'do_138',1257 'inputs': [],1258 'outputs': ['<(PRODUCT_DIR)/generated_138.h'],1259 'action': [1260 'touch',1261 '<(PRODUCT_DIR)/generated_138.h',1262 ],1263 },1264 {1265 'action_name': 'do_139',1266 'inputs': [],1267 'outputs': ['<(PRODUCT_DIR)/generated_139.h'],1268 'action': [1269 'touch',1270 '<(PRODUCT_DIR)/generated_139.h',1271 ],1272 },1273 {1274 'action_name': 'do_140',1275 'inputs': [],1276 'outputs': ['<(PRODUCT_DIR)/generated_140.h'],1277 'action': [1278 'touch',1279 '<(PRODUCT_DIR)/generated_140.h',1280 ],1281 },1282 {1283 'action_name': 'do_141',1284 'inputs': [],1285 'outputs': ['<(PRODUCT_DIR)/generated_141.h'],1286 'action': [1287 'touch',1288 '<(PRODUCT_DIR)/generated_141.h',1289 ],1290 },1291 {1292 'action_name': 'do_142',1293 'inputs': [],1294 'outputs': ['<(PRODUCT_DIR)/generated_142.h'],1295 'action': [1296 'touch',1297 '<(PRODUCT_DIR)/generated_142.h',1298 ],1299 },1300 {1301 'action_name': 'do_143',1302 'inputs': [],1303 'outputs': ['<(PRODUCT_DIR)/generated_143.h'],1304 'action': [1305 'touch',1306 '<(PRODUCT_DIR)/generated_143.h',1307 ],1308 },1309 {1310 'action_name': 'do_144',1311 'inputs': [],1312 'outputs': ['<(PRODUCT_DIR)/generated_144.h'],1313 'action': [1314 'touch',1315 '<(PRODUCT_DIR)/generated_144.h',1316 ],1317 },1318 {1319 'action_name': 'do_145',1320 'inputs': [],1321 'outputs': ['<(PRODUCT_DIR)/generated_145.h'],1322 'action': [1323 'touch',1324 '<(PRODUCT_DIR)/generated_145.h',1325 ],1326 },1327 {1328 'action_name': 'do_146',1329 'inputs': [],1330 'outputs': ['<(PRODUCT_DIR)/generated_146.h'],1331 'action': [1332 'touch',1333 '<(PRODUCT_DIR)/generated_146.h',1334 ],1335 },1336 {1337 'action_name': 'do_147',1338 'inputs': [],1339 'outputs': ['<(PRODUCT_DIR)/generated_147.h'],1340 'action': [1341 'touch',1342 '<(PRODUCT_DIR)/generated_147.h',1343 ],1344 },1345 {1346 'action_name': 'do_148',1347 'inputs': [],1348 'outputs': ['<(PRODUCT_DIR)/generated_148.h'],1349 'action': [1350 'touch',1351 '<(PRODUCT_DIR)/generated_148.h',1352 ],1353 },1354 {1355 'action_name': 'do_149',1356 'inputs': [],1357 'outputs': ['<(PRODUCT_DIR)/generated_149.h'],1358 'action': [1359 'touch',1360 '<(PRODUCT_DIR)/generated_149.h',1361 ],1362 },1363 {1364 'action_name': 'do_150',1365 'inputs': [],1366 'outputs': ['<(PRODUCT_DIR)/generated_150.h'],1367 'action': [1368 'touch',1369 '<(PRODUCT_DIR)/generated_150.h',1370 ],1371 },1372 {1373 'action_name': 'do_151',1374 'inputs': [],1375 'outputs': ['<(PRODUCT_DIR)/generated_151.h'],1376 'action': [1377 'touch',1378 '<(PRODUCT_DIR)/generated_151.h',1379 ],1380 },1381 {1382 'action_name': 'do_152',1383 'inputs': [],1384 'outputs': ['<(PRODUCT_DIR)/generated_152.h'],1385 'action': [1386 'touch',1387 '<(PRODUCT_DIR)/generated_152.h',1388 ],1389 },1390 {1391 'action_name': 'do_153',1392 'inputs': [],1393 'outputs': ['<(PRODUCT_DIR)/generated_153.h'],1394 'action': [1395 'touch',1396 '<(PRODUCT_DIR)/generated_153.h',1397 ],1398 },1399 {1400 'action_name': 'do_154',1401 'inputs': [],1402 'outputs': ['<(PRODUCT_DIR)/generated_154.h'],1403 'action': [1404 'touch',1405 '<(PRODUCT_DIR)/generated_154.h',1406 ],1407 },1408 {1409 'action_name': 'do_155',1410 'inputs': [],1411 'outputs': ['<(PRODUCT_DIR)/generated_155.h'],1412 'action': [1413 'touch',1414 '<(PRODUCT_DIR)/generated_155.h',1415 ],1416 },1417 {1418 'action_name': 'do_156',1419 'inputs': [],1420 'outputs': ['<(PRODUCT_DIR)/generated_156.h'],1421 'action': [1422 'touch',1423 '<(PRODUCT_DIR)/generated_156.h',1424 ],1425 },1426 {1427 'action_name': 'do_157',1428 'inputs': [],1429 'outputs': ['<(PRODUCT_DIR)/generated_157.h'],1430 'action': [1431 'touch',1432 '<(PRODUCT_DIR)/generated_157.h',1433 ],1434 },1435 {1436 'action_name': 'do_158',1437 'inputs': [],1438 'outputs': ['<(PRODUCT_DIR)/generated_158.h'],1439 'action': [1440 'touch',1441 '<(PRODUCT_DIR)/generated_158.h',1442 ],1443 },1444 {1445 'action_name': 'do_159',1446 'inputs': [],1447 'outputs': ['<(PRODUCT_DIR)/generated_159.h'],1448 'action': [1449 'touch',1450 '<(PRODUCT_DIR)/generated_159.h',1451 ],1452 },1453 {1454 'action_name': 'do_160',1455 'inputs': [],1456 'outputs': ['<(PRODUCT_DIR)/generated_160.h'],1457 'action': [1458 'touch',1459 '<(PRODUCT_DIR)/generated_160.h',1460 ],1461 },1462 {1463 'action_name': 'do_161',1464 'inputs': [],1465 'outputs': ['<(PRODUCT_DIR)/generated_161.h'],1466 'action': [1467 'touch',1468 '<(PRODUCT_DIR)/generated_161.h',1469 ],1470 },1471 {1472 'action_name': 'do_162',1473 'inputs': [],1474 'outputs': ['<(PRODUCT_DIR)/generated_162.h'],1475 'action': [1476 'touch',1477 '<(PRODUCT_DIR)/generated_162.h',1478 ],1479 },1480 {1481 'action_name': 'do_163',1482 'inputs': [],1483 'outputs': ['<(PRODUCT_DIR)/generated_163.h'],1484 'action': [1485 'touch',1486 '<(PRODUCT_DIR)/generated_163.h',1487 ],1488 },1489 {1490 'action_name': 'do_164',1491 'inputs': [],1492 'outputs': ['<(PRODUCT_DIR)/generated_164.h'],1493 'action': [1494 'touch',1495 '<(PRODUCT_DIR)/generated_164.h',1496 ],1497 },1498 {1499 'action_name': 'do_165',1500 'inputs': [],1501 'outputs': ['<(PRODUCT_DIR)/generated_165.h'],1502 'action': [1503 'touch',1504 '<(PRODUCT_DIR)/generated_165.h',1505 ],1506 },1507 {1508 'action_name': 'do_166',1509 'inputs': [],1510 'outputs': ['<(PRODUCT_DIR)/generated_166.h'],1511 'action': [1512 'touch',1513 '<(PRODUCT_DIR)/generated_166.h',1514 ],1515 },1516 {1517 'action_name': 'do_167',1518 'inputs': [],1519 'outputs': ['<(PRODUCT_DIR)/generated_167.h'],1520 'action': [1521 'touch',1522 '<(PRODUCT_DIR)/generated_167.h',1523 ],1524 },1525 {1526 'action_name': 'do_168',1527 'inputs': [],1528 'outputs': ['<(PRODUCT_DIR)/generated_168.h'],1529 'action': [1530 'touch',1531 '<(PRODUCT_DIR)/generated_168.h',1532 ],1533 },1534 {1535 'action_name': 'do_169',1536 'inputs': [],1537 'outputs': ['<(PRODUCT_DIR)/generated_169.h'],1538 'action': [1539 'touch',1540 '<(PRODUCT_DIR)/generated_169.h',1541 ],1542 },1543 {1544 'action_name': 'do_170',1545 'inputs': [],1546 'outputs': ['<(PRODUCT_DIR)/generated_170.h'],1547 'action': [1548 'touch',1549 '<(PRODUCT_DIR)/generated_170.h',1550 ],1551 },1552 {1553 'action_name': 'do_171',1554 'inputs': [],1555 'outputs': ['<(PRODUCT_DIR)/generated_171.h'],1556 'action': [1557 'touch',1558 '<(PRODUCT_DIR)/generated_171.h',1559 ],1560 },1561 {1562 'action_name': 'do_172',1563 'inputs': [],1564 'outputs': ['<(PRODUCT_DIR)/generated_172.h'],1565 'action': [1566 'touch',1567 '<(PRODUCT_DIR)/generated_172.h',1568 ],1569 },1570 {1571 'action_name': 'do_173',1572 'inputs': [],1573 'outputs': ['<(PRODUCT_DIR)/generated_173.h'],1574 'action': [1575 'touch',1576 '<(PRODUCT_DIR)/generated_173.h',1577 ],1578 },1579 {1580 'action_name': 'do_174',1581 'inputs': [],1582 'outputs': ['<(PRODUCT_DIR)/generated_174.h'],1583 'action': [1584 'touch',1585 '<(PRODUCT_DIR)/generated_174.h',1586 ],1587 },1588 {1589 'action_name': 'do_175',1590 'inputs': [],1591 'outputs': ['<(PRODUCT_DIR)/generated_175.h'],1592 'action': [1593 'touch',1594 '<(PRODUCT_DIR)/generated_175.h',1595 ],1596 },1597 {1598 'action_name': 'do_176',1599 'inputs': [],1600 'outputs': ['<(PRODUCT_DIR)/generated_176.h'],1601 'action': [1602 'touch',1603 '<(PRODUCT_DIR)/generated_176.h',1604 ],1605 },1606 {1607 'action_name': 'do_177',1608 'inputs': [],1609 'outputs': ['<(PRODUCT_DIR)/generated_177.h'],1610 'action': [1611 'touch',1612 '<(PRODUCT_DIR)/generated_177.h',1613 ],1614 },1615 {1616 'action_name': 'do_178',1617 'inputs': [],1618 'outputs': ['<(PRODUCT_DIR)/generated_178.h'],1619 'action': [1620 'touch',1621 '<(PRODUCT_DIR)/generated_178.h',1622 ],1623 },1624 {1625 'action_name': 'do_179',1626 'inputs': [],1627 'outputs': ['<(PRODUCT_DIR)/generated_179.h'],1628 'action': [1629 'touch',1630 '<(PRODUCT_DIR)/generated_179.h',1631 ],1632 },1633 {1634 'action_name': 'do_180',1635 'inputs': [],1636 'outputs': ['<(PRODUCT_DIR)/generated_180.h'],1637 'action': [1638 'touch',1639 '<(PRODUCT_DIR)/generated_180.h',1640 ],1641 },1642 {1643 'action_name': 'do_181',1644 'inputs': [],1645 'outputs': ['<(PRODUCT_DIR)/generated_181.h'],1646 'action': [1647 'touch',1648 '<(PRODUCT_DIR)/generated_181.h',1649 ],1650 },1651 {1652 'action_name': 'do_182',1653 'inputs': [],1654 'outputs': ['<(PRODUCT_DIR)/generated_182.h'],1655 'action': [1656 'touch',1657 '<(PRODUCT_DIR)/generated_182.h',1658 ],1659 },1660 {1661 'action_name': 'do_183',1662 'inputs': [],1663 'outputs': ['<(PRODUCT_DIR)/generated_183.h'],1664 'action': [1665 'touch',1666 '<(PRODUCT_DIR)/generated_183.h',1667 ],1668 },1669 {1670 'action_name': 'do_184',1671 'inputs': [],1672 'outputs': ['<(PRODUCT_DIR)/generated_184.h'],1673 'action': [1674 'touch',1675 '<(PRODUCT_DIR)/generated_184.h',1676 ],1677 },1678 {1679 'action_name': 'do_185',1680 'inputs': [],1681 'outputs': ['<(PRODUCT_DIR)/generated_185.h'],1682 'action': [1683 'touch',1684 '<(PRODUCT_DIR)/generated_185.h',1685 ],1686 },1687 {1688 'action_name': 'do_186',1689 'inputs': [],1690 'outputs': ['<(PRODUCT_DIR)/generated_186.h'],1691 'action': [1692 'touch',1693 '<(PRODUCT_DIR)/generated_186.h',1694 ],1695 },1696 {1697 'action_name': 'do_187',1698 'inputs': [],1699 'outputs': ['<(PRODUCT_DIR)/generated_187.h'],1700 'action': [1701 'touch',1702 '<(PRODUCT_DIR)/generated_187.h',1703 ],1704 },1705 {1706 'action_name': 'do_188',1707 'inputs': [],1708 'outputs': ['<(PRODUCT_DIR)/generated_188.h'],1709 'action': [1710 'touch',1711 '<(PRODUCT_DIR)/generated_188.h',1712 ],1713 },1714 {1715 'action_name': 'do_189',1716 'inputs': [],1717 'outputs': ['<(PRODUCT_DIR)/generated_189.h'],1718 'action': [1719 'touch',1720 '<(PRODUCT_DIR)/generated_189.h',1721 ],1722 },1723 {1724 'action_name': 'do_190',1725 'inputs': [],1726 'outputs': ['<(PRODUCT_DIR)/generated_190.h'],1727 'action': [1728 'touch',1729 '<(PRODUCT_DIR)/generated_190.h',1730 ],1731 },1732 {1733 'action_name': 'do_191',1734 'inputs': [],1735 'outputs': ['<(PRODUCT_DIR)/generated_191.h'],1736 'action': [1737 'touch',1738 '<(PRODUCT_DIR)/generated_191.h',1739 ],1740 },1741 {1742 'action_name': 'do_192',1743 'inputs': [],1744 'outputs': ['<(PRODUCT_DIR)/generated_192.h'],1745 'action': [1746 'touch',1747 '<(PRODUCT_DIR)/generated_192.h',1748 ],1749 },1750 {1751 'action_name': 'do_193',1752 'inputs': [],1753 'outputs': ['<(PRODUCT_DIR)/generated_193.h'],1754 'action': [1755 'touch',1756 '<(PRODUCT_DIR)/generated_193.h',1757 ],1758 },1759 {1760 'action_name': 'do_194',1761 'inputs': [],1762 'outputs': ['<(PRODUCT_DIR)/generated_194.h'],1763 'action': [1764 'touch',1765 '<(PRODUCT_DIR)/generated_194.h',1766 ],1767 },1768 {1769 'action_name': 'do_195',1770 'inputs': [],1771 'outputs': ['<(PRODUCT_DIR)/generated_195.h'],1772 'action': [1773 'touch',1774 '<(PRODUCT_DIR)/generated_195.h',1775 ],1776 },1777 {1778 'action_name': 'do_196',1779 'inputs': [],1780 'outputs': ['<(PRODUCT_DIR)/generated_196.h'],1781 'action': [1782 'touch',1783 '<(PRODUCT_DIR)/generated_196.h',1784 ],1785 },1786 {1787 'action_name': 'do_197',1788 'inputs': [],1789 'outputs': ['<(PRODUCT_DIR)/generated_197.h'],1790 'action': [1791 'touch',1792 '<(PRODUCT_DIR)/generated_197.h',1793 ],1794 },1795 {1796 'action_name': 'do_198',1797 'inputs': [],1798 'outputs': ['<(PRODUCT_DIR)/generated_198.h'],1799 'action': [1800 'touch',1801 '<(PRODUCT_DIR)/generated_198.h',1802 ],1803 },1804 {1805 'action_name': 'do_199',1806 'inputs': [],1807 'outputs': ['<(PRODUCT_DIR)/generated_199.h'],1808 'action': [1809 'touch',1810 '<(PRODUCT_DIR)/generated_199.h',1811 ],1812 },1813 ],1814 },1815 ],...
pinch_tester.js
Source:pinch_tester.js
...93 }94 });95 function testZoomOut() {96 pincher.reset();97 var t = new touch();98 // Make sure start event doesn't change state99 var oldState = pincher.status();100 t.addTouchPoint(100, 100);101 pincher.handleTouchStart(t.events());102 assertEqual(oldState, pincher.status());103 t.addTouchPoint(300, 300);104 pincher.handleTouchStart(t.events());105 assertEqual(oldState, pincher.status());106 // Make sure extra move event doesn't change state107 pincher.handleTouchMove(t.events());108 assertEqual(oldState, pincher.status());109 t.updateTouchPoint(0, 150, 150);110 t.updateTouchPoint(1, 250, 250);111 pincher.handleTouchMove(t.events());112 assertTrue(pincher.status().clampedScale < 0.9);113 // Make sure end event doesn't change state114 oldState = pincher.status();115 t.releaseTouchPoint(1);116 pincher.handleTouchEnd(t.events());117 assertEqual(oldState, pincher.status());118 t.releaseTouchPoint(0);119 pincher.handleTouchEnd(t.events());120 assertEqual(oldState, pincher.status());121 }122 function testZoomIn() {123 pincher.reset();124 var t = new touch();125 var oldState = pincher.status();126 t.addTouchPoint(150, 150);127 pincher.handleTouchStart(t.events());128 assertEqual(oldState, pincher.status());129 t.addTouchPoint(250, 250);130 pincher.handleTouchStart(t.events());131 assertEqual(oldState, pincher.status());132 t.updateTouchPoint(0, 100, 100);133 t.updateTouchPoint(1, 300, 300);134 pincher.handleTouchMove(t.events());135 assertTrue(pincher.status().clampedScale > 1.1);136 oldState = pincher.status();137 t.releaseTouchPoint(1);138 pincher.handleTouchEnd(t.events());139 assertEqual(oldState, pincher.status());140 t.releaseTouchPoint(0);141 pincher.handleTouchEnd(t.events());142 assertEqual(oldState, pincher.status());143 }144 function testZoomOutAndPan() {145 pincher.reset();146 var t = new touch();147 t.addTouchPoint(100, 100);148 pincher.handleTouchStart(t.events());149 t.addTouchPoint(300, 300);150 pincher.handleTouchStart(t.events());151 t.updateTouchPoint(0, 150, 150);152 t.updateTouchPoint(1, 250, 250);153 pincher.handleTouchMove(t.events());154 t.updateTouchPoint(0, 150, 150, 10, -5);155 t.updateTouchPoint(1, 250, 250, 10, -5);156 pincher.handleTouchMove(t.events());157 t.releaseTouchPoint(1);158 pincher.handleTouchEnd(t.events());159 t.releaseTouchPoint(0);160 pincher.handleTouchEnd(t.events());161 assertClose(pincher.status().shiftX, 10);162 assertClose(pincher.status().shiftY, -5);163 assertTrue(pincher.status().clampedScale < 0.9);164 }165 function testReversible() {166 pincher.reset();167 var t = new touch();168 t.addTouchPoint(100, 100);169 pincher.handleTouchStart(t.events());170 t.addTouchPoint(300, 300);171 pincher.handleTouchStart(t.events());172 t.updateTouchPoint(0, 0, 0);173 t.updateTouchPoint(1, 400, 400);174 pincher.handleTouchMove(t.events());175 t.releaseTouchPoint(1);176 pincher.handleTouchEnd(t.events());177 t.releaseTouchPoint(0);178 pincher.handleTouchEnd(t.events());179 t.addTouchPoint(0, 0);180 pincher.handleTouchStart(t.events());181 t.addTouchPoint(400, 400);182 pincher.handleTouchStart(t.events());183 t.updateTouchPoint(0, 100, 100);184 t.updateTouchPoint(1, 300, 300);185 pincher.handleTouchMove(t.events());186 t.releaseTouchPoint(1);187 pincher.handleTouchEnd(t.events());188 t.releaseTouchPoint(0);189 pincher.handleTouchEnd(t.events());190 assertClose(pincher.status().clampedScale, 1);191 }192 function testMultitouchZoomOut() {193 pincher.reset();194 var t = new touch();195 var oldState = pincher.status();196 t.addTouchPoint(100, 100);197 pincher.handleTouchStart(t.events());198 assertEqual(oldState, pincher.status());199 t.addTouchPoint(300, 300);200 pincher.handleTouchStart(t.events());201 assertEqual(oldState, pincher.status());202 t.addTouchPoint(100, 300);203 pincher.handleTouchStart(t.events());204 assertEqual(oldState, pincher.status());205 t.addTouchPoint(300, 100);206 pincher.handleTouchStart(t.events());207 assertEqual(oldState, pincher.status());208 // Multi-touch zoom out.209 t.updateTouchPoint(0, 150, 150);210 t.updateTouchPoint(1, 250, 250);211 t.updateTouchPoint(2, 150, 250);212 t.updateTouchPoint(3, 250, 150);213 pincher.handleTouchMove(t.events());214 oldState = pincher.status();215 t.releaseTouchPoint(3);216 pincher.handleTouchEnd(t.events());217 assertEqual(oldState, pincher.status());218 t.releaseTouchPoint(2);219 pincher.handleTouchEnd(t.events());220 assertEqual(oldState, pincher.status());221 t.releaseTouchPoint(1);222 pincher.handleTouchEnd(t.events());223 assertEqual(oldState, pincher.status());224 t.releaseTouchPoint(0);225 pincher.handleTouchEnd(t.events());226 assertEqual(oldState, pincher.status());227 assertTrue(pincher.status().clampedScale < 0.9);228 }229 function testZoomOutThenMulti() {230 pincher.reset();231 var t = new touch();232 var oldState = pincher.status();233 t.addTouchPoint(100, 100);234 pincher.handleTouchStart(t.events());235 assertEqual(oldState, pincher.status());236 t.addTouchPoint(300, 300);237 pincher.handleTouchStart(t.events());238 assertEqual(oldState, pincher.status());239 // Zoom out.240 t.updateTouchPoint(0, 150, 150);241 t.updateTouchPoint(1, 250, 250);242 pincher.handleTouchMove(t.events());243 assertTrue(pincher.status().clampedScale < 0.9);244 // Make sure adding and removing more point doesn't change state245 oldState = pincher.status();246 t.addTouchPoint(600, 600);247 pincher.handleTouchStart(t.events());248 assertEqual(oldState, pincher.status());249 t.releaseTouchPoint(2);250 pincher.handleTouchEnd(t.events());251 assertEqual(oldState, pincher.status());252 // More than two fingers.253 t.addTouchPoint(150, 250);254 pincher.handleTouchStart(t.events());255 t.addTouchPoint(250, 150);256 pincher.handleTouchStart(t.events());257 assertEqual(oldState, pincher.status());258 t.updateTouchPoint(0, 100, 100);259 t.updateTouchPoint(1, 300, 300);260 t.updateTouchPoint(2, 100, 300);261 t.updateTouchPoint(3, 300, 100);262 pincher.handleTouchMove(t.events());263 assertClose(pincher.status().scale, 1);264 oldState = pincher.status();265 t.releaseTouchPoint(3);266 t.releaseTouchPoint(2);267 t.releaseTouchPoint(1);268 t.releaseTouchPoint(0);269 pincher.handleTouchEnd(t.events());270 assertEqual(oldState, pincher.status());271 }272 function testCancel() {273 pincher.reset();274 var t = new touch();275 t.addTouchPoint(100, 100);276 pincher.handleTouchStart(t.events());277 t.addTouchPoint(300, 300);278 pincher.handleTouchStart(t.events());279 t.updateTouchPoint(0, 150, 150);280 t.updateTouchPoint(1, 250, 250);281 pincher.handleTouchMove(t.events());282 assertTrue(pincher.status().clampedScale < 0.9);283 var oldState = pincher.status();284 t.releaseTouchPoint(1);285 t.releaseTouchPoint(0);286 pincher.handleTouchCancel(t.events());287 assertEqual(oldState, pincher.status());288 t.addTouchPoint(150, 150);289 pincher.handleTouchStart(t.events());290 t.addTouchPoint(250, 250);291 pincher.handleTouchStart(t.events());292 t.updateTouchPoint(0, 100, 100);293 t.updateTouchPoint(1, 300, 300);294 pincher.handleTouchMove(t.events());295 assertClose(pincher.status().clampedScale, 1);296 }297 function testSingularity() {298 pincher.reset();299 var t = new touch();300 t.addTouchPoint(100, 100);301 pincher.handleTouchStart(t.events());302 t.addTouchPoint(100, 100);303 pincher.handleTouchStart(t.events());304 t.updateTouchPoint(0, 150, 150);305 t.updateTouchPoint(1, 50, 50);306 pincher.handleTouchMove(t.events());307 assertTrue(pincher.status().clampedScale > 1.1);308 assertTrue(pincher.status().clampedScale < 100);309 assertTrue(pincher.status().scale < 100);310 pincher.handleTouchCancel();311 }312 function testMinSpan() {313 pincher.reset();314 var t = new touch();315 t.addTouchPoint(50, 50);316 pincher.handleTouchStart(t.events());317 t.addTouchPoint(150, 150);318 pincher.handleTouchStart(t.events());319 t.updateTouchPoint(0, 100, 100);320 t.updateTouchPoint(1, 100, 100);321 pincher.handleTouchMove(t.events());322 assertTrue(pincher.status().clampedScale < 0.9);323 assertTrue(pincher.status().clampedScale > 0);324 assertTrue(pincher.status().scale > 0);325 pincher.handleTouchCancel();326 }327 function testFontScaling() {328 pincher.reset();329 useFontScaling(1.5);330 assertClose(pincher.status().clampedScale, 1.5);331 var t = new touch();332 // Start touch.333 var oldState = pincher.status();334 t.addTouchPoint(100, 100);335 pincher.handleTouchStart(t.events());336 t.addTouchPoint(300, 300);337 pincher.handleTouchStart(t.events());338 // Pinch to zoom out.339 t.updateTouchPoint(0, 150, 150);340 t.updateTouchPoint(1, 250, 250);341 pincher.handleTouchMove(t.events());342 // Verify scale is smaller.343 assertTrue(pincher.status().clampedScale < 0.9 * oldState.clampedScale);344 pincher.handleTouchCancel();345 useFontScaling(0.8);346 assertClose(pincher.status().clampedScale, 0.8);347 // Start touch.348 t = new touch();349 oldState = pincher.status();350 t.addTouchPoint(150, 150);351 pincher.handleTouchStart(t.events());352 t.addTouchPoint(250, 250);353 pincher.handleTouchStart(t.events());354 // Pinch to zoom in.355 t.updateTouchPoint(0, 100, 100);356 t.updateTouchPoint(1, 300, 300);357 pincher.handleTouchMove(t.events());358 // Verify scale is larger.359 assertTrue(pincher.status().clampedScale > 1.1 * oldState.clampedScale);360 pincher.handleTouchCancel();361 }362 return {...
touch-emulator.js
Source:touch-emulator.js
1(function(window, document, exportName, undefined) {2 "use strict";3 var isMultiTouch = false;4 var multiTouchStartPos;5 var eventTarget;6 var touchElements = {};7 // polyfills8 if(!document.createTouch) {9 document.createTouch = function(view, target, identifier, pageX, pageY, screenX, screenY, clientX, clientY) {10 // auto set11 if(clientX == undefined || clientY == undefined) {12 clientX = pageX - window.pageXOffset;13 clientY = pageY - window.pageYOffset;14 }15 return new Touch(target, identifier, {16 pageX: pageX,17 pageY: pageY,18 screenX: screenX,19 screenY: screenY,20 clientX: clientX,21 clientY: clientY22 });23 };24 }25 if(!document.createTouchList) {26 document.createTouchList = function() {27 var touchList = new TouchList();28 for (var i = 0; i < arguments.length; i++) {29 touchList[i] = arguments[i];30 }31 touchList.length = arguments.length;32 return touchList;33 };34 }35 /**36 * create an touch point37 * @constructor38 * @param target39 * @param identifier40 * @param pos41 * @param deltaX42 * @param deltaY43 * @returns {Object} touchPoint44 */45 function Touch(target, identifier, pos, deltaX, deltaY) {46 deltaX = deltaX || 0;47 deltaY = deltaY || 0;48 this.identifier = identifier;49 this.target = target;50 this.clientX = pos.clientX + deltaX;51 this.clientY = pos.clientY + deltaY;52 this.screenX = pos.screenX + deltaX;53 this.screenY = pos.screenY + deltaY;54 this.pageX = pos.pageX + deltaX;55 this.pageY = pos.pageY + deltaY;56 }57 /**58 * create empty touchlist with the methods59 * @constructor60 * @returns touchList61 */62 function TouchList() {63 var touchList = [];64 touchList.item = function(index) {65 return this[index] || null;66 };67 // specified by Mozilla68 touchList.identifiedTouch = function(id) {69 return this[id + 1] || null;70 };71 return touchList;72 }73 /**74 * Simple trick to fake touch event support75 * this is enough for most libraries like Modernizr and Hammer76 */77 function fakeTouchSupport() {78 var objs = [window, document.documentElement];79 var props = ['ontouchstart', 'ontouchmove', 'ontouchcancel', 'ontouchend'];80 for(var o=0; o<objs.length; o++) {81 for(var p=0; p<props.length; p++) {82 if(objs[o] && objs[o][props[p]] == undefined) {83 objs[o][props[p]] = null;84 }85 }86 }87 }88 /**89 * we don't have to emulate on a touch device90 * @returns {boolean}91 */92 function hasTouchSupport() {93 return ("ontouchstart" in window) || // touch events94 (window.Modernizr && window.Modernizr.touch) || // modernizr95 (navigator.msMaxTouchPoints || navigator.maxTouchPoints) > 2; // pointer events96 }97 /**98 * disable mouseevents on the page99 * @param ev100 */101 function preventMouseEvents(ev) {102 // 注éå¯ç¨é»è®¤äºä»¶103 // ev.preventDefault();104 // ev.stopPropagation();105 }106 /**107 * only trigger touches when the left mousebutton has been pressed108 * @param touchType109 * @returns {Function}110 */111 function onMouse(touchType) {112 return function(ev) {113 // prevent mouse events114 preventMouseEvents(ev);115 if (ev.which !== 1) {116 return;117 }118 // The EventTarget on which the touch point started when it was first placed on the surface,119 // even if the touch point has since moved outside the interactive area of that element.120 // also, when the target doesnt exist anymore, we update it121 if (ev.type == 'mousedown' || !eventTarget || (eventTarget && !eventTarget.dispatchEvent)) {122 eventTarget = ev.target;123 }124 // shiftKey has been lost, so trigger a touchend125 if (isMultiTouch && !ev.shiftKey) {126 triggerTouch('touchend', ev);127 isMultiTouch = false;128 }129 triggerTouch(touchType, ev);130 // we're entering the multi-touch mode!131 if (!isMultiTouch && ev.shiftKey) {132 isMultiTouch = true;133 multiTouchStartPos = {134 pageX: ev.pageX,135 pageY: ev.pageY,136 clientX: ev.clientX,137 clientY: ev.clientY,138 screenX: ev.screenX,139 screenY: ev.screenY140 };141 triggerTouch('touchstart', ev);142 }143 // reset144 if (ev.type == 'mouseup') {145 multiTouchStartPos = null;146 isMultiTouch = false;147 eventTarget = null;148 }149 }150 }151 /**152 * trigger a touch event153 * @param eventName154 * @param mouseEv155 */156 function triggerTouch(eventName, mouseEv) {157 var touchEvent = document.createEvent('Event');158 touchEvent.initEvent(eventName, true, true);159 touchEvent.altKey = mouseEv.altKey;160 touchEvent.ctrlKey = mouseEv.ctrlKey;161 touchEvent.metaKey = mouseEv.metaKey;162 touchEvent.shiftKey = mouseEv.shiftKey;163 touchEvent.touches = getActiveTouches(mouseEv, eventName);164 touchEvent.targetTouches = getActiveTouches(mouseEv, eventName);165 touchEvent.changedTouches = getChangedTouches(mouseEv, eventName);166 eventTarget.dispatchEvent(touchEvent);167 }168 /**169 * create a touchList based on the mouse event170 * @param mouseEv171 * @returns {TouchList}172 */173 function createTouchList(mouseEv) {174 var touchList = new TouchList();175 if (isMultiTouch) {176 var f = TouchEmulator.multiTouchOffset;177 var deltaX = multiTouchStartPos.pageX - mouseEv.pageX;178 var deltaY = multiTouchStartPos.pageY - mouseEv.pageY;179 touchList.push(new Touch(eventTarget, 1, multiTouchStartPos, (deltaX*-1) - f, (deltaY*-1) + f));180 touchList.push(new Touch(eventTarget, 2, multiTouchStartPos, deltaX+f, deltaY-f));181 } else {182 touchList.push(new Touch(eventTarget, 1, mouseEv, 0, 0));183 }184 return touchList;185 }186 /**187 * receive all active touches188 * @param mouseEv189 * @returns {TouchList}190 */191 function getActiveTouches(mouseEv, eventName) {192 // empty list193 if (mouseEv.type == 'mouseup') {194 return new TouchList();195 }196 var touchList = createTouchList(mouseEv);197 if(isMultiTouch && mouseEv.type != 'mouseup' && eventName == 'touchend') {198 touchList.splice(1, 1);199 }200 return touchList;201 }202 /**203 * receive a filtered set of touches with only the changed pointers204 * @param mouseEv205 * @param eventName206 * @returns {TouchList}207 */208 function getChangedTouches(mouseEv, eventName) {209 var touchList = createTouchList(mouseEv);210 // we only want to return the added/removed item on multitouch211 // which is the second pointer, so remove the first pointer from the touchList212 //213 // but when the mouseEv.type is mouseup, we want to send all touches because then214 // no new input will be possible215 if(isMultiTouch && mouseEv.type != 'mouseup' &&216 (eventName == 'touchstart' || eventName == 'touchend')) {217 touchList.splice(0, 1);218 }219 return touchList;220 }221 /**222 * show the touchpoints on the screen223 */224 function showTouches(ev) {225 var touch, i, el, styles;226 // first all visible touches227 for(i = 0; i < ev.touches.length; i++) {228 touch = ev.touches[i];229 el = touchElements[touch.identifier];230 if(!el) {231 el = touchElements[touch.identifier] = document.createElement("div");232 document.body.appendChild(el);233 }234 styles = TouchEmulator.template(touch);235 for(var prop in styles) {236 el.style[prop] = styles[prop];237 }238 }239 // remove all ended touches240 if(ev.type == 'touchend' || ev.type == 'touchcancel') {241 for(i = 0; i < ev.changedTouches.length; i++) {242 touch = ev.changedTouches[i];243 el = touchElements[touch.identifier];244 if(el) {245 el.parentNode.removeChild(el);246 delete touchElements[touch.identifier];247 }248 }249 }250 }251 /**252 * TouchEmulator initializer253 */254 function TouchEmulator() {255 if (hasTouchSupport()) {256 return;257 }258 fakeTouchSupport();259 window.addEventListener("mousedown", onMouse('touchstart'), true);260 window.addEventListener("mousemove", onMouse('touchmove'), true);261 window.addEventListener("mouseup", onMouse('touchend'), true);262 window.addEventListener("mouseenter", preventMouseEvents, true);263 window.addEventListener("mouseleave", preventMouseEvents, true);264 window.addEventListener("mouseout", preventMouseEvents, true);265 window.addEventListener("mouseover", preventMouseEvents, true);266 // it uses itself!267 window.addEventListener("touchstart", showTouches, true);268 window.addEventListener("touchmove", showTouches, true);269 window.addEventListener("touchend", showTouches, true);270 window.addEventListener("touchcancel", showTouches, true);271 }272 // start distance when entering the multitouch mode273 TouchEmulator.multiTouchOffset = 75;274 /**275 * css template for the touch rendering276 * @param touch277 * @returns object278 */279 TouchEmulator.template = function(touch) {280 var size = 0;281 var transform = 'translate('+ (touch.clientX-(size/2)) +'px, '+ (touch.clientY-(size/2)) +'px)';282 return {283 position: 'fixed',284 left: 0,285 top: 0,286 background: '#fff',287 border: 'solid 1px #999',288 opacity: .6,289 borderRadius: '100%',290 height: size + 'px',291 width: size + 'px',292 padding: 0,293 margin: 0,294 display: 'block',295 overflow: 'hidden',296 pointerEvents: 'none',297 webkitUserSelect: 'none',298 mozUserSelect: 'none',299 userSelect: 'none',300 webkitTransform: transform,301 mozTransform: transform,302 transform: transform,303 zIndex: 100304 }305 };306 // export307 if (typeof define == "function" && define.amd) {308 define(function() {309 return TouchEmulator;310 });311 } else if (typeof module != "undefined" && module.exports) {312 module.exports = TouchEmulator;313 } else {314 window[exportName] = TouchEmulator;315 }...
TouchInteractionSupport.js
Source:TouchInteractionSupport.js
1define([2 "dojo/_base/lang",3 "dojo/_base/declare",4 "dojo/_base/event",5 "dojo/_base/connect",6 "dojo/_base/window"7], function(lang,declare,event,connect,win){8 return declare("dojox.geo.charting.TouchInteractionSupport",null, {9 // summary:10 // A class to handle touch interactions on a dojox/geo/charting/Map component.11 // tags:12 // private13 _map: null,14 _centerTouchLocation: null,15 _touchMoveListener: null,16 _touchEndListener: null,17 _touchEndTapListener: null,18 _touchStartListener: null,19 _initialFingerSpacing: null,20 _initialScale: null,21 _tapCount: null,22 _tapThreshold: null,23 _lastTap: null,24 _doubleTapPerformed:false,25 _oneFingerTouch:false,26 _tapCancel:false,27 constructor: function(map){28 // summary:29 // Constructs a new _TouchInteractionSupport instance30 // map: dojox.geo.charting.Map31 // the Map widget this class provides touch navigation for.32 this._map = map;33 this._centerTouchLocation = {x: 0,y: 0};34 this._tapCount = 0;35 this._lastTap = {x: 0,y: 0};36 this._tapThreshold = 100; // square distance in pixels37 },38 connect: function(){39 // summary:40 // install touch listeners41 this._touchStartListener = this._map.surface.connect("touchstart", this, this._touchStartHandler);42 },43 disconnect: function(){44 // summary:45 // disconnects any installed listeners. Must be called only when disposing of this instance46 if(this._touchStartListener){47 connect.disconnect(this._touchStartListener);48 this._touchStartListener = null;49 }50 },51 _getTouchBarycenter: function(touchEvent){52 // summary:53 // returns the midpoint of the two first fingers (or the first finger location if only one)54 // touchEvent: TouchEvent55 // a touch event56 // returns:57 // the midpoint58 // tags:59 // private60 var touches = touchEvent.touches;61 var firstTouch = touches[0];62 var secondTouch = null;63 if(touches.length > 1){64 secondTouch = touches[1];65 }else{66 secondTouch = touches[0];67 }68 var containerBounds = this._map._getContainerBounds();69 var middleX = (firstTouch.pageX + secondTouch.pageX) / 2.0 - containerBounds.x;70 var middleY = (firstTouch.pageY + secondTouch.pageY) / 2.0 - containerBounds.y;71 return {x: middleX,y: middleY}; // dojox/gfx/Point72 },73 _getFingerSpacing: function(touchEvent){74 // summary:75 // computes the distance between the first two fingers76 // touchEvent: a touch event77 // returns:78 // a distance. -1 if less than 2 fingers79 // tags:80 // private81 var touches = touchEvent.touches;82 var spacing = -1;83 if(touches.length >= 2){84 var dx = (touches[1].pageX - touches[0].pageX);85 var dy = (touches[1].pageY - touches[0].pageY);86 spacing = Math.sqrt(dx*dx + dy*dy);87 }88 return spacing;89 },90 _isDoubleTap: function(touchEvent){91 // summary:92 // checks whether the specified touchStart event is a double tap93 // (i.e. follows closely a previous touchStart at approximately the same location)94 // touchEvent: TouchEvent95 // a touch event96 // returns:97 // true if this event is considered a double tap98 // tags:99 // private100 var isDoubleTap = false;101 var touches = touchEvent.touches;102 if((this._tapCount > 0) && touches.length == 1){103 // test distance from last tap104 var dx = (touches[0].pageX - this._lastTap.x);105 var dy = (touches[0].pageY - this._lastTap.y);106 var distance = dx*dx + dy*dy;107 if(distance < this._tapThreshold){108 isDoubleTap = true;109 }else{110 this._tapCount = 0;111 }112 }113 this._tapCount++;114 this._lastTap.x = touches[0].pageX;115 this._lastTap.y = touches[0].pageY;116 setTimeout(lang.hitch(this,function(){117 this._tapCount = 0;}),300);118 return isDoubleTap;119 },120 _doubleTapHandler: function(touchEvent){121 // summary:122 // action performed on the map when a double tap was triggered123 // touchEvent: TouchEvent124 // a touch event125 // tags:126 // private127 var feature = this._getFeatureFromTouchEvent(touchEvent);128 if(feature){129 this._map.fitToMapArea(feature._bbox, 15, true);130 }else{131 // perform a basic 2x zoom on touch132 var touches = touchEvent.touches;133 var containerBounds = this._map._getContainerBounds();134 var offX = touches[0].pageX - containerBounds.x;135 var offY = touches[0].pageY - containerBounds.y;136 // clicked map point before zooming137 var mapPoint = this._map.screenCoordsToMapCoords(offX,offY);138 // zoom increment power139 this._map.setMapCenterAndScale(mapPoint.x, mapPoint.y,this._map.getMapScale()*2,true);140 }141 },142 _getFeatureFromTouchEvent: function(touchEvent){143 // summary:144 // utility function to return the feature located at this touch event location145 // touchEvent: TouchEvent146 // a touch event147 // returns:148 // the feature found if any, null otherwise.149 // tags:150 // private151 var feature = null;152 if(touchEvent.gfxTarget && touchEvent.gfxTarget.getParent){153 feature = this._map.mapObj.features[touchEvent.gfxTarget.getParent().id];154 }155 return feature; // dojox/geo/charting/Feature156 },157 _touchStartHandler: function(touchEvent){158 // summary:159 // action performed on the map when a touch start was triggered160 // touchEvent: TouchEvent161 // a touch event162 // tags:163 // private164 event.stop(touchEvent);165 this._oneFingerTouch = (touchEvent.touches.length == 1);166 this._tapCancel = !this._oneFingerTouch;167 // test double tap168 this._doubleTapPerformed = false;169 if(this._isDoubleTap(touchEvent)){170 //console.log("double tap recognized");171 this._doubleTapHandler(touchEvent);172 this._doubleTapPerformed = true;173 return;174 }175 // compute map midpoint between fingers176 var middlePoint = this._getTouchBarycenter(touchEvent);177 var mapPoint = this._map.screenCoordsToMapCoords(middlePoint.x,middlePoint.y);178 this._centerTouchLocation.x = mapPoint.x;179 this._centerTouchLocation.y = mapPoint.y;180 // store initial finger spacing to compute zoom later181 this._initialFingerSpacing = this._getFingerSpacing(touchEvent);182 // store initial map scale183 this._initialScale = this._map.getMapScale();184 // install touch move and up listeners (if not done by other fingers before)185 if(!this._touchMoveListener){186 this._touchMoveListener = connect.connect(win.global,"touchmove",this,this._touchMoveHandler);187 }188 if(!this._touchEndTapListener){189 this._touchEndTapListener = this._map.surface.connect("touchend", this, this._touchEndTapHandler);190 }191 if(!this._touchEndListener){192 this._touchEndListener = connect.connect(win.global,"touchend",this, this._touchEndHandler);193 }194 },195 _touchEndTapHandler: function(touchEvent){196 // summary:197 // action performed on the map when a tap was triggered198 // touchEvent: TouchEvent199 // a touch event200 // tags:201 // private202 var touches = touchEvent.touches;203 if(touches.length == 0){204 // test potential tap ?205 if(this._oneFingerTouch && !this._tapCancel){206 this._oneFingerTouch = false;207 setTimeout(lang.hitch(this,function(){208 // wait to check if double tap209 // perform test for single tap210 //console.log("double tap was performed ? " + this._doubleTapPerformed);211 if(!this._doubleTapPerformed){212 // test distance from last tap213 var dx = (touchEvent.changedTouches[0].pageX - this._lastTap.x);214 var dy = (touchEvent.changedTouches[0].pageY - this._lastTap.y);215 var distance = dx*dx + dy*dy;216 if(distance < this._tapThreshold){217 // single tap ok218 this._singleTapHandler(touchEvent);219 }220 }221 }), 350);222 }223 this._tapCancel = false;224 }225 },226 _touchEndHandler: function(touchEvent){227 // summary:228 // action performed on the map when a touch end was triggered229 // touchEvent: TouchEvent230 // a touch event231 // tags:232 // private233 event.stop(touchEvent);234 var touches = touchEvent.touches;235 if(touches.length == 0){236 // disconnect listeners only when all fingers are up237 if(this._touchMoveListener){238 connect.disconnect(this._touchMoveListener);239 this._touchMoveListener = null;240 }241 if(this._touchEndListener){242 connect.disconnect(this._touchEndListener);243 this._touchEndListener = null;244 }245 }else{246 // recompute touch center247 var middlePoint = this._getTouchBarycenter(touchEvent);248 var mapPoint = this._map.screenCoordsToMapCoords(middlePoint.x,middlePoint.y);249 this._centerTouchLocation.x = mapPoint.x;250 this._centerTouchLocation.y = mapPoint.y;251 }252 },253 _singleTapHandler: function(touchEvent){254 // summary:255 // action performed on the map when a single tap was triggered256 // touchEvent: TouchEvent257 // a touch event258 // tags:259 // private260 var feature = this._getFeatureFromTouchEvent(touchEvent);261 if(feature){262 // call feature handler263 feature._onclickHandler(touchEvent);264 }else{265 // unselect all266 for(var name in this._map.mapObj.features){267 this._map.mapObj.features[name].select(false);268 }269 this._map.onFeatureClick(null);270 }271 },272 _touchMoveHandler: function(touchEvent){273 // summary:274 // action performed on the map when a touch move was triggered275 // touchEvent: TouchEvent276 // a touch event277 // tags:278 // private279 // prevent browser interaction280 event.stop(touchEvent);281 // cancel tap if moved too far from first touch location282 if(!this._tapCancel){283 var dx = (touchEvent.touches[0].pageX - this._lastTap.x),284 dy = (touchEvent.touches[0].pageY - this._lastTap.y);285 var distance = dx*dx + dy*dy;286 if(distance > this._tapThreshold){287 this._tapCancel = true;288 }289 }290 var middlePoint = this._getTouchBarycenter(touchEvent);291 // compute map offset292 var mapPoint = this._map.screenCoordsToMapCoords(middlePoint.x,middlePoint.y),293 mapOffsetX = mapPoint.x - this._centerTouchLocation.x,294 mapOffsetY = mapPoint.y - this._centerTouchLocation.y;295 // compute scale factor296 var scaleFactor = 1;297 var touches = touchEvent.touches;298 if(touches.length >= 2){299 var fingerSpacing = this._getFingerSpacing(touchEvent);300 scaleFactor = fingerSpacing / this._initialFingerSpacing;301 // scale map302 this._map.setMapScale(this._initialScale*scaleFactor);303 }304 // adjust map center on barycentre305 var currentMapCenter = this._map.getMapCenter();306 this._map.setMapCenter(currentMapCenter.x - mapOffsetX, currentMapCenter.y - mapOffsetY);307 }308 });...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!