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

Last change on this file since 46 was 46, checked in by jhall, 13 years ago

"HScroll" splittet up into "HScroll_ScrollBar", "VScroll_ScrollBar", "HScroll_TrackBar" and "VScroll_TrackBar".
VScrollNC improved

File size: 17.9 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  <!--Wird in einem Tabfeld auch wirklich auf ein Tabelement geklickt (und nicht in den Content darunter), wird eine WM_USER Nachricht versendet, d.h.
60      1) Irgendwo in das Tabfeld klicken: WM_LBUTTONDOWN
61      2) Auf ein Tabelement klicken:      WM_LBUTTONDOWN + WM_USER -->
62  <rule name="TabChanged">
63    <msg type="&WM_LBUTTONDOWN;">
64      <equals>
65        <constValue value="SysTabControl32"/>
66        <winInfoValue obj="this" winParam="class"/>
67      </equals>
68      <store var="clicked"/>
69    </msg>
70    <msg type="&WM_USER;">
71    </msg>
72    <msg type="&WM_LBUTTONUP;">
73      <equals>
74        <paramValue obj="this" param="window.hwnd"/>
75        <paramValue obj="clicked" param="window.hwnd"/>
76      </equals>
77      <store var="up"/>
78    </msg>
79    <genMsg delay="20">
80      <type>
81        <constValue value="&TCM_SETCURSEL;"/>
82      </type>
83      <target>
84        <msgInfoValue obj="up" msgParam="target"/>
85      </target>
86      <WPARAM>
87        <paramValue obj="up" param="scrollPos"/>
88      </WPARAM>
89    </genMsg>
90  </rule>
91
92
93  <rule name="ComboBox">
94    <msg type="&WM_LBUTTONDOWN;">
95      <equals>
96        <winInfoValue obj="this" winParam="class"/>
97        <constValue value="ComboBox"/>
98      </equals>
99      <store var="clicked"/>
100    </msg>
101    <msg type="&WM_COMMAND;">
102      <equals>
103        <paramValue obj="this" param="window.hwnd"/>
104        <paramValue obj="clicked" param="window.hwnd"/>
105      </equals>
106      <store var="cmd1">
107        <resolveHwnd param="source" storeParam="sourceDesc"/>
108      </store>
109    </msg>
110    <msg type="&WM_COMMAND;" multiple="true">
111      <equals>
112        <paramValue obj="this" param="source"/>
113        <paramValue obj="clicked" param="window.hwnd"/>
114      </equals>
115      <storeSeq varSeq="cmds">
116        <resolveHwnd param="window.hwnd" storeParam="msgTarget"/>
117        <resolveHwnd param="source" storeParam="sourceDesc"/>
118      </storeSeq>
119    </msg>
120    <msg type="&WM_LBUTTONUP;">
121      <equals>
122        <paramValue obj="this" param="window.hwnd"/>
123        <paramValue obj="clicked" param="window.hwnd"/>
124      </equals>
125    </msg>
126    <genMsg delay="100">
127      <type>
128        <constValue value="&WM_SETFOCUS;"/>
129      </type>
130      <target>
131        <msgInfoValue obj="clicked" msgParam="target"/>
132      </target>
133    </genMsg>
134    <genMsg delay="100">
135      <type>
136        <constValue value="&CB_SHOWDROPDOWN;"/>
137      </type>
138      <target>
139        <msgInfoValue obj="clicked" msgParam="target"/>
140      </target>
141      <WPARAM>
142        <constValue value="1"/>
143      </WPARAM>
144    </genMsg>
145    <!--
146    <genMsg delay="100">
147      <type>
148        <constValue value="273"/>
149      </type>
150      <target>
151        <msgInfoValue obj="cmd1" msgParam="target"/>
152      </target>
153      <LPARAM>
154        <paramValue obj="cmd1" param="sourceDesc"/>
155      </LPARAM>
156      <WPARAM>
157        <paramValue obj="cmd1" param="WPARAM"/>
158      </WPARAM>
159    </genMsg>
160    <genMsgSeq delay="50">
161      <type>
162        <constValue value="273"/>
163      </type>
164      <target>
165        <seqValue seqObj="cmds" param="msgTarget"/>
166      </target>
167      <LPARAM>
168        <seqValue seqObj="cmds" param ="sourceDesc"/>
169      </LPARAM>
170      <WPARAM>
171        <seqValue seqObj="cmds" param="WPARAM"/>
172      </WPARAM>
173    </genMsgSeq>-->
174  </rule>
175 
176  <rule name="LeftClickCommand">
177    <msg type="&WM_LBUTTONDOWN;">
178      <store var="clicked"/>
179    </msg>
180    <msg type="&WM_LBUTTONUP;">
181      <equals>
182        <paramValue obj="clicked" param="window.hwnd"/>
183        <paramValue obj="this" param="window.hwnd"/>
184      </equals>
185    </msg>
186    <msg type="&WM_COMMAND;">
187      <equals>
188        <paramValue obj="clicked" param="window.hwnd"/>
189        <paramValue obj="this" param="source"/>
190      </equals>
191      <store var="cmd">
192        <resolveHwnd param="source" storeParam="sourceDesc"/>
193      </store>
194    </msg>
195    <genMsg delay="100">
196      <type>
197        <msgInfoValue obj="cmd" msgParam="type"/>
198      </type>
199      <target>
200        <msgInfoValue obj="cmd" msgParam="target"/>
201      </target>
202      <LPARAM>
203        <paramValue obj="cmd" param="sourceDesc"/>
204      </LPARAM>
205      <WPARAM>
206        <paramValue obj="cmd" param="WPARAM"/>
207      </WPARAM>
208    </genMsg>
209  </rule>
210
211  <rule name="LeftClickSysCommand">
212    <msg type="&WM_LBUTTONDOWN;">
213      <store var="clicked"/>
214    </msg>
215    <msg type="&WM_LBUTTONUP;">
216      <equals>
217        <paramValue obj="clicked" param="window.hwnd"/>
218        <paramValue obj="this" param="window.hwnd"/>
219      </equals>
220    </msg>
221    <msg type="&WM_SYSCOMMAND;">
222      <store var="cmd"/>
223    </msg>
224    <genMsg delay="100">
225      <storedVar obj="cmd"/>
226    </genMsg>
227  </rule>
228
229  <rule name="NCLeftClickSysCommand">
230    <msg type="&WM_NCLBUTTONDOWN;">
231      <store var="clicked"/>
232    </msg>
233    <msg type="&WM_LBUTTONUP;">
234      <equals>
235        <paramValue obj="clicked" param="window.hwnd"/>
236        <paramValue obj="this" param="window.hwnd"/>
237      </equals>
238    </msg>
239    <msg type="&WM_SYSCOMMAND;">
240      <equals>
241        <paramValue obj="clicked" param="window.hwnd"/>
242        <paramValue obj="this" param="window.hwnd"/>
243      </equals>
244      <store var="cmd"/>
245    </msg>
246    <genMsg delay="100">
247      <storedVar obj="cmd"/>
248    </genMsg>
249  </rule>
250
251  <rule name="LeftClickMenuItemCmd">
252    <msg type="&WM_LBUTTONDOWN;">
253      <store var="clicked"/>
254    </msg>
255    <msg type="&WM_LBUTTONUP;">
256      <equals>
257        <paramValue obj="clicked" param="window.hwnd"/>
258        <paramValue obj="this" param="window.hwnd"/>
259      </equals>
260    </msg>
261    <msg type="&WM_MENUSELECT;">
262      <equals>
263        <paramValue obj="clicked" param="window.hwnd"/>
264        <paramValue obj="this" param="window.hwnd"/>
265      </equals>
266    </msg>
267    <msg type="&WM_COMMAND;">
268      <equals>
269        <paramValue obj="this" param="sourceType"/>
270        <constValue value="0"/>
271      </equals>
272      <store var="cmd"/>
273    </msg>
274    <genMsg delay="100">
275      <storedVar obj="cmd"/>
276    </genMsg>
277  </rule>
278
279 
280  <!-- rules involving mouse movement -->
281  <rule name="HScroll_TrackBar">
282    <msg type="&WM_LBUTTONDOWN;">
283      <equals>
284        <winInfoValue obj="this" winParam="class"/>
285        <constValue value="msctls_trackbar32"/>
286      </equals>
287      <store var="clicked"/>
288    </msg>
289    <msg type="&WM_HSCROLL;" multiple="true">
290      <equals>
291        <paramValue obj="this" param="scrollBarHandle"/>
292        <paramValue obj="clicked" param="window.hwnd"/>
293      </equals>
294      <storeSeq varSeq="scrolls">
295        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
296      </storeSeq>
297    </msg>   
298    <msg type="&WM_LBUTTONUP;">
299      <equals>
300        <paramValue obj="this" param="window.hwnd"/>
301        <paramValue obj="clicked" param="window.hwnd"/>
302      </equals>
303    </msg>
304    <genMsgSeq delay="20">
305      <type>
306        <constValue value="&TBM_SETPOS;"/>
307      </type>
308      <target>
309        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
310      </target>
311      <LPARAM>
312        <seqValue seqObj="scrolls" param="scrollPos"/>
313      </LPARAM>
314      <WPARAM>
315        <constValue value="1"/>
316      </WPARAM>
317    </genMsgSeq>
318  </rule>
319
320
321  <rule name="VScroll_TrackBar">
322    <msg type="&WM_LBUTTONDOWN;">
323      <equals>
324        <winInfoValue obj="this" winParam="class"/>
325        <constValue value="msctls_trackbar32"/>
326      </equals>
327      <store var="clicked"/>
328    </msg>
329    <msg type="&WM_VSCROLL;" multiple="true">
330      <equals>
331        <paramValue obj="this" param="scrollBarHandle"/>
332        <paramValue obj="clicked" param="window.hwnd"/>
333      </equals>
334      <storeSeq varSeq="scrolls">
335        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
336      </storeSeq>
337    </msg>
338    <msg type="&WM_LBUTTONUP;">
339      <equals>
340        <paramValue obj="this" param="window.hwnd"/>
341        <paramValue obj="clicked" param="window.hwnd"/>
342      </equals>
343    </msg>
344    <genMsgSeq delay="20">
345      <type>
346        <constValue value="&TBM_SETPOS;"/>
347      </type>
348      <target>
349        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
350      </target>
351      <LPARAM>
352        <seqValue seqObj="scrolls" param="scrollPos"/>
353      </LPARAM>
354      <WPARAM>
355        <constValue value="1"/>
356      </WPARAM>
357    </genMsgSeq>
358  </rule>
359
360
361  <rule name="HScroll_ScrollBar">
362    <msg type="&WM_LBUTTONDOWN;">
363      <equals>
364        <winInfoValue obj="this" winParam="class"/>
365        <constValue value="ScrollBar"/>
366      </equals>
367      <store var="clicked"/>
368    </msg>
369    <msg type="&WM_HSCROLL;" multiple="true">
370      <equals>
371        <paramValue obj="this" param="scrollBarHandle"/>
372        <paramValue obj="clicked" param="window.hwnd"/>
373      </equals>
374      <storeSeq varSeq="scrolls">
375        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
376      </storeSeq>
377    </msg>
378    <msg type="&WM_LBUTTONUP;">
379      <equals>
380        <paramValue obj="this" param="window.hwnd"/>
381        <paramValue obj="clicked" param="window.hwnd"/>
382      </equals>
383    </msg>
384    <genMsgSeq delay="20">
385      <type>
386        <constValue value="&SBM_SETPOS;"/>
387      </type>
388      <target>
389        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
390      </target>
391      <LPARAM>
392        <constValue value="1"/>
393      </LPARAM>
394      <WPARAM>
395        <seqValue seqObj="scrolls" param="scrollPos"/>
396      </WPARAM>
397    </genMsgSeq>
398  </rule>
399
400
401  <rule name="VScroll_ScrollBar">
402    <msg type="&WM_LBUTTONDOWN;">
403      <equals>
404        <winInfoValue obj="this" winParam="class"/>
405        <constValue value="ScrollBar"/>
406      </equals>
407      <store var="clicked"/>
408    </msg>
409    <msg type="&WM_VSCROLL;" multiple="true">
410      <equals>
411        <paramValue obj="this" param="scrollBarHandle"/>
412        <paramValue obj="clicked" param="window.hwnd"/>
413      </equals>
414      <storeSeq varSeq="scrolls">
415        <resolveHwnd param="scrollBarHandle" storeParam="scrollBarTarget"/>
416      </storeSeq>
417    </msg>
418    <msg type="&WM_LBUTTONUP;">
419      <equals>
420        <paramValue obj="this" param="window.hwnd"/>
421        <paramValue obj="clicked" param="window.hwnd"/>
422      </equals>
423    </msg>
424    <genMsgSeq delay="20">
425      <type>
426        <constValue value="&SBM_SETPOS;"/>
427      </type>
428      <target>
429        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
430      </target>
431      <LPARAM>
432        <constValue value="1"/>
433      </LPARAM>
434      <WPARAM>
435        <seqValue seqObj="scrolls" param="scrollPos"/>
436      </WPARAM>
437    </genMsgSeq>
438  </rule>
439 
440
441 
442  <!-- Wenn eine Scrollbar benutzt wurde, die kein eigenes Handle hat, also eine StandardScrollbar in einer ListBox zb
443       Muss noch auf Sequenz erweitert werden, im Moment wird der Thumb der Scrollbar nur auf die erste Position gesetzt (normalerweise also 0) -->
444  <rule name="VScrollNC">
445    <msg type="&WM_NCLBUTTONDOWN;">
446      <store var="clicked"/>
447    </msg>
448    <msg type="&WM_VSCROLL;">
449      <equals>
450        <paramValue obj="this" param="window.hwnd"/>
451        <paramValue obj="clicked" param="window.hwnd"/>
452      </equals>
453      <store var="scrolls"/>
454    </msg>
455    <genMsg delay="20">
456      <type>
457        <constValue value="&WM_VSCROLL;"/>
458      </type>
459      <target>
460        <msgInfoValue obj="clicked" msgParam="target"/>
461      </target>
462      <WPARAM>
463        <LOWORD>
464          <constValue value="4"/>
465        </LOWORD>
466        <HIWORD>
467          <paramValue obj="scrolls" param="scrollPos"/>
468        </HIWORD>
469      </WPARAM>
470    </genMsg>
471  </rule>
472
473
474  <!--<rule name="VScrollNC">
475    <msg type="&WM_NCLBUTTONDOWN;">
476      <store var="clicked"/>
477    </msg>
478    <msg type="&WM_VSCROLL;" multiple="true">
479      <equals>
480        <paramValue obj="this" param="window.hwnd"/>
481        <paramValue obj="clicked" param="window.hwnd"/>
482      </equals>
483      <storeSeq varSeq="scrolls">
484        <resolveHwnd param="window.hwnd" storeParam="scrollBarTarget"/>
485      </storeSeq>
486    </msg>
487    <genMsgSeq delay="20">
488      <type>
489        <constValue value="&WM_VSCROLL;"/>
490      </type>
491      <target>
492        <seqValue seqObj="scrolls" param="scrollBarTarget"/>
493      </target>
494      <WPARAM>
495        <LOWORD>
496          <constValue value="4"/>
497        </LOWORD>
498        <HIWORD>
499          <paramValue obj="scrolls" param="scrollPos"/>
500        </HIWORD>
501      </WPARAM>
502    </genMsgSeq>
503  </rule>-->
504
505 
506 
507  <!-- if nothing else, at least switch focus, works only partially -->
508  <rule name="LeftClickChangeFocus">
509    <msg type="&WM_LBUTTONDOWN;">
510      <equals>
511        <winInfoValue obj="this" winParam="class"/>
512        <constValue value="Edit"/>
513      </equals>
514      <store var="clicked"/>
515    </msg>
516    <msg type="&WM_KILLFOCUS;">
517      <store var="killfocus"/>
518    </msg>
519    <msg type="&WM_SETFOCUS;">
520      <equals>
521        <paramValue obj="this" param="WPARAM"/>
522        <paramValue obj="killfocus" param="window.hwnd"/>
523      </equals>
524      <store var="setfocus"/>
525    </msg>
526    <msg type="&WM_COMMAND;">
527      <equals>
528        <paramValue obj="this" param="source"/>
529        <paramValue obj="clicked" param="window.hwnd"/>
530      </equals>
531      <equals>
532        <paramValue obj="this" param="sourceType"/>
533        <constValue value="256"/>
534      </equals>
535      <store var="cmd"/>
536    </msg>
537    <msg type="&WM_LBUTTONUP;">
538      <equals>
539        <paramValue obj="this" param="window.hwnd"/>
540        <paramValue obj="clicked" param="window.hwnd"/>
541      </equals>
542    </msg>
543    <genMsg delay="20">
544      <type>
545        <constValue value="&WM_KILLFOCUS;"/>
546      </type>
547      <target>
548        <msgInfoValue obj="killfocus" msgParam="target"/>
549      </target>
550      <WPARAM>
551        <msgInfoValue obj="setfocus" msgParam="target"/>
552      </WPARAM>
553    </genMsg>
554    <genMsg delay="20">
555      <type>
556        <constValue value="&WM_SETFOCUS;"/>
557      </type>
558      <target>
559        <msgInfoValue obj="setfocus" msgParam="target"/>
560      </target>
561      <WPARAM>
562        <msgInfoValue obj="killfocus" msgParam="target"/>
563      </WPARAM>
564    </genMsg>
565    <genMsg delay="100">
566      <type>
567        <constValue value="&WM_COMMAND;"/>
568      </type>
569      <target>
570        <msgInfoValue obj="cmd" msgParam="target"/>
571      </target>
572      <LPARAM>
573        <msgInfoValue obj="setfocus" msgParam="target"/>
574      </LPARAM>
575      <WPARAM>
576        <paramValue obj="cmd" param="WPARAM"/>
577      </WPARAM>
578    </genMsg>
579  </rule>
580
581
582  <!-- rules regarding keyboard input -->
583  <!-- <rule name="KeyPressed">
584    <msg type="&WM_KEYDOWN;">
585      <store var="keydown"/>
586    </msg>
587    <msg type="&WM_KEYUP;">
588      <store var="keyup"/>
589    </msg>
590    <genMsg delay="20">
591      <storedVar obj="keydown"/>
592    </genMsg>
593    <genMsg delay="100">
594      <storedVar obj="keyup"/>
595    </genMsg>
596    <idinfo>
597      <paramValue obj="keydown" param="key"/>
598    </idinfo>
599  </rule>
600
601  <rule name="SysKeyPressed">
602    <msg type="&WM_SYSKEYDOWN;">
603      <store var="keydown"/>
604    </msg>
605    <msg type="&WM_SYSKEYUP;">
606      <store var="keyup"/>
607    </msg>
608    <genMsg delay="20">
609      <storedVar obj="keydown"/>
610    </genMsg>
611    <genMsg delay="100">
612      <storedVar obj="keyup"/>
613    </genMsg>
614    <idinfo>
615      <paramValue obj="keydown" param="key"/>
616    </idinfo>
617  </rule> -->
618 
619  <!-- Alternate rules -->
620  <rule name="KeyDown">
621    <msg type="&WM_KEYDOWN;">
622      <store var="keydown"/>
623    </msg>
624    <genMsg delay="20">
625      <storedVar obj="keydown"/>
626    </genMsg>
627    <idinfo>
628      <paramValue obj="keydown" param="key"/>
629    </idinfo>
630  </rule>
631
632  <rule name="KeyUp">
633    <msg type="&WM_KEYUP;">
634      <store var="keyup"/>
635    </msg>
636    <genMsg delay="20">
637      <storedVar obj="keyup"/>
638    </genMsg>
639    <idinfo>
640      <paramValue obj="keyup" param="key"/>
641    </idinfo>
642  </rule>
643
644  <rule name="SysKeyDown">
645    <msg type="&WM_SYSKEYDOWN;">
646      <store var="keydown"/>
647    </msg>
648    <genMsg delay="20">
649      <storedVar obj="keydown"/>
650    </genMsg>
651    <idinfo>
652      <paramValue obj="keydown" param="key"/>
653    </idinfo>
654  </rule>
655
656  <rule name="SysKeyUp">
657    <msg type="&WM_SYSKEYUP;">
658      <store var="keyup"/>
659    </msg>
660    <genMsg delay="20">
661      <storedVar obj="keyup"/>
662    </genMsg>
663    <idinfo>
664      <paramValue obj="keyup" param="key"/>
665    </idinfo>
666  </rule>
667
668</rules>
Note: See TracBrowser for help on using the repository browser.