source: trunk/quest-plugin-mfc/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessageType.java @ 619

Last change on this file since 619 was 619, checked in by pharms, 12 years ago
  • adapted implementation to now generate a full GUI model as well as concrete GUI interaction events
  • Property svn:mime-type set to text/plain
File size: 8.4 KB
Line 
1// Module    : $RCSfile: MessageType.java,v $
2// Version   : $Revision: 0.0 $  $Author: Patrick $  $Date: 26.11.2011 14:36:45 $
3// Project   : TaskTreePerformanceTest
4// Creation  : 2011 by Patrick
5// Copyright : Patrick Harms, 2011
6
7package de.ugoe.cs.quest.plugin.mfc.eventcore;
8
9/**
10 * TODO comment
11 *
12 * @version $Revision: $ $Date: $
13 * @author 2011, last modified by $Author: $
14 */
15public enum WindowsMessageType {
16   
17    WM_NULL(0),
18    WM_CREATE(1),
19    WM_DESTROY(2),
20    WM_MOVE(3),
21    WM_SIZE(5),
22    WM_ACTIVATE(6),
23    WM_SETFOCUS(7),
24    WM_KILLFOCUS(8),
25    WM_ENABLE(10),
26    WM_SETREDRAW(11),
27    WM_SETTEXT(12),
28    WM_GETTEXT(13),
29    WM_GETTEXTLENGTH(14),
30    WM_PAINT(15),
31    WM_CLOSE(16),
32    WM_QUERYENDSESSION(17),
33    WM_QUIT(18),
34    WM_QUERYOPEN(19),
35    WM_ERASEBKGND(20),
36    WM_SYSCOLORCHANGE(21),
37    WM_ENDSESSION(22),
38    WM_SHOWWINDOW(24),
39    WM_CTLCOLOR(25),
40    WM_WININICHANGE(26),
41    WM_DEVMODECHANGE(27),
42    WM_ACTIVATEAPP(28),
43    WM_FONTCHANGE(29),
44    WM_TIMECHANGE(30),
45    WM_CANCELMODE(31),
46    WM_SETCURSOR(32),
47    WM_MOUSEACTIVATE(33),
48    WM_CHILDACTIVATE(34),
49    WM_QUEUESYNC(35),
50    WM_GETMINMAXINFO(36),
51    WM_PAINTICON(38),
52    WM_ICONERASEBKGND(39),
53    WM_NEXTDLGCTL(40),
54    WM_SPOOLERSTATUS(42),
55    WM_DRAWITEM(43),
56    WM_MEASUREITEM(44),
57    WM_DELETEITEM(45),
58    WM_VKEYTOITEM(46),
59    WM_CHARTOITEM(47),
60    WM_SETFONT(48),
61    WM_GETFONT(49),
62    WM_SETHOTKEY(50),
63    WM_GETHOTKEY(51),
64    WM_QUERYDRAGICON(55),
65    WM_COMPAREITEM(57),
66    WM_GETOBJECT(61),
67    WM_COMPACTING(65),
68    WM_COMMNOTIFY(68),
69    WM_WINDOWPOSCHANGING(70),
70    WM_WINDOWPOSCHANGED(71),
71    WM_POWER(72),
72    WM_COPYDATA(74),
73    WM_CANCELJOURNAL(75),
74    WM_NOTIFY(78),
75    WM_INPUTLANGCHANGEREQUEST(80),
76    WM_INPUTLANGCHANGE(81),
77    WM_TCARD(82),
78    WM_HELP(83),
79    WM_USERCHANGED(84),
80    WM_NOTIFYFORMAT(85),
81    WM_CONTEXTMENU(123),
82    WM_STYLECHANGING(124),
83    WM_STYLECHANGED(125),
84    WM_DISPLAYCHANGE(126),
85    WM_GETICON(127),
86    WM_SETICON(128),
87    WM_NCCREATE(129),
88    WM_NCDESTROY(130),
89    WM_NCCALCSIZE(131),
90    WM_NCHITTEST(132),
91    WM_NCPAINT(133),
92    WM_NCACTIVATE(134),
93    WM_GETDLGCODE(135),
94    WM_SYNCPAINT(136),
95    WM_NCMOUSEMOVE(160),
96    WM_NCLBUTTONDOWN(161),
97    WM_NCLBUTTONUP(162),
98    WM_NCLBUTTONDBLCLK(163),
99    WM_NCRBUTTONDOWN(164),
100    WM_NCRBUTTONUP(165),
101    WM_NCRBUTTONDBLCLK(166),
102    WM_NCMBUTTONDOWN(167),
103    WM_NCMBUTTONUP(168),
104    WM_NCMBUTTONDBLCLK(169),
105    WM_NCXBUTTONDOWN(171),
106    WM_NCXBUTTONUP(172),
107    WM_NCXBUTTONDBLCLK(173),
108    SBM_SETPOS(224),
109    BM_CLICK(245),
110    WM_INPUT(255),
111    WM_KEYDOWN(256),
112    WM_KEYFIRST(256),
113    WM_KEYUP(257),
114    WM_CHAR(258),
115    WM_DEADCHAR(259),
116    WM_SYSKEYDOWN(260),
117    WM_SYSKEYUP(261),
118    WM_SYSCHAR(262),
119    WM_SYSDEADCHAR(263),
120    WM_KEYLAST(264),
121    WM_WNT_CONVERTREQUESTEX(265),
122    WM_CONVERTREQUEST(266),
123    WM_CONVERTRESULT(267),
124    WM_INTERIM(268),
125    WM_IME_STARTCOMPOSITION(269),
126    WM_IME_ENDCOMPOSITION(270),
127    WM_IME_COMPOSITION(271),
128    WM_IME_KEYLAST(271),
129    WM_INITDIALOG(272),
130    WM_COMMAND(273),
131    WM_SYSCOMMAND(274),
132    WM_TIMER(275),
133    WM_HSCROLL(276),
134    WM_VSCROLL(277),
135    WM_INITMENU(278),
136    WM_INITMENUPOPUP(279),
137    WM_MENUSELECT(287),
138    WM_MENUCHAR(288),
139    WM_ENTERIDLE(289),
140    WM_MENURBUTTONUP(290),
141    WM_MENUDRAG(291),
142    WM_MENUGETOBJECT(292),
143    WM_UNINTMENUPOPUP(293),
144    WM_MENUCOMMAND(294),
145    WM_CHANGEUISTATE(295),
146    WM_UPDATEUISTATE(296),
147    WM_QUERYUISTATE(297),
148    WM_CTLCOLORMSGBOX(306),
149    WM_CTLCOLOREDIT(307),
150    WM_CTLCOLORLISTBOX(308),
151    WM_CTLCOLORBTN(309),
152    WM_CTLCOLORDLG(310),
153    WM_CTLCOLORSCROLLBAR(311),
154    WM_CTLCOLORSTATIC(312),
155    CB_SHOWDROPDOWN(335),
156    LB_SETCURSEL(390),
157    WM_MOUSEFIRST(512),
158    WM_MOUSEMOVE(512),
159    WM_LBUTTONDOWN(513),
160    WM_LBUTTONUP(514),
161    WM_LBUTTONDBLCLK(515),
162    WM_RBUTTONDOWN(516),
163    WM_RBUTTONUP(517),
164    WM_RBUTTONDBLCLK(518),
165    WM_MBUTTONDOWN(519),
166    WM_MBUTTONUP(520),
167    WM_MBUTTONDBLCLK(521),
168    WM_MOUSELAST(521),
169    WM_MOUSEWHEEL(522),
170    WM_XBUTTONDOWN(523),
171    WM_XBUTTONUP(524),
172    WM_XBUTTONDBLCLK(525),
173    WM_USER(1024),
174    CB_SETCURSEL(334),
175    TBM_SETPOS(1029),
176    UDM_SETRANGE(1125),
177    TCM_SETCURSEL(4876);
178
179    /** the numerical representation of the message type */
180    private int mNumber;
181
182    /**
183     * @param number
184     */
185    WindowsMessageType(int number) {
186        mNumber = number;
187    }
188
189    /**
190     * @return Returns the number.
191     */
192    public int getNumber() {
193        return mNumber;
194    }
195
196    /**
197     * <p>
198     * Checks if the type of a message generated is a keyboard interaction.
199     * </p>
200     *
201     * @param msgType
202     *            type of the message
203     * @return true if it is a keyboard interaction; false otherwise
204     */
205    public boolean isKeyMessage() {
206        boolean isKeyMsg = false;
207        switch (this)
208        {
209            case WM_KEYDOWN:
210            case WM_KEYUP:
211            case WM_SYSKEYDOWN:
212            case WM_SYSKEYUP:
213                isKeyMsg = true;
214                break;
215            default:
216                break;
217        }
218        return isKeyMsg;
219    }
220
221    /**
222     * <p>
223     * Checks if the type of a message indicates that the mouse has been pressed down.
224     * </p>
225     *
226     * @param msgType
227     *            type of the message
228     * @return true if it is mouse-down message; false otherwise
229     */
230    public boolean isDownMessage() {
231        boolean isDownMsg = false;
232        switch (this)
233        {
234            case WM_LBUTTONDOWN:
235            case WM_RBUTTONDOWN:
236            case WM_MBUTTONDOWN:
237            case WM_XBUTTONDOWN:
238            case WM_NCLBUTTONDOWN:
239            case WM_NCRBUTTONDOWN:
240            case WM_NCMBUTTONDOWN:
241            case WM_NCXBUTTONDOWN:
242                isDownMsg = true;
243                break;
244            default:
245                break;
246        }
247        return isDownMsg;
248    }
249
250    /**
251     * <p>
252     * Checks if the type of a message indicates that a double click has been performed.
253     * </p>
254     *
255     * @param msgType
256     *            type of the message
257     * @return true if it is a double click message; false otherwise
258     */
259    public boolean isDblclkMessage() {
260        boolean isDblclkMsg = false;
261        switch (this)
262        {
263            case WM_LBUTTONDBLCLK:
264            case WM_RBUTTONDBLCLK:
265            case WM_MBUTTONDBLCLK:
266            case WM_XBUTTONDBLCLK:
267            case WM_NCLBUTTONDBLCLK:
268            case WM_NCRBUTTONDBLCLK:
269            case WM_NCMBUTTONDBLCLK:
270            case WM_NCXBUTTONDBLCLK:
271                isDblclkMsg = true;
272                break;
273            default:
274                break;
275        }
276        return isDblclkMsg;
277    }
278
279    /**
280     * <p>
281     * Checks if the type of a message indicates that the mouse has been released.
282     * </p>
283     *
284     * @param msgType
285     *            type of the message
286     * @return true if it is mouse-up message; false otherwise
287     */
288    public boolean isUpMessage() {
289        boolean isUpMsg = false;
290        switch (this)
291        {
292            case WM_LBUTTONUP:
293            case WM_RBUTTONUP:
294            case WM_MBUTTONUP:
295            case WM_XBUTTONUP:
296            case WM_NCLBUTTONUP:
297            case WM_NCRBUTTONUP:
298            case WM_NCMBUTTONUP:
299            case WM_NCXBUTTONUP:
300                isUpMsg = true;
301                break;
302            default:
303                break;
304        }
305        return isUpMsg;
306    }
307
308    /**
309     *
310     */
311    public static WindowsMessageType parseMessageType(String numberString) {
312        try {
313            int number = Integer.parseInt(numberString);
314            return valueOf(number);
315        }
316        catch (NumberFormatException e) {
317            return WindowsMessageType.valueOf(WindowsMessageType.class, numberString);
318        }
319    }
320
321    /**
322     *
323     */
324    public static WindowsMessageType valueOf(int number) {
325        for (WindowsMessageType type : WindowsMessageType.values()) {
326            if (type.mNumber == number) {
327                return type;
328            }
329        }
330
331        throw new IllegalArgumentException("there is no message type with number " + number);
332    }
333}
Note: See TracBrowser for help on using the repository browser.