source: trunk/quest-ui-core/rules/rules.xml @ 482

Last change on this file since 482 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
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  </rule>
57
58  <rule name="TabChange">
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>
73    <!-- tab change message for Tab Controls-->
74    <genMsg delay="100">
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>
85    <!-- tab change message for Property Pages-->
86    <genMsg delay="500">
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>
97  </rule>
98
99<!--
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>
141    <genMsg delay="500">
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>
152    <!-
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>
180    </genMsgSeq>->
181  </rule>
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>
235 
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"/>
279        <!-<paramValue obj="up" param="scrollPos"/>->
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
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>
342    <genMsg delay="500">
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>
371    <genMsg delay="500">
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>
393    <genMsg delay="500">
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>
421    <genMsg delay="500">
422      <storedVar obj="cmd"/>
423    </genMsg>
424  </rule>
425
426 
427  <!-- rules involving mouse movement -->
428  <rule name="HScroll_TrackBar">
429    <msg type="&WM_LBUTTONDOWN;">
430      <equals>
431        <winInfoValue obj="this" winParam="class"/>
432        <constValue value="msctls_trackbar32"/>
433      </equals>
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>
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>
450    </msg>
451    <genMsgSeq delay="50">
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>
485    <msg type="&WM_LBUTTONUP;">
486      <equals>
487        <paramValue obj="this" param="window.hwnd"/>
488        <paramValue obj="clicked" param="window.hwnd"/>
489      </equals>
490    </msg>
491    <genMsgSeq delay="50">
492      <type>
493        <constValue value="&TBM_SETPOS;"/>
494      </type>
495      <target>
496        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
497      </target>
498      <LPARAM>
499        <seqValue seqObj="scrolls" param="scrollPos"/>
500      </LPARAM>
501      <WPARAM>
502        <constValue value="1"/>
503      </WPARAM>
504    </genMsgSeq>
505  </rule>
506
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>
531    <genMsgSeq delay="50">
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>
571    <genMsgSeq delay="50">
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>
586 
587  <!-- Does not work correctly, if a scrollbar has no handle of its own, e.g., a standard scrollbar of a listbox -->
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>
599    <genMsg delay="50">
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
649  <!-- Copy of set focus without kill-focus -->
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>
689    <genMsg delay="500">
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>
704 
705  <!-- Works only partially! -->
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>
741    <genMsg delay="100">
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>
752    <genMsg delay="100">
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>
763    <genMsg delay="500">
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
780  <!-- Rules for keyboard input -->
781  <rule name="KeyDown">
782    <msg type="&WM_KEYDOWN;">
783      <store var="keydown"/>
784    </msg>
785    <genMsg delay="100">
786      <storedVar obj="keydown"/>
787    </genMsg>
788    <!--<idinfo>
789      <paramValue obj="keydown" param="key"/>
790    </idinfo>-->
791  </rule>
792
793  <rule name="KeyUp">
794    <msg type="&WM_KEYUP;">
795      <store var="keyup"/>
796    </msg>
797    <genMsg delay="500">
798      <storedVar obj="keyup"/>
799    </genMsg>
800    <!--<idinfo>
801      <paramValue obj="keyup" param="key"/>
802    </idinfo>-->
803  </rule>
804
805  <rule name="SysKeyDown">
806    <msg type="&WM_SYSKEYDOWN;">
807      <store var="keydown"/>
808    </msg>
809    <genMsg delay="100">
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>
821    <genMsg delay="500">
822      <storedVar obj="keyup"/>
823    </genMsg>
824    <idinfo>
825      <paramValue obj="keyup" param="key"/>
826    </idinfo>
827  </rule>
828
829
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">
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>
842    <genMsg delay="100">
843      <type>
844        <constValue value="&WM_LBUTTONDOWN;"/>
845      </type>
846      <target>
847        <msgInfoValue obj="clicked" msgParam="target"/>
848      </target>
849      <LPARAM>
850        <LOWORD>
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>
861    <genMsg delay="500">
862      <type>
863        <constValue value="&WM_LBUTTONUP;"/>
864      </type>
865      <target>
866        <msgInfoValue obj="up" msgParam="target"/>
867      </target>
868      <LPARAM>
869        <LOWORD>
870          <paramValue obj="up" param="point.x"/>
871        </LOWORD>
872        <HIWORD>
873          <paramValue obj="up" param="point.y"/>
874        </HIWORD>
875      </LPARAM>
876      <WPARAM>
877        <paramValue obj="up" param="WPARAM"/>
878      </WPARAM>
879    </genMsg>
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>
893    <genMsg delay="100">
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>
911    </genMsg>
912    <genMsg delay="500">
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>
931  </rule>
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>
1030 
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
1079</rules>
Note: See TracBrowser for help on using the repository browser.