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

Last change on this file since 62 was 62, checked in by sherbold, 13 years ago

+ Added additional coordinate-dependent rule NCLeftClickCoordinates

File size: 21.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="100">
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="1000">
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 
59  <!-- The tab change itself works, but the content of the tab is not refreshed. -->
60  <rule name="TabChange">
61    <msg type="&WM_LBUTTONDOWN;">
62      <equals>
63        <constValue value="SysTabControl32"/>
64        <winInfoValue obj="this" winParam="class"/>
65      </equals>
66      <store var="clicked"/>
67    </msg>
68    <msg type="&WM_LBUTTONUP;">
69      <equals>
70        <paramValue obj="this" param="window.hwnd"/>
71        <paramValue obj="clicked" param="window.hwnd"/>
72      </equals>
73      <store var="up"/>
74    </msg>
75    <genMsg delay="20">
76      <type>
77        <constValue value="&TCM_SETCURSEL;"/>
78      </type>
79      <target>
80        <msgInfoValue obj="up" msgParam="target"/>
81      </target>
82      <WPARAM>
83        <paramValue obj="up" param="scrollPos"/>
84      </WPARAM>
85    </genMsg>
86  </rule>
87
88
89  <rule name="ComboBox">
90    <msg type="&WM_LBUTTONDOWN;">
91      <equals>
92        <winInfoValue obj="this" winParam="class"/>
93        <constValue value="ComboBox"/>
94      </equals>
95      <store var="clicked"/>
96    </msg>
97    <msg type="&WM_COMMAND;">
98      <equals>
99        <paramValue obj="this" param="window.hwnd"/>
100        <paramValue obj="clicked" param="window.hwnd"/>
101      </equals>
102      <store var="cmd1">
103        <resolveHwnd param="source" storeParam="sourceDesc"/>
104      </store>
105    </msg>
106    <msg type="&WM_COMMAND;" multiple="true">
107      <equals>
108        <paramValue obj="this" param="source"/>
109        <paramValue obj="clicked" param="window.hwnd"/>
110      </equals>
111      <storeSeq varSeq="cmds">
112        <resolveHwnd param="window.hwnd" storeParam="msgTarget"/>
113        <resolveHwnd param="source" storeParam="sourceDesc"/>
114      </storeSeq>
115    </msg>
116    <msg type="&WM_LBUTTONUP;">
117      <equals>
118        <paramValue obj="this" param="window.hwnd"/>
119        <paramValue obj="clicked" param="window.hwnd"/>
120      </equals>
121    </msg>
122    <genMsg delay="100">
123      <type>
124        <constValue value="&WM_SETFOCUS;"/>
125      </type>
126      <target>
127        <msgInfoValue obj="clicked" msgParam="target"/>
128      </target>
129    </genMsg>
130    <genMsg delay="100">
131      <type>
132        <constValue value="&CB_SHOWDROPDOWN;"/>
133      </type>
134      <target>
135        <msgInfoValue obj="clicked" msgParam="target"/>
136      </target>
137      <WPARAM>
138        <constValue value="1"/>
139      </WPARAM>
140    </genMsg>
141    <!--
142    <genMsg delay="100">
143      <type>
144        <constValue value="273"/>
145      </type>
146      <target>
147        <msgInfoValue obj="cmd1" msgParam="target"/>
148      </target>
149      <LPARAM>
150        <paramValue obj="cmd1" param="sourceDesc"/>
151      </LPARAM>
152      <WPARAM>
153        <paramValue obj="cmd1" param="WPARAM"/>
154      </WPARAM>
155    </genMsg>
156    <genMsgSeq delay="50">
157      <type>
158        <constValue value="273"/>
159      </type>
160      <target>
161        <seqValue seqObj="cmds" param="msgTarget"/>
162      </target>
163      <LPARAM>
164        <seqValue seqObj="cmds" param ="sourceDesc"/>
165      </LPARAM>
166      <WPARAM>
167        <seqValue seqObj="cmds" param="WPARAM"/>
168      </WPARAM>
169    </genMsgSeq>-->
170  </rule>
171 
172  <rule name="LeftClickCommand">
173    <msg type="&WM_LBUTTONDOWN;">
174      <store var="clicked"/>
175    </msg>
176    <msg type="&WM_LBUTTONUP;">
177      <equals>
178        <paramValue obj="clicked" param="window.hwnd"/>
179        <paramValue obj="this" param="window.hwnd"/>
180      </equals>
181    </msg>
182    <msg type="&WM_COMMAND;">
183      <equals>
184        <paramValue obj="clicked" param="window.hwnd"/>
185        <paramValue obj="this" param="source"/>
186      </equals>
187      <store var="cmd">
188        <resolveHwnd param="source" storeParam="sourceDesc"/>
189      </store>
190    </msg>
191    <genMsg delay="100">
192      <type>
193        <msgInfoValue obj="cmd" msgParam="type"/>
194      </type>
195      <target>
196        <msgInfoValue obj="cmd" msgParam="target"/>
197      </target>
198      <LPARAM>
199        <paramValue obj="cmd" param="sourceDesc"/>
200      </LPARAM>
201      <WPARAM>
202        <paramValue obj="cmd" param="WPARAM"/>
203      </WPARAM>
204    </genMsg>
205  </rule>
206
207  <rule name="LeftClickSysCommand">
208    <msg type="&WM_LBUTTONDOWN;">
209      <store var="clicked"/>
210    </msg>
211    <msg type="&WM_LBUTTONUP;">
212      <equals>
213        <paramValue obj="clicked" param="window.hwnd"/>
214        <paramValue obj="this" param="window.hwnd"/>
215      </equals>
216    </msg>
217    <msg type="&WM_SYSCOMMAND;">
218      <store var="cmd"/>
219    </msg>
220    <genMsg delay="100">
221      <storedVar obj="cmd"/>
222    </genMsg>
223  </rule>
224
225  <rule name="NCLeftClickSysCommand">
226    <msg type="&WM_NCLBUTTONDOWN;">
227      <store var="clicked"/>
228    </msg>
229    <msg type="&WM_LBUTTONUP;">
230      <equals>
231        <paramValue obj="clicked" param="window.hwnd"/>
232        <paramValue obj="this" param="window.hwnd"/>
233      </equals>
234    </msg>
235    <msg type="&WM_SYSCOMMAND;">
236      <equals>
237        <paramValue obj="clicked" param="window.hwnd"/>
238        <paramValue obj="this" param="window.hwnd"/>
239      </equals>
240      <store var="cmd"/>
241    </msg>
242    <genMsg delay="100">
243      <storedVar obj="cmd"/>
244    </genMsg>
245  </rule>
246
247  <rule name="LeftClickMenuItemCmd">
248    <msg type="&WM_LBUTTONDOWN;">
249      <store var="clicked"/>
250    </msg>
251    <msg type="&WM_LBUTTONUP;">
252      <equals>
253        <paramValue obj="clicked" param="window.hwnd"/>
254        <paramValue obj="this" param="window.hwnd"/>
255      </equals>
256    </msg>
257    <msg type="&WM_MENUSELECT;">
258      <equals>
259        <paramValue obj="clicked" param="window.hwnd"/>
260        <paramValue obj="this" param="window.hwnd"/>
261      </equals>
262    </msg>
263    <msg type="&WM_COMMAND;">
264      <equals>
265        <paramValue obj="this" param="sourceType"/>
266        <constValue value="0"/>
267      </equals>
268      <store var="cmd"/>
269    </msg>
270    <genMsg delay="100">
271      <storedVar obj="cmd"/>
272    </genMsg>
273  </rule>
274
275 
276  <!-- rules involving mouse movement -->
277  <rule name="HScroll_TrackBar">
278    <msg type="&WM_LBUTTONDOWN;">
279      <equals>
280        <winInfoValue obj="this" winParam="class"/>
281        <constValue value="msctls_trackbar32"/>
282      </equals>
283      <store var="clicked"/>
284    </msg>
285    <msg type="&WM_HSCROLL;" multiple="true">
286      <equals>
287        <paramValue obj="this" param="scrollBarHandle"/>
288        <paramValue obj="clicked" param="window.hwnd"/>
289      </equals>
290      <storeSeq varSeq="scrolls">
291        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
292      </storeSeq>
293    </msg>   
294    <msg type="&WM_LBUTTONUP;">
295      <equals>
296        <paramValue obj="this" param="window.hwnd"/>
297        <paramValue obj="clicked" param="window.hwnd"/>
298      </equals>
299    </msg>
300    <genMsgSeq delay="20">
301      <type>
302        <constValue value="&TBM_SETPOS;"/>
303      </type>
304      <target>
305        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
306      </target>
307      <LPARAM>
308        <seqValue seqObj="scrolls" param="scrollPos"/>
309      </LPARAM>
310      <WPARAM>
311        <constValue value="1"/>
312      </WPARAM>
313    </genMsgSeq>
314  </rule>
315
316
317  <rule name="VScroll_TrackBar">
318    <msg type="&WM_LBUTTONDOWN;">
319      <equals>
320        <winInfoValue obj="this" winParam="class"/>
321        <constValue value="msctls_trackbar32"/>
322      </equals>
323      <store var="clicked"/>
324    </msg>
325    <msg type="&WM_VSCROLL;" multiple="true">
326      <equals>
327        <paramValue obj="this" param="scrollBarHandle"/>
328        <paramValue obj="clicked" param="window.hwnd"/>
329      </equals>
330      <storeSeq varSeq="scrolls">
331        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
332      </storeSeq>
333    </msg>
334    <msg type="&WM_LBUTTONUP;">
335      <equals>
336        <paramValue obj="this" param="window.hwnd"/>
337        <paramValue obj="clicked" param="window.hwnd"/>
338      </equals>
339    </msg>
340    <genMsgSeq delay="20">
341      <type>
342        <constValue value="&TBM_SETPOS;"/>
343      </type>
344      <target>
345        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
346      </target>
347      <LPARAM>
348        <seqValue seqObj="scrolls" param="scrollPos"/>
349      </LPARAM>
350      <WPARAM>
351        <constValue value="1"/>
352      </WPARAM>
353    </genMsgSeq>
354  </rule>
355
356
357  <rule name="HScroll_ScrollBar">
358    <msg type="&WM_LBUTTONDOWN;">
359      <equals>
360        <winInfoValue obj="this" winParam="class"/>
361        <constValue value="ScrollBar"/>
362      </equals>
363      <store var="clicked"/>
364    </msg>
365    <msg type="&WM_HSCROLL;" multiple="true">
366      <equals>
367        <paramValue obj="this" param="scrollBarHandle"/>
368        <paramValue obj="clicked" param="window.hwnd"/>
369      </equals>
370      <storeSeq varSeq="scrolls">
371        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
372      </storeSeq>
373    </msg>
374    <msg type="&WM_LBUTTONUP;">
375      <equals>
376        <paramValue obj="this" param="window.hwnd"/>
377        <paramValue obj="clicked" param="window.hwnd"/>
378      </equals>
379    </msg>
380    <genMsgSeq delay="20">
381      <type>
382        <constValue value="&SBM_SETPOS;"/>
383      </type>
384      <target>
385        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
386      </target>
387      <LPARAM>
388        <constValue value="1"/>
389      </LPARAM>
390      <WPARAM>
391        <seqValue seqObj="scrolls" param="scrollPos"/>
392      </WPARAM>
393    </genMsgSeq>
394  </rule>
395
396
397  <rule name="VScroll_ScrollBar">
398    <msg type="&WM_LBUTTONDOWN;">
399      <equals>
400        <winInfoValue obj="this" winParam="class"/>
401        <constValue value="ScrollBar"/>
402      </equals>
403      <store var="clicked"/>
404    </msg>
405    <msg type="&WM_VSCROLL;" multiple="true">
406      <equals>
407        <paramValue obj="this" param="scrollBarHandle"/>
408        <paramValue obj="clicked" param="window.hwnd"/>
409      </equals>
410      <storeSeq varSeq="scrolls">
411        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
412      </storeSeq>
413    </msg>
414    <msg type="&WM_LBUTTONUP;">
415      <equals>
416        <paramValue obj="this" param="window.hwnd"/>
417        <paramValue obj="clicked" param="window.hwnd"/>
418      </equals>
419    </msg>
420    <genMsgSeq delay="20">
421      <type>
422        <constValue value="&SBM_SETPOS;"/>
423      </type>
424      <target>
425        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
426      </target>
427      <LPARAM>
428        <constValue value="1"/>
429      </LPARAM>
430      <WPARAM>
431        <seqValue seqObj="scrolls" param="scrollPos"/>
432      </WPARAM>
433    </genMsgSeq>
434  </rule>
435 
436  <!-- Does not work correctly, if a scrollbar has no handle of its own, e.g., a standard scrollbar of a listbox -->
437  <rule name="VScrollNC">
438    <msg type="&WM_NCLBUTTONDOWN;">
439      <store var="clicked"/>
440    </msg>
441    <msg type="&WM_VSCROLL;">
442      <equals>
443        <paramValue obj="this" param="window.hwnd"/>
444        <paramValue obj="clicked" param="window.hwnd"/>
445      </equals>
446      <store var="scrolls"/>
447    </msg>
448    <genMsg delay="20">
449      <type>
450        <constValue value="&WM_VSCROLL;"/>
451      </type>
452      <target>
453        <msgInfoValue obj="clicked" msgParam="target"/>
454      </target>
455      <WPARAM>
456        <LOWORD>
457          <constValue value="4"/>
458        </LOWORD>
459        <HIWORD>
460          <paramValue obj="scrolls" param="scrollPos"/>
461        </HIWORD>
462      </WPARAM>
463    </genMsg>
464  </rule>
465
466
467  <!--<rule name="VScrollNC">
468    <msg type="&WM_NCLBUTTONDOWN;">
469      <store var="clicked"/>
470    </msg>
471    <msg type="&WM_VSCROLL;" multiple="true">
472      <equals>
473        <paramValue obj="this" param="window.hwnd"/>
474        <paramValue obj="clicked" param="window.hwnd"/>
475      </equals>
476      <storeSeq varSeq="scrolls">
477        <resolveHwnd param="window.hwnd" storeParam="scrollBarTarget"/>
478      </storeSeq>
479    </msg>
480    <genMsgSeq delay="20">
481      <type>
482        <constValue value="&WM_VSCROLL;"/>
483      </type>
484      <target>
485        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
486      </target>
487      <WPARAM>
488        <LOWORD>
489          <constValue value="4"/>
490        </LOWORD>
491        <HIWORD>
492          <paramValue obj="scrolls" param="scrollPos"/>
493        </HIWORD>
494      </WPARAM>
495    </genMsgSeq>
496  </rule>-->
497
498  <!-- Copy of set focus without kill-focus -->
499  <rule name="LeftClickSetFocus">
500    <msg type="&WM_LBUTTONDOWN;">
501      <equals>
502        <winInfoValue obj="this" winParam="class"/>
503        <constValue value="Edit"/>
504      </equals>
505      <store var="clicked"/>
506    </msg>
507    <msg type="&WM_SETFOCUS;">
508      <store var="setfocus"/>
509    </msg>
510    <msg type="&WM_COMMAND;">
511      <equals>
512        <paramValue obj="this" param="source"/>
513        <paramValue obj="clicked" param="window.hwnd"/>
514      </equals>
515      <equals>
516        <paramValue obj="this" param="sourceType"/>
517        <constValue value="256"/>
518      </equals>
519      <store var="cmd"/>
520    </msg>
521    <msg type="&WM_LBUTTONUP;">
522      <equals>
523        <paramValue obj="this" param="window.hwnd"/>
524        <paramValue obj="clicked" param="window.hwnd"/>
525      </equals>
526    </msg>
527    <genMsg delay="20">
528      <type>
529        <constValue value="&WM_SETFOCUS;"/>
530      </type>
531      <target>
532        <msgInfoValue obj="setfocus" msgParam="target"/>
533      </target>
534      <WPARAM>
535        <constValue value="0"/>
536      </WPARAM>
537    </genMsg>
538    <genMsg delay="100">
539      <type>
540        <constValue value="&WM_COMMAND;"/>
541      </type>
542      <target>
543        <msgInfoValue obj="cmd" msgParam="target"/>
544      </target>
545      <LPARAM>
546        <msgInfoValue obj="setfocus" msgParam="target"/>
547      </LPARAM>
548      <WPARAM>
549        <paramValue obj="cmd" param="WPARAM"/>
550      </WPARAM>
551    </genMsg>
552  </rule>
553 
554  <!-- Works only partially! -->
555  <rule name="LeftClickChangeFocus">
556    <msg type="&WM_LBUTTONDOWN;">
557      <equals>
558        <winInfoValue obj="this" winParam="class"/>
559        <constValue value="Edit"/>
560      </equals>
561      <store var="clicked"/>
562    </msg>
563    <msg type="&WM_KILLFOCUS;">
564      <store var="killfocus"/>
565    </msg>
566    <msg type="&WM_SETFOCUS;">
567      <equals>
568        <paramValue obj="this" param="WPARAM"/>
569        <paramValue obj="killfocus" param="window.hwnd"/>
570      </equals>
571      <store var="setfocus"/>
572    </msg>
573    <msg type="&WM_COMMAND;">
574      <equals>
575        <paramValue obj="this" param="source"/>
576        <paramValue obj="clicked" param="window.hwnd"/>
577      </equals>
578      <equals>
579        <paramValue obj="this" param="sourceType"/>
580        <constValue value="256"/>
581      </equals>
582      <store var="cmd"/>
583    </msg>
584    <msg type="&WM_LBUTTONUP;">
585      <equals>
586        <paramValue obj="this" param="window.hwnd"/>
587        <paramValue obj="clicked" param="window.hwnd"/>
588      </equals>
589    </msg>
590    <genMsg delay="20">
591      <type>
592        <constValue value="&WM_KILLFOCUS;"/>
593      </type>
594      <target>
595        <msgInfoValue obj="killfocus" msgParam="target"/>
596      </target>
597      <WPARAM>
598        <msgInfoValue obj="setfocus" msgParam="target"/>
599      </WPARAM>
600    </genMsg>
601    <genMsg delay="20">
602      <type>
603        <constValue value="&WM_SETFOCUS;"/>
604      </type>
605      <target>
606        <msgInfoValue obj="setfocus" msgParam="target"/>
607      </target>
608      <WPARAM>
609        <msgInfoValue obj="killfocus" msgParam="target"/>
610      </WPARAM>
611    </genMsg>
612    <genMsg delay="100">
613      <type>
614        <constValue value="&WM_COMMAND;"/>
615      </type>
616      <target>
617        <msgInfoValue obj="cmd" msgParam="target"/>
618      </target>
619      <LPARAM>
620        <msgInfoValue obj="setfocus" msgParam="target"/>
621      </LPARAM>
622      <WPARAM>
623        <paramValue obj="cmd" param="WPARAM"/>
624      </WPARAM>
625    </genMsg>
626  </rule>
627
628
629  <!-- Rules for keyboard input -->
630  <rule name="KeyDown">
631    <msg type="&WM_KEYDOWN;">
632      <store var="keydown"/>
633    </msg>
634    <genMsg delay="20">
635      <storedVar obj="keydown"/>
636    </genMsg>
637    <idinfo>
638      <paramValue obj="keydown" param="key"/>
639    </idinfo>
640  </rule>
641
642  <rule name="KeyUp">
643    <msg type="&WM_KEYUP;">
644      <store var="keyup"/>
645    </msg>
646    <genMsg delay="20">
647      <storedVar obj="keyup"/>
648    </genMsg>
649    <idinfo>
650      <paramValue obj="keyup" param="key"/>
651    </idinfo>
652  </rule>
653
654  <rule name="SysKeyDown">
655    <msg type="&WM_SYSKEYDOWN;">
656      <store var="keydown"/>
657    </msg>
658    <genMsg delay="20">
659      <storedVar obj="keydown"/>
660    </genMsg>
661    <idinfo>
662      <paramValue obj="keydown" param="key"/>
663    </idinfo>
664  </rule>
665
666  <rule name="SysKeyUp">
667    <msg type="&WM_SYSKEYUP;">
668      <store var="keyup"/>
669    </msg>
670    <genMsg delay="20">
671      <storedVar obj="keyup"/>
672    </genMsg>
673    <idinfo>
674      <paramValue obj="keyup" param="key"/>
675    </idinfo>
676  </rule>
677
678
679  <!-- 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). -->
680  <rule name ="LeftClickCoordinates">
681    <msg type="&WM_LBUTTONDOWN;">
682      <store var="clicked"/>
683    </msg>
684    <msg type="&WM_LBUTTONUP;">
685      <equals>
686        <paramValue obj="clicked" param="window.hwnd"/>
687        <paramValue obj="this" param="window.hwnd"/>
688      </equals>
689      <store var="up"/>
690    </msg>
691    <genMsg delay="20">
692      <type>
693        <constValue value="&WM_LBUTTONDOWN;"/>
694      </type>
695      <target>
696        <msgInfoValue obj="clicked" msgParam="target"/>
697      </target>
698      <LPARAM>
699        <LOWORD>
700          <paramValue obj="clicked" param="point.x"/>
701        </LOWORD>
702        <HIWORD>
703          <paramValue obj="clicked" param="point.y"/>
704        </HIWORD>
705      </LPARAM>
706      <WPARAM>
707        <paramValue obj="clicked" param="WPARAM"/>
708      </WPARAM>
709    </genMsg>
710    <genMsg delay="20">
711      <type>
712        <constValue value="&WM_LBUTTONUP;"/>
713      </type>
714      <target>
715        <msgInfoValue obj="up" msgParam="target"/>
716      </target>
717      <LPARAM>
718        <LOWORD>
719          <paramValue obj="up" param="point.x"/>
720        </LOWORD>
721        <HIWORD>
722          <paramValue obj="up" param="point.y"/>
723        </HIWORD>
724      </LPARAM>
725      <WPARAM>
726        <paramValue obj="up" param="WPARAM"/>
727      </WPARAM>
728    </genMsg>
729  </rule>
730 
731  <rule name ="NCLeftClickCoordinates">
732    <msg type="&WM_NCLBUTTONDOWN;">
733      <store var="clicked"/>
734    </msg>
735    <msg type="&WM_LBUTTONUP;">
736      <equals>
737        <paramValue obj="clicked" param="window.hwnd"/>
738        <paramValue obj="this" param="window.hwnd"/>
739      </equals>
740      <store var="up"/>
741    </msg>
742    <genMsg delay="20">
743      <type>
744        <constValue value="&WM_NCLBUTTONDOWN;"/>
745      </type>
746      <target>
747        <msgInfoValue obj="clicked" msgParam="target"/>
748      </target>
749      <LPARAM>
750        <LOWORD>
751          <paramValue obj="clicked" param="point.x"/>
752        </LOWORD>
753        <HIWORD>
754          <paramValue obj="clicked" param="point.y"/>
755        </HIWORD>
756      </LPARAM>
757      <WPARAM>
758        <paramValue obj="clicked" param="WPARAM"/>
759      </WPARAM>
760    </genMsg>
761    <genMsg delay="20">
762      <type>
763        <constValue value="&WM_LBUTTONUP;"/>
764      </type>
765      <target>
766        <msgInfoValue obj="up" msgParam="target"/>
767      </target>
768      <LPARAM>
769        <LOWORD>
770          <paramValue obj="up" param="point.x"/>
771        </LOWORD>
772        <HIWORD>
773          <paramValue obj="up" param="point.y"/>
774        </HIWORD>
775      </LPARAM>
776      <WPARAM>
777        <paramValue obj="up" param="WPARAM"/>
778      </WPARAM>
779    </genMsg>
780  </rule>
781 
782</rules>
Note: See TracBrowser for help on using the repository browser.