source: trunk/EventBenchConsole/rules/rules.xml @ 418

Last change on this file since 418 was 416, checked in by sherbold, 13 years ago
  • updated rules xml: type of key pressed is now ignored. This is helpful for usage evaluations.
  • updated rules.xml: added further fall-back rules that were missing: clicks where the target changed and clicks were one part of the click was in the non-client area (e.g., WM_NCLBUTTONDOWN) and the other in the client area (e.g., WM_LBUTTONUP) of the application.
File size: 29.0 KB
RevLine 
[1]1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE rules SYSTEM "ruleDoctype.dtd">
3<rules xmlns="ul:rules" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ul:rules ruleSchema.xsd">
4
5  <!-- rules regarding mouse clicks -->
[62]6  <rule name="LeftClickButton">
7    <msg type="&WM_LBUTTONDOWN;">
8      <store var="clicked"/>
9    </msg>
10    <msg type="&WM_LBUTTONUP;">
11      <equals>
12        <constValue value="Button"/>
13        <winInfoValue obj="this" winParam="class"/>
14      </equals>
15      <equals>
16        <paramValue obj="clicked" param="window.hwnd"/>
17        <paramValue obj="this" param="window.hwnd"/>
18      </equals>
19    </msg>
[152]20    <genMsg delay="500">
[62]21      <type>
22        <constValue value="&BM_CLICK;"/>
23      </type>
24      <target>
25        <msgInfoValue obj="clicked" msgParam="target"/>
26      </target>
27    </genMsg>
28  </rule>
[1]29
[35]30  <rule name="LeftClickListBox">
31    <msg type="&WM_LBUTTONDOWN;">
32      <equals>
33        <winInfoValue obj="this" winParam="class"/>
34        <constValue value="ListBox"/>
35      </equals>
36      <store var="clicked"/>
37    </msg>
38    <msg type="&WM_LBUTTONUP;">
39      <equals>
40        <paramValue obj="this" param="window.hwnd"/>
41        <paramValue obj="clicked" param="window.hwnd"/>
42      </equals>
43      <store var="up"/>
44    </msg>
[152]45    <genMsg delay="500">
[35]46      <type>
47        <constValue value="&LB_SETCURSEL;"/>
48      </type>
49      <target>
50        <msgInfoValue obj="clicked" msgParam="target"/>
51      </target>
52      <WPARAM>
53        <paramValue obj="up" param="scrollPos"/>
54      </WPARAM>
55    </genMsg>
56  </rule>
[37]57
[59]58  <rule name="TabChange">
[37]59    <msg type="&WM_LBUTTONDOWN;">
60      <equals>
61        <constValue value="SysTabControl32"/>
62        <winInfoValue obj="this" winParam="class"/>
63      </equals>
64      <store var="clicked"/>
65    </msg>
66    <msg type="&WM_LBUTTONUP;">
67      <equals>
68        <paramValue obj="this" param="window.hwnd"/>
69        <paramValue obj="clicked" param="window.hwnd"/>
70      </equals>
71      <store var="up"/>
72    </msg>
[141]73    <!-- tab change message for Tab Controls-->
[152]74    <genMsg delay="100">
[37]75      <type>
76        <constValue value="&TCM_SETCURSEL;"/>
77      </type>
78      <target>
79        <msgInfoValue obj="up" msgParam="target"/>
80      </target>
81      <WPARAM>
82        <paramValue obj="up" param="scrollPos"/>
83      </WPARAM>
84    </genMsg>
[141]85    <!-- tab change message for Property Pages-->
[152]86    <genMsg delay="500">
[141]87      <type>
88        <constValue value="1125"/>
89      </type>
90      <target>
91        <winInfoValue obj="up" winParam="parentTarget"/>
92      </target>
93      <WPARAM>
94        <paramValue obj="up" param="scrollPos"/>
95      </WPARAM>
96    </genMsg>
[37]97  </rule>
[35]98
[152]99<!--
[1]100  <rule name="ComboBox">
101    <msg type="&WM_LBUTTONDOWN;">
102      <equals>
103        <winInfoValue obj="this" winParam="class"/>
104        <constValue value="ComboBox"/>
105      </equals>
106      <store var="clicked"/>
107    </msg>
108    <msg type="&WM_COMMAND;">
109      <equals>
110        <paramValue obj="this" param="window.hwnd"/>
111        <paramValue obj="clicked" param="window.hwnd"/>
112      </equals>
113      <store var="cmd1">
114        <resolveHwnd param="source" storeParam="sourceDesc"/>
115      </store>
116    </msg>
117    <msg type="&WM_COMMAND;" multiple="true">
118      <equals>
119        <paramValue obj="this" param="source"/>
120        <paramValue obj="clicked" param="window.hwnd"/>
121      </equals>
122      <storeSeq varSeq="cmds">
123        <resolveHwnd param="window.hwnd" storeParam="msgTarget"/>
124        <resolveHwnd param="source" storeParam="sourceDesc"/>
125      </storeSeq>
126    </msg>
127    <msg type="&WM_LBUTTONUP;">
128      <equals>
129        <paramValue obj="this" param="window.hwnd"/>
130        <paramValue obj="clicked" param="window.hwnd"/>
131      </equals>
132    </msg>
133    <genMsg delay="100">
134      <type>
135        <constValue value="&WM_SETFOCUS;"/>
136      </type>
137      <target>
138        <msgInfoValue obj="clicked" msgParam="target"/>
139      </target>
140    </genMsg>
[152]141    <genMsg delay="500">
[1]142      <type>
143        <constValue value="&CB_SHOWDROPDOWN;"/>
144      </type>
145      <target>
146        <msgInfoValue obj="clicked" msgParam="target"/>
147      </target>
148      <WPARAM>
149        <constValue value="1"/>
150      </WPARAM>
151    </genMsg>
[153]152    <!-
[1]153    <genMsg delay="100">
154      <type>
155        <constValue value="273"/>
156      </type>
157      <target>
158        <msgInfoValue obj="cmd1" msgParam="target"/>
159      </target>
160      <LPARAM>
161        <paramValue obj="cmd1" param="sourceDesc"/>
162      </LPARAM>
163      <WPARAM>
164        <paramValue obj="cmd1" param="WPARAM"/>
165      </WPARAM>
166    </genMsg>
167    <genMsgSeq delay="50">
168      <type>
169        <constValue value="273"/>
170      </type>
171      <target>
172        <seqValue seqObj="cmds" param="msgTarget"/>
173      </target>
174      <LPARAM>
175        <seqValue seqObj="cmds" param ="sourceDesc"/>
176      </LPARAM>
177      <WPARAM>
178        <seqValue seqObj="cmds" param="WPARAM"/>
179      </WPARAM>
[152]180    </genMsgSeq>->
[1]181  </rule>
[152]182  <rule name="ComboLBox">
183    <msg type="&WM_LBUTTONDOWN;">
184      <equals>
185        <winInfoValue obj="this" winParam="class"/>
186        <constValue value="ComboLBox"/>
187      </equals>
188      <store var="clicked"/>
189    </msg>
190    <msg type="&WM_COMMAND;">
191      <equals>
192        <paramValue obj="this" param="window.hwnd"/>
193        <paramValue obj="clicked" param="window.hwnd"/>
194      </equals>
195      <store var="cmd1">
196        <resolveHwnd param="source" storeParam="sourceDesc"/>
197      </store>
198    </msg>
199    <msg type="&WM_COMMAND;" multiple="true">
200      <equals>
201        <paramValue obj="this" param="source"/>
202        <paramValue obj="clicked" param="window.hwnd"/>
203      </equals>
204      <storeSeq varSeq="cmds">
205        <resolveHwnd param="window.hwnd" storeParam="msgTarget"/>
206        <resolveHwnd param="source" storeParam="sourceDesc"/>
207      </storeSeq>
208    </msg>
209    <msg type="&WM_LBUTTONUP;">
210      <equals>
211        <paramValue obj="this" param="window.hwnd"/>
212        <paramValue obj="clicked" param="window.hwnd"/>
213      </equals>
214    </msg>
215    <genMsg delay="100">
216      <type>
217        <constValue value="&WM_SETFOCUS;"/>
218      </type>
219      <target>
220        <msgInfoValue obj="clicked" msgParam="target"/>
221      </target>
222    </genMsg>
223    <genMsg delay="500">
224      <type>
225        <constValue value="&CB_SHOWDROPDOWN;"/>
226      </type>
227      <target>
228        <msgInfoValue obj="clicked" msgParam="target"/>
229      </target>
230      <WPARAM>
231        <constValue value="1"/>
232      </WPARAM>
233    </genMsg>
234  </rule>
[1]235 
[152]236  <rule name="LeftClickCommandComboLBox">
237    <msg type="&WM_LBUTTONDOWN;">
238      <equals>
239        <constValue value="ComboLBox"/>
240        <winInfoValue obj="this" winParam="class"/>
241      </equals>
242      <store var="clicked"/>
243    </msg>
244    <msg type="&WM_LBUTTONUP;">
245      <equals>
246        <paramValue obj="clicked" param="window.hwnd"/>
247        <paramValue obj="this" param="window.hwnd"/>
248      </equals>
249      <store var="up"/>
250    </msg>
251    <msg type="&WM_COMMAND;">
252      <equals>
253        <paramValue obj="clicked" param="window.hwnd"/>
254        <paramValue obj="this" param="source"/>
255      </equals>
256      <store var="cmd1">
257        <resolveHwnd param="source" storeParam="sourceDesc"/>
258      </store>
259    </msg>
260    <msg type="&WM_COMMAND;" multiple="true">
261      <equals>
262        <paramValue obj="this" param="source"/>
263        <paramValue obj="cmd1" param="window.hwnd"/>
264      </equals>
265      <storeSeq varSeq="cmds">
266        <resolveHwnd param="window.hwnd" storeParam="target"/>
267        <resolveHwnd param="source" storeParam="sourceDesc"/>
268      </storeSeq>
269    </msg>
270    <genMsg delay="100">
271      <type>
272        <constValue value="&CB_SETCURSEL;"/>
273      </type>
274      <target>
275        <msgInfoValue obj="up" msgParam="target"/>
276      </target>
277      <WPARAM>
278        <constValue value="1"/>
[153]279        <!-<paramValue obj="up" param="scrollPos"/>->
[152]280      </WPARAM>
281    </genMsg>
282    <genMsg delay="100">
283      <type>
284        <constValue value="&CB_SHOWDROPDOWN;"/>
285      </type>
286      <target>
287        <winInfoValue obj="clicked" winParam="parentTarget"/>
288      </target>
289      <WPARAM>
290        <constValue value="0"/>
291      </WPARAM>
292    </genMsg>
293    <genMsg delay="100">
294      <type>
295        <constValue value="&WM_COMMAND;"/>
296      </type>
297      <target>
298        <winInfoValue obj="cmd1" winParam="parentTarget"/>
299      </target>
300      <LPARAM>
301        <paramValue obj="cmd1" param="sourceDesc"/>
302      </LPARAM>
303      <WPARAM>
304        <paramValue obj="cmd1" param="WPARAM"/>
305      </WPARAM>
306    </genMsg>
307    <genMsgSeq delay="100">
308      <type>
309        <constValue value="&WM_COMMAND;"/>
310      </type>
311      <target>
312        <seqValue seqObj="cmds" param="target"/>
313      </target>
314      <LPARAM>
315        <seqValue seqObj="cmds" param="sourceDesc"/>
316      </LPARAM>
317      <WPARAM>
318        <seqValue seqObj="cmds" param="WPARAM"/>
319      </WPARAM>
320    </genMsgSeq>
321  </rule>-->
322
[1]323  <rule name="LeftClickCommand">
324    <msg type="&WM_LBUTTONDOWN;">
325      <store var="clicked"/>
326    </msg>
327    <msg type="&WM_LBUTTONUP;">
328      <equals>
329        <paramValue obj="clicked" param="window.hwnd"/>
330        <paramValue obj="this" param="window.hwnd"/>
331      </equals>
332    </msg>
333    <msg type="&WM_COMMAND;">
334      <equals>
335        <paramValue obj="clicked" param="window.hwnd"/>
336        <paramValue obj="this" param="source"/>
337      </equals>
338      <store var="cmd">
339        <resolveHwnd param="source" storeParam="sourceDesc"/>
340      </store>
341    </msg>
[152]342    <genMsg delay="500">
[1]343      <type>
344        <msgInfoValue obj="cmd" msgParam="type"/>
345      </type>
346      <target>
347        <msgInfoValue obj="cmd" msgParam="target"/>
348      </target>
349      <LPARAM>
350        <paramValue obj="cmd" param="sourceDesc"/>
351      </LPARAM>
352      <WPARAM>
353        <paramValue obj="cmd" param="WPARAM"/>
354      </WPARAM>
355    </genMsg>
356  </rule>
357
358  <rule name="LeftClickSysCommand">
359    <msg type="&WM_LBUTTONDOWN;">
360      <store var="clicked"/>
361    </msg>
362    <msg type="&WM_LBUTTONUP;">
363      <equals>
364        <paramValue obj="clicked" param="window.hwnd"/>
365        <paramValue obj="this" param="window.hwnd"/>
366      </equals>
367    </msg>
368    <msg type="&WM_SYSCOMMAND;">
369      <store var="cmd"/>
370    </msg>
[152]371    <genMsg delay="500">
[1]372      <storedVar obj="cmd"/>
373    </genMsg>
374  </rule>
375
376  <rule name="NCLeftClickSysCommand">
377    <msg type="&WM_NCLBUTTONDOWN;">
378      <store var="clicked"/>
379    </msg>
380    <msg type="&WM_LBUTTONUP;">
381      <equals>
382        <paramValue obj="clicked" param="window.hwnd"/>
383        <paramValue obj="this" param="window.hwnd"/>
384      </equals>
385    </msg>
386    <msg type="&WM_SYSCOMMAND;">
387      <equals>
388        <paramValue obj="clicked" param="window.hwnd"/>
389        <paramValue obj="this" param="window.hwnd"/>
390      </equals>
391      <store var="cmd"/>
392    </msg>
[152]393    <genMsg delay="500">
[1]394      <storedVar obj="cmd"/>
395    </genMsg>
396  </rule>
397
398  <rule name="LeftClickMenuItemCmd">
399    <msg type="&WM_LBUTTONDOWN;">
400      <store var="clicked"/>
401    </msg>
402    <msg type="&WM_LBUTTONUP;">
403      <equals>
404        <paramValue obj="clicked" param="window.hwnd"/>
405        <paramValue obj="this" param="window.hwnd"/>
406      </equals>
407    </msg>
408    <msg type="&WM_MENUSELECT;">
409      <equals>
410        <paramValue obj="clicked" param="window.hwnd"/>
411        <paramValue obj="this" param="window.hwnd"/>
412      </equals>
413    </msg>
414    <msg type="&WM_COMMAND;">
415      <equals>
416        <paramValue obj="this" param="sourceType"/>
417        <constValue value="0"/>
418      </equals>
419      <store var="cmd"/>
420    </msg>
[152]421    <genMsg delay="500">
[1]422      <storedVar obj="cmd"/>
423    </genMsg>
424  </rule>
425
426 
427  <!-- rules involving mouse movement -->
[46]428  <rule name="HScroll_TrackBar">
[1]429    <msg type="&WM_LBUTTONDOWN;">
[46]430      <equals>
431        <winInfoValue obj="this" winParam="class"/>
432        <constValue value="msctls_trackbar32"/>
433      </equals>
[1]434      <store var="clicked"/>
435    </msg>
436    <msg type="&WM_HSCROLL;" multiple="true">
437      <equals>
438        <paramValue obj="this" param="scrollBarHandle"/>
439        <paramValue obj="clicked" param="window.hwnd"/>
440      </equals>
441      <storeSeq varSeq="scrolls">
442        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
443      </storeSeq>
[46]444    </msg>   
445    <msg type="&WM_LBUTTONUP;">
446      <equals>
447        <paramValue obj="this" param="window.hwnd"/>
448        <paramValue obj="clicked" param="window.hwnd"/>
449      </equals>
[1]450    </msg>
[152]451    <genMsgSeq delay="50">
[46]452      <type>
453        <constValue value="&TBM_SETPOS;"/>
454      </type>
455      <target>
456        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
457      </target>
458      <LPARAM>
459        <seqValue seqObj="scrolls" param="scrollPos"/>
460      </LPARAM>
461      <WPARAM>
462        <constValue value="1"/>
463      </WPARAM>
464    </genMsgSeq>
465  </rule>
466
467
468  <rule name="VScroll_TrackBar">
469    <msg type="&WM_LBUTTONDOWN;">
470      <equals>
471        <winInfoValue obj="this" winParam="class"/>
472        <constValue value="msctls_trackbar32"/>
473      </equals>
474      <store var="clicked"/>
475    </msg>
476    <msg type="&WM_VSCROLL;" multiple="true">
477      <equals>
478        <paramValue obj="this" param="scrollBarHandle"/>
479        <paramValue obj="clicked" param="window.hwnd"/>
480      </equals>
481      <storeSeq varSeq="scrolls">
482        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
483      </storeSeq>
484    </msg>
[1]485    <msg type="&WM_LBUTTONUP;">
486      <equals>
[37]487        <paramValue obj="this" param="window.hwnd"/>
[1]488        <paramValue obj="clicked" param="window.hwnd"/>
489      </equals>
490    </msg>
[152]491    <genMsgSeq delay="50">
[1]492      <type>
493        <constValue value="&TBM_SETPOS;"/>
494      </type>
495      <target>
496        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
497      </target>
498      <LPARAM>
[37]499        <seqValue seqObj="scrolls" param="scrollPos"/>
[1]500      </LPARAM>
501      <WPARAM>
[37]502        <constValue value="1"/>
[1]503      </WPARAM>
504    </genMsgSeq>
505  </rule>
[35]506
[46]507
508  <rule name="HScroll_ScrollBar">
509    <msg type="&WM_LBUTTONDOWN;">
510      <equals>
511        <winInfoValue obj="this" winParam="class"/>
512        <constValue value="ScrollBar"/>
513      </equals>
514      <store var="clicked"/>
515    </msg>
516    <msg type="&WM_HSCROLL;" multiple="true">
517      <equals>
518        <paramValue obj="this" param="scrollBarHandle"/>
519        <paramValue obj="clicked" param="window.hwnd"/>
520      </equals>
521      <storeSeq varSeq="scrolls">
522        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
523      </storeSeq>
524    </msg>
525    <msg type="&WM_LBUTTONUP;">
526      <equals>
527        <paramValue obj="this" param="window.hwnd"/>
528        <paramValue obj="clicked" param="window.hwnd"/>
529      </equals>
530    </msg>
[152]531    <genMsgSeq delay="50">
[46]532      <type>
533        <constValue value="&SBM_SETPOS;"/>
534      </type>
535      <target>
536        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
537      </target>
538      <LPARAM>
539        <constValue value="1"/>
540      </LPARAM>
541      <WPARAM>
542        <seqValue seqObj="scrolls" param="scrollPos"/>
543      </WPARAM>
544    </genMsgSeq>
545  </rule>
546
547
548  <rule name="VScroll_ScrollBar">
549    <msg type="&WM_LBUTTONDOWN;">
550      <equals>
551        <winInfoValue obj="this" winParam="class"/>
552        <constValue value="ScrollBar"/>
553      </equals>
554      <store var="clicked"/>
555    </msg>
556    <msg type="&WM_VSCROLL;" multiple="true">
557      <equals>
558        <paramValue obj="this" param="scrollBarHandle"/>
559        <paramValue obj="clicked" param="window.hwnd"/>
560      </equals>
561      <storeSeq varSeq="scrolls">
562        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
563      </storeSeq>
564    </msg>
565    <msg type="&WM_LBUTTONUP;">
566      <equals>
567        <paramValue obj="this" param="window.hwnd"/>
568        <paramValue obj="clicked" param="window.hwnd"/>
569      </equals>
570    </msg>
[152]571    <genMsgSeq delay="50">
[46]572      <type>
573        <constValue value="&SBM_SETPOS;"/>
574      </type>
575      <target>
576        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
577      </target>
578      <LPARAM>
579        <constValue value="1"/>
580      </LPARAM>
581      <WPARAM>
582        <seqValue seqObj="scrolls" param="scrollPos"/>
583      </WPARAM>
584    </genMsgSeq>
585  </rule>
[37]586 
[62]587  <!-- Does not work correctly, if a scrollbar has no handle of its own, e.g., a standard scrollbar of a listbox -->
[46]588  <rule name="VScrollNC">
589    <msg type="&WM_NCLBUTTONDOWN;">
590      <store var="clicked"/>
591    </msg>
592    <msg type="&WM_VSCROLL;">
593      <equals>
594        <paramValue obj="this" param="window.hwnd"/>
595        <paramValue obj="clicked" param="window.hwnd"/>
596      </equals>
597      <store var="scrolls"/>
598    </msg>
[152]599    <genMsg delay="50">
[46]600      <type>
601        <constValue value="&WM_VSCROLL;"/>
602      </type>
603      <target>
604        <msgInfoValue obj="clicked" msgParam="target"/>
605      </target>
606      <WPARAM>
607        <LOWORD>
608          <constValue value="4"/>
609        </LOWORD>
610        <HIWORD>
611          <paramValue obj="scrolls" param="scrollPos"/>
612        </HIWORD>
613      </WPARAM>
614    </genMsg>
615  </rule>
616
617
618  <!--<rule name="VScrollNC">
619    <msg type="&WM_NCLBUTTONDOWN;">
620      <store var="clicked"/>
621    </msg>
622    <msg type="&WM_VSCROLL;" multiple="true">
623      <equals>
624        <paramValue obj="this" param="window.hwnd"/>
625        <paramValue obj="clicked" param="window.hwnd"/>
626      </equals>
627      <storeSeq varSeq="scrolls">
628        <resolveHwnd param="window.hwnd" storeParam="scrollBarTarget"/>
629      </storeSeq>
630    </msg>
631    <genMsgSeq delay="20">
632      <type>
633        <constValue value="&WM_VSCROLL;"/>
634      </type>
635      <target>
636        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
637      </target>
638      <WPARAM>
639        <LOWORD>
640          <constValue value="4"/>
641        </LOWORD>
642        <HIWORD>
643          <paramValue obj="scrolls" param="scrollPos"/>
644        </HIWORD>
645      </WPARAM>
646    </genMsgSeq>
647  </rule>-->
648
[62]649  <!-- Copy of set focus without kill-focus -->
[50]650  <rule name="LeftClickSetFocus">
651    <msg type="&WM_LBUTTONDOWN;">
652      <equals>
653        <winInfoValue obj="this" winParam="class"/>
654        <constValue value="Edit"/>
655      </equals>
656      <store var="clicked"/>
657    </msg>
658    <msg type="&WM_SETFOCUS;">
659      <store var="setfocus"/>
660    </msg>
661    <msg type="&WM_COMMAND;">
662      <equals>
663        <paramValue obj="this" param="source"/>
664        <paramValue obj="clicked" param="window.hwnd"/>
665      </equals>
666      <equals>
667        <paramValue obj="this" param="sourceType"/>
668        <constValue value="256"/>
669      </equals>
670      <store var="cmd"/>
671    </msg>
672    <msg type="&WM_LBUTTONUP;">
673      <equals>
674        <paramValue obj="this" param="window.hwnd"/>
675        <paramValue obj="clicked" param="window.hwnd"/>
676      </equals>
677    </msg>
678    <genMsg delay="20">
679      <type>
680        <constValue value="&WM_SETFOCUS;"/>
681      </type>
682      <target>
683        <msgInfoValue obj="setfocus" msgParam="target"/>
684      </target>
685      <WPARAM>
686        <constValue value="0"/>
687      </WPARAM>
688    </genMsg>
[152]689    <genMsg delay="500">
[50]690      <type>
691        <constValue value="&WM_COMMAND;"/>
692      </type>
693      <target>
694        <msgInfoValue obj="cmd" msgParam="target"/>
695      </target>
696      <LPARAM>
697        <msgInfoValue obj="setfocus" msgParam="target"/>
698      </LPARAM>
699      <WPARAM>
700        <paramValue obj="cmd" param="WPARAM"/>
701      </WPARAM>
702    </genMsg>
703  </rule>
[46]704 
[62]705  <!-- Works only partially! -->
[1]706  <rule name="LeftClickChangeFocus">
707    <msg type="&WM_LBUTTONDOWN;">
708      <equals>
709        <winInfoValue obj="this" winParam="class"/>
710        <constValue value="Edit"/>
711      </equals>
712      <store var="clicked"/>
713    </msg>
714    <msg type="&WM_KILLFOCUS;">
715      <store var="killfocus"/>
716    </msg>
717    <msg type="&WM_SETFOCUS;">
718      <equals>
719        <paramValue obj="this" param="WPARAM"/>
720        <paramValue obj="killfocus" param="window.hwnd"/>
721      </equals>
722      <store var="setfocus"/>
723    </msg>
724    <msg type="&WM_COMMAND;">
725      <equals>
726        <paramValue obj="this" param="source"/>
727        <paramValue obj="clicked" param="window.hwnd"/>
728      </equals>
729      <equals>
730        <paramValue obj="this" param="sourceType"/>
731        <constValue value="256"/>
732      </equals>
733      <store var="cmd"/>
734    </msg>
735    <msg type="&WM_LBUTTONUP;">
736      <equals>
737        <paramValue obj="this" param="window.hwnd"/>
738        <paramValue obj="clicked" param="window.hwnd"/>
739      </equals>
740    </msg>
[152]741    <genMsg delay="100">
[1]742      <type>
743        <constValue value="&WM_KILLFOCUS;"/>
744      </type>
745      <target>
746        <msgInfoValue obj="killfocus" msgParam="target"/>
747      </target>
748      <WPARAM>
749        <msgInfoValue obj="setfocus" msgParam="target"/>
750      </WPARAM>
751    </genMsg>
[152]752    <genMsg delay="100">
[1]753      <type>
754        <constValue value="&WM_SETFOCUS;"/>
755      </type>
756      <target>
757        <msgInfoValue obj="setfocus" msgParam="target"/>
758      </target>
759      <WPARAM>
760        <msgInfoValue obj="killfocus" msgParam="target"/>
761      </WPARAM>
762    </genMsg>
[152]763    <genMsg delay="500">
[1]764      <type>
765        <constValue value="&WM_COMMAND;"/>
766      </type>
767      <target>
768        <msgInfoValue obj="cmd" msgParam="target"/>
769      </target>
770      <LPARAM>
771        <msgInfoValue obj="setfocus" msgParam="target"/>
772      </LPARAM>
773      <WPARAM>
774        <paramValue obj="cmd" param="WPARAM"/>
775      </WPARAM>
776    </genMsg>
777  </rule>
778
779
[62]780  <!-- Rules for keyboard input -->
[1]781  <rule name="KeyDown">
782    <msg type="&WM_KEYDOWN;">
783      <store var="keydown"/>
784    </msg>
[152]785    <genMsg delay="100">
[1]786      <storedVar obj="keydown"/>
787    </genMsg>
[416]788    <!--<idinfo>
[1]789      <paramValue obj="keydown" param="key"/>
[416]790    </idinfo>-->
[1]791  </rule>
792
793  <rule name="KeyUp">
794    <msg type="&WM_KEYUP;">
795      <store var="keyup"/>
796    </msg>
[152]797    <genMsg delay="500">
[1]798      <storedVar obj="keyup"/>
799    </genMsg>
[416]800    <!--<idinfo>
[1]801      <paramValue obj="keyup" param="key"/>
[416]802    </idinfo>-->
[1]803  </rule>
804
805  <rule name="SysKeyDown">
806    <msg type="&WM_SYSKEYDOWN;">
807      <store var="keydown"/>
808    </msg>
[152]809    <genMsg delay="100">
[1]810      <storedVar obj="keydown"/>
811    </genMsg>
812    <idinfo>
813      <paramValue obj="keydown" param="key"/>
814    </idinfo>
815  </rule>
816
817  <rule name="SysKeyUp">
818    <msg type="&WM_SYSKEYUP;">
819      <store var="keyup"/>
820    </msg>
[152]821    <genMsg delay="500">
[1]822      <storedVar obj="keyup"/>
823    </genMsg>
824    <idinfo>
825      <paramValue obj="keyup" param="key"/>
826    </idinfo>
827  </rule>
828
[59]829
[62]830  <!-- What follows are coordinate-based rules. They are "hail mary" rules that try to salvage events that cannot be matched or replayed in a coordinate independent way (yet). -->
831  <rule name ="LeftClickCoordinates">
[59]832    <msg type="&WM_LBUTTONDOWN;">
833      <store var="clicked"/>
834    </msg>
835    <msg type="&WM_LBUTTONUP;">
836      <equals>
837        <paramValue obj="clicked" param="window.hwnd"/>
838        <paramValue obj="this" param="window.hwnd"/>
839      </equals>
840      <store var="up"/>
841    </msg>
[152]842    <genMsg delay="100">
[59]843      <type>
844        <constValue value="&WM_LBUTTONDOWN;"/>
845      </type>
846      <target>
847        <msgInfoValue obj="clicked" msgParam="target"/>
848      </target>
849      <LPARAM>
850        <LOWORD>
[62]851          <paramValue obj="clicked" param="point.x"/>
852        </LOWORD>
853        <HIWORD>
854          <paramValue obj="clicked" param="point.y"/>
855        </HIWORD>
856      </LPARAM>
857      <WPARAM>
858        <paramValue obj="clicked" param="WPARAM"/>
859      </WPARAM>
860    </genMsg>
[152]861    <genMsg delay="500">
[62]862      <type>
863        <constValue value="&WM_LBUTTONUP;"/>
864      </type>
865      <target>
866        <msgInfoValue obj="up" msgParam="target"/>
867      </target>
868      <LPARAM>
869        <LOWORD>
[59]870          <paramValue obj="up" param="point.x"/>
871        </LOWORD>
872        <HIWORD>
873          <paramValue obj="up" param="point.y"/>
874        </HIWORD>
875      </LPARAM>
876      <WPARAM>
[62]877        <paramValue obj="up" param="WPARAM"/>
[59]878      </WPARAM>
879    </genMsg>
[62]880  </rule>
881 
882  <rule name ="NCLeftClickCoordinates">
883    <msg type="&WM_NCLBUTTONDOWN;">
884      <store var="clicked"/>
885    </msg>
886    <msg type="&WM_LBUTTONUP;">
887      <equals>
888        <paramValue obj="clicked" param="window.hwnd"/>
889        <paramValue obj="this" param="window.hwnd"/>
890      </equals>
891      <store var="up"/>
892    </msg>
[152]893    <genMsg delay="100">
[62]894      <type>
895        <constValue value="&WM_NCLBUTTONDOWN;"/>
896      </type>
897      <target>
898        <msgInfoValue obj="clicked" msgParam="target"/>
899      </target>
900      <LPARAM>
901        <LOWORD>
902          <paramValue obj="clicked" param="point.x"/>
903        </LOWORD>
904        <HIWORD>
905          <paramValue obj="clicked" param="point.y"/>
906        </HIWORD>
907      </LPARAM>
908      <WPARAM>
909        <paramValue obj="clicked" param="WPARAM"/>
910      </WPARAM>
[59]911    </genMsg>
[152]912    <genMsg delay="500">
[62]913      <type>
914        <constValue value="&WM_LBUTTONUP;"/>
915      </type>
916      <target>
917        <msgInfoValue obj="up" msgParam="target"/>
918      </target>
919      <LPARAM>
920        <LOWORD>
921          <paramValue obj="up" param="point.x"/>
922        </LOWORD>
923        <HIWORD>
924          <paramValue obj="up" param="point.y"/>
925        </HIWORD>
926      </LPARAM>
927      <WPARAM>
928        <paramValue obj="up" param="WPARAM"/>
929      </WPARAM>
930    </genMsg>
[59]931  </rule>
[416]932
933  <rule name ="NCLeftClickCoordinates2">
934    <msg type="&WM_NCLBUTTONDOWN;">
935      <store var="clicked"/>
936    </msg>
937    <msg type="&WM_NCLBUTTONUP;">
938      <equals>
939        <paramValue obj="clicked" param="window.hwnd"/>
940        <paramValue obj="this" param="window.hwnd"/>
941      </equals>
942      <store var="up"/>
943    </msg>
944    <genMsg delay="100">
945      <type>
946        <constValue value="&WM_NCLBUTTONDOWN;"/>
947      </type>
948      <target>
949        <msgInfoValue obj="clicked" msgParam="target"/>
950      </target>
951      <LPARAM>
952        <LOWORD>
953          <paramValue obj="clicked" param="point.x"/>
954        </LOWORD>
955        <HIWORD>
956          <paramValue obj="clicked" param="point.y"/>
957        </HIWORD>
958      </LPARAM>
959      <WPARAM>
960        <paramValue obj="clicked" param="WPARAM"/>
961      </WPARAM>
962    </genMsg>
963    <genMsg delay="500">
964      <type>
965        <constValue value="&WM_NCLBUTTONUP;"/>
966      </type>
967      <target>
968        <msgInfoValue obj="up" msgParam="target"/>
969      </target>
970      <LPARAM>
971        <LOWORD>
972          <paramValue obj="up" param="point.x"/>
973        </LOWORD>
974        <HIWORD>
975          <paramValue obj="up" param="point.y"/>
976        </HIWORD>
977      </LPARAM>
978      <WPARAM>
979        <paramValue obj="up" param="WPARAM"/>
980      </WPARAM>
981    </genMsg>
982  </rule>
983
984  <rule name ="LeftClickCoordinatesTargetChanged">
985    <msg type="&WM_LBUTTONDOWN;">
986      <store var="clicked"/>
987    </msg>
988    <msg type="&WM_LBUTTONUP;">
989      <store var="up"/>
990    </msg>
991    <genMsg delay="100">
992      <type>
993        <constValue value="&WM_LBUTTONDOWN;"/>
994      </type>
995      <target>
996        <msgInfoValue obj="clicked" msgParam="target"/>
997      </target>
998      <LPARAM>
999        <LOWORD>
1000          <paramValue obj="clicked" param="point.x"/>
1001        </LOWORD>
1002        <HIWORD>
1003          <paramValue obj="clicked" param="point.y"/>
1004        </HIWORD>
1005      </LPARAM>
1006      <WPARAM>
1007        <paramValue obj="clicked" param="WPARAM"/>
1008      </WPARAM>
1009    </genMsg>
1010    <genMsg delay="500">
1011      <type>
1012        <constValue value="&WM_LBUTTONUP;"/>
1013      </type>
1014      <target>
1015        <msgInfoValue obj="up" msgParam="target"/>
1016      </target>
1017      <LPARAM>
1018        <LOWORD>
1019          <paramValue obj="up" param="point.x"/>
1020        </LOWORD>
1021        <HIWORD>
1022          <paramValue obj="up" param="point.y"/>
1023        </HIWORD>
1024      </LPARAM>
1025      <WPARAM>
1026        <paramValue obj="up" param="WPARAM"/>
1027      </WPARAM>
1028    </genMsg>
1029  </rule>
[59]1030 
[416]1031  <rule name ="LeftClickCoordinatesTargetChanged2">
1032    <msg type="&WM_LBUTTONDOWN;">
1033      <store var="clicked"/>
1034    </msg>
1035    <msg type="&WM_NCLBUTTONUP;">
1036      <store var="up"/>
1037    </msg>
1038    <genMsg delay="100">
1039      <type>
1040        <constValue value="&WM_LBUTTONDOWN;"/>
1041      </type>
1042      <target>
1043        <msgInfoValue obj="clicked" msgParam="target"/>
1044      </target>
1045      <LPARAM>
1046        <LOWORD>
1047          <paramValue obj="clicked" param="point.x"/>
1048        </LOWORD>
1049        <HIWORD>
1050          <paramValue obj="clicked" param="point.y"/>
1051        </HIWORD>
1052      </LPARAM>
1053      <WPARAM>
1054        <paramValue obj="clicked" param="WPARAM"/>
1055      </WPARAM>
1056    </genMsg>
1057    <genMsg delay="500">
1058      <type>
1059        <constValue value="&WM_NCLBUTTONUP;"/>
1060      </type>
1061      <target>
1062        <msgInfoValue obj="up" msgParam="target"/>
1063      </target>
1064      <LPARAM>
1065        <LOWORD>
1066          <paramValue obj="up" param="point.x"/>
1067        </LOWORD>
1068        <HIWORD>
1069          <paramValue obj="up" param="point.y"/>
1070        </HIWORD>
1071      </LPARAM>
1072      <WPARAM>
1073        <paramValue obj="up" param="WPARAM"/>
1074      </WPARAM>
1075    </genMsg>
1076  </rule>
1077
1078
[1]1079</rules>
Note: See TracBrowser for help on using the repository browser.