source: trunk/autoquest-plugin-mfc/data/rules.xml @ 1654

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