2 // TestHelper.cs: Helper class for MWF unit tests.
5 // Everaldo Canuto (ecanuto@novell.com)
7 // (C) 2006 Novell, Inc. (http://www.novell.com)
11 using System
.ComponentModel
;
12 using System
.Windows
.Forms
;
14 using System
.Reflection
;
15 using NUnit
.Framework
;
17 namespace MonoTests
.System
.Windows
.Forms
19 public class TestHelper
26 public static void RemoveWarning (params object [] param
)
28 // Call this function with the unused variable as the parameter.
31 public static CreateParams
GetCreateParams (Control control
)
33 CreateParams cp
= (CreateParams
) control
.GetType().GetProperty("CreateParams", BindingFlags
.NonPublic
| BindingFlags
.Instance
).GetValue(control
, null);
37 public static bool IsStyleSet (Control control
, WindowStyles style
) {
38 CreateParams cp
= GetCreateParams (control
);
39 return ((cp
.Style
& (int) style
) == (int) style
);
42 public static bool IsExStyleSet (Control control
, WindowExStyles style
) {
43 CreateParams cp
= GetCreateParams (control
);
44 return ((cp
.ExStyle
& (int) style
) == (int) style
);
49 public enum WindowStyles
: int {
50 WS_OVERLAPPED
= 0x00000000,
51 WS_POPUP
= unchecked((int)0x80000000),
52 WS_CHILD
= 0x40000000,
53 WS_MINIMIZE
= 0x20000000,
54 WS_VISIBLE
= 0x10000000,
55 WS_DISABLED
= 0x08000000,
56 WS_CLIPSIBLINGS
= 0x04000000,
57 WS_CLIPCHILDREN
= 0x02000000,
58 WS_MAXIMIZE
= 0x01000000,
59 WS_CAPTION
= 0x00C00000,
60 WS_BORDER
= 0x00800000,
61 WS_DLGFRAME
= 0x00400000,
62 WS_VSCROLL
= 0x00200000,
63 WS_HSCROLL
= 0x00100000,
64 WS_SYSMENU
= 0x00080000,
65 WS_THICKFRAME
= 0x00040000,
66 WS_GROUP
= 0x00020000,
67 WS_TABSTOP
= 0x00010000,
68 WS_MINIMIZEBOX
= 0x00020000,
69 WS_MAXIMIZEBOX
= 0x00010000,
70 WS_TILED
= 0x00000000,
71 WS_ICONIC
= 0x20000000,
72 WS_SIZEBOX
= 0x00040000,
73 WS_POPUPWINDOW
= unchecked((int)0x80880000),
74 WS_OVERLAPPEDWINDOW
= WS_OVERLAPPED
| WS_CAPTION
| WS_SYSMENU
| WS_THICKFRAME
| WS_MINIMIZEBOX
| WS_MAXIMIZEBOX
,
75 WS_TILEDWINDOW
= WS_OVERLAPPEDWINDOW
,
76 WS_CHILDWINDOW
= WS_CHILD
80 public enum WindowExStyles
: int {
82 WS_EX_DLGMODALFRAME
= 0x00000001,
83 WS_EX_DRAGDETECT
= 0x00000002,
84 WS_EX_NOPARENTNOTIFY
= 0x00000004,
85 WS_EX_TOPMOST
= 0x00000008,
86 WS_EX_ACCEPTFILES
= 0x00000010,
87 WS_EX_TRANSPARENT
= 0x00000020,
89 WS_EX_MDICHILD
= 0x00000040,
90 WS_EX_TOOLWINDOW
= 0x00000080,
91 WS_EX_WINDOWEDGE
= 0x00000100,
92 WS_EX_CLIENTEDGE
= 0x00000200,
93 WS_EX_CONTEXTHELP
= 0x00000400,
95 WS_EX_RIGHT
= 0x00001000,
96 WS_EX_LEFT
= 0x00000000,
97 WS_EX_RTLREADING
= 0x00002000,
98 WS_EX_LTRREADING
= 0x00000000,
99 WS_EX_LEFTSCROLLBAR
= 0x00004000,
100 WS_EX_LAYERED
= 0x00080000,
101 WS_EX_RIGHTSCROLLBAR
= 0x00000000,
103 WS_EX_CONTROLPARENT
= 0x00010000,
104 WS_EX_STATICEDGE
= 0x00020000,
105 WS_EX_APPWINDOW
= 0x00040000,
106 WS_EX_NOINHERITLAYOUT
= 0x00100000,
107 WS_EX_LAYOUTRTL
= 0x00400000,
108 WS_EX_COMPOSITED
= 0x02000000,
109 WS_EX_NOACTIVATE
= 0x08000000,
111 WS_EX_OVERLAPPEDWINDOW
= WS_EX_WINDOWEDGE
| WS_EX_CLIENTEDGE
,
112 WS_EX_PALETTEWINDOW
= WS_EX_WINDOWEDGE
| WS_EX_TOOLWINDOW
| WS_EX_TOPMOST
121 WM_ACTIVATE
= 0x0006,
122 WM_SETFOCUS
= 0x0007,
123 WM_KILLFOCUS
= 0x0008,
124 // public const uint WM_SETVISIBLE = 0x0009;
126 WM_SETREDRAW
= 0x000B,
129 WM_GETTEXTLENGTH
= 0x000E,
132 WM_QUERYENDSESSION
= 0x0011,
134 WM_QUERYOPEN
= 0x0013,
135 WM_ERASEBKGND
= 0x0014,
136 WM_SYSCOLORCHANGE
= 0x0015,
137 WM_ENDSESSION
= 0x0016,
138 // public const uint WM_SYSTEMERROR = 0x0017;
139 WM_SHOWWINDOW
= 0x0018,
140 WM_CTLCOLOR
= 0x0019,
141 WM_WININICHANGE
= 0x001A,
142 WM_SETTINGCHANGE
= 0x001A,
143 WM_DEVMODECHANGE
= 0x001B,
144 WM_ACTIVATEAPP
= 0x001C,
145 WM_FONTCHANGE
= 0x001D,
146 WM_TIMECHANGE
= 0x001E,
147 WM_CANCELMODE
= 0x001F,
148 WM_SETCURSOR
= 0x0020,
149 WM_MOUSEACTIVATE
= 0x0021,
150 WM_CHILDACTIVATE
= 0x0022,
151 WM_QUEUESYNC
= 0x0023,
152 WM_GETMINMAXINFO
= 0x0024,
153 WM_PAINTICON
= 0x0026,
154 WM_ICONERASEBKGND
= 0x0027,
155 WM_NEXTDLGCTL
= 0x0028,
156 // public const uint WM_ALTTABACTIVE = 0x0029;
157 WM_SPOOLERSTATUS
= 0x002A,
158 WM_DRAWITEM
= 0x002B,
159 WM_MEASUREITEM
= 0x002C,
160 WM_DELETEITEM
= 0x002D,
161 WM_VKEYTOITEM
= 0x002E,
162 WM_CHARTOITEM
= 0x002F,
165 WM_SETHOTKEY
= 0x0032,
166 WM_GETHOTKEY
= 0x0033,
167 // public const uint WM_FILESYSCHANGE = 0x0034;
168 // public const uint WM_ISACTIVEICON = 0x0035;
169 // public const uint WM_QUERYPARKICON = 0x0036;
170 WM_QUERYDRAGICON
= 0x0037,
171 WM_COMPAREITEM
= 0x0039,
172 // public const uint WM_TESTING = 0x003a;
173 // public const uint WM_OTHERWINDOWCREATED = 0x003c;
174 WM_GETOBJECT
= 0x003D,
175 // public const uint WM_ACTIVATESHELLWINDOW = 0x003e;
176 WM_COMPACTING
= 0x0041,
177 WM_COMMNOTIFY
= 0x0044 ,
178 WM_WINDOWPOSCHANGING
= 0x0046,
179 WM_WINDOWPOSCHANGED
= 0x0047,
181 WM_COPYDATA
= 0x004A,
182 WM_CANCELJOURNAL
= 0x004B,
184 WM_INPUTLANGCHANGEREQUEST
= 0x0050,
185 WM_INPUTLANGCHANGE
= 0x0051,
188 WM_USERCHANGED
= 0x0054,
189 WM_NOTIFYFORMAT
= 0x0055,
190 WM_CONTEXTMENU
= 0x007B,
191 WM_STYLECHANGING
= 0x007C,
192 WM_STYLECHANGED
= 0x007D,
193 WM_DISPLAYCHANGE
= 0x007E,
196 // Non-Client messages
198 WM_NCCREATE
= 0x0081,
199 WM_NCDESTROY
= 0x0082,
200 WM_NCCALCSIZE
= 0x0083,
201 WM_NCHITTEST
= 0x0084,
203 WM_NCACTIVATE
= 0x0086,
204 WM_GETDLGCODE
= 0x0087,
205 WM_SYNCPAINT
= 0x0088,
206 // public const uint WM_SYNCTASK = 0x0089;
207 WM_NCMOUSEMOVE
= 0x00A0,
208 WM_NCLBUTTONDOWN
= 0x00A1,
209 WM_NCLBUTTONUP
= 0x00A2,
210 WM_NCLBUTTONDBLCLK
= 0x00A3,
211 WM_NCRBUTTONDOWN
= 0x00A4,
212 WM_NCRBUTTONUP
= 0x00A5,
213 WM_NCRBUTTONDBLCLK
= 0x00A6,
214 WM_NCMBUTTONDOWN
= 0x00A7,
215 WM_NCMBUTTONUP
= 0x00A8,
216 WM_NCMBUTTONDBLCLK
= 0x00A9,
217 // public const uint WM_NCXBUTTONDOWN = 0x00ab;
218 // public const uint WM_NCXBUTTONUP = 0x00ac;
219 // public const uint WM_NCXBUTTONDBLCLK = 0x00ad;
221 WM_KEYFIRST
= 0x0100,
224 WM_DEADCHAR
= 0x0103,
225 WM_SYSKEYDOWN
= 0x0104,
226 WM_SYSKEYUP
= 0x0105,
228 WM_SYSDEADCHAR
= 0x0107,
230 WM_IME_STARTCOMPOSITION
= 0x010D,
231 WM_IME_ENDCOMPOSITION
= 0x010E,
232 WM_IME_COMPOSITION
= 0x010F,
233 WM_IME_KEYLAST
= 0x010F,
234 WM_INITDIALOG
= 0x0110,
236 WM_SYSCOMMAND
= 0x0112,
240 WM_INITMENU
= 0x0116,
241 WM_INITMENUPOPUP
= 0x0117,
242 // public const uint WM_SYSTIMER = 0x0118;
243 WM_MENUSELECT
= 0x011F,
244 WM_MENUCHAR
= 0x0120,
245 WM_ENTERIDLE
= 0x0121,
246 WM_MENURBUTTONUP
= 0x0122,
247 WM_MENUDRAG
= 0x0123,
248 WM_MENUGETOBJECT
= 0x0124,
249 WM_UNINITMENUPOPUP
= 0x0125,
250 WM_MENUCOMMAND
= 0x0126,
251 // public const uint WM_CHANGEUISTATE = 0x0127;
252 // public const uint WM_UPDATEUISTATE = 0x0128;
253 // public const uint WM_QUERYUISTATE = 0x0129;
255 // public const uint WM_LBTRACKPOINT = 0x0131;
256 WM_CTLCOLORMSGBOX
= 0x0132,
257 WM_CTLCOLOREDIT
= 0x0133,
258 WM_CTLCOLORLISTBOX
= 0x0134,
259 WM_CTLCOLORBTN
= 0x0135,
260 WM_CTLCOLORDLG
= 0x0136,
261 WM_CTLCOLORSCROLLBAR
= 0x0137,
262 WM_CTLCOLORSTATIC
= 0x0138,
263 WM_MOUSEMOVE
= 0x0200,
264 WM_MOUSEFIRST
= 0x0200,
265 WM_LBUTTONDOWN
= 0x0201,
266 WM_LBUTTONUP
= 0x0202,
267 WM_LBUTTONDBLCLK
= 0x0203,
268 WM_RBUTTONDOWN
= 0x0204,
269 WM_RBUTTONUP
= 0x0205,
270 WM_RBUTTONDBLCLK
= 0x0206,
271 WM_MBUTTONDOWN
= 0x0207,
272 WM_MBUTTONUP
= 0x0208,
273 WM_MBUTTONDBLCLK
= 0x0209,
274 WM_MOUSEWHEEL
= 0x020A,
275 WM_MOUSELAST
= 0x020D,
276 // public const uint WM_XBUTTONDOWN = 0x020B;
277 // public const uint WM_XBUTTONUP = 0x020C;
278 // public const uint WM_XBUTTONDBLCLK = 0x020D;
279 WM_PARENTNOTIFY
= 0x0210,
280 WM_ENTERMENULOOP
= 0x0211,
281 WM_EXITMENULOOP
= 0x0212,
282 WM_NEXTMENU
= 0x0213,
284 WM_CAPTURECHANGED
= 0x0215,
286 // public const uint WM_POWERBROADCAST = 0x0218;
287 WM_DEVICECHANGE
= 0x0219,
288 WM_MDICREATE
= 0x0220,
289 WM_MDIDESTROY
= 0x0221,
290 WM_MDIACTIVATE
= 0x0222,
291 WM_MDIRESTORE
= 0x0223,
293 WM_MDIMAXIMIZE
= 0x0225,
295 WM_MDICASCADE
= 0x0227,
296 WM_MDIICONARRANGE
= 0x0228,
297 WM_MDIGETACTIVE
= 0x0229,
299 // public const uint WM_DROPOBJECT = 0x022A;
300 // public const uint WM_QUERYDROPOBJECT = 0x022B;
301 // public const uint WM_BEGINDRAG = 0x022C;
302 // public const uint WM_DRAGLOOP = 0x022D;
303 // public const uint WM_DRAGSELECT = 0x022E;
304 // public const uint WM_DRAGMOVE = 0x022F;
305 WM_MDISETMENU
= 0x0230,
306 WM_ENTERSIZEMOVE
= 0x0231,
307 WM_EXITSIZEMOVE
= 0x0232,
308 WM_DROPFILES
= 0x0233,
309 WM_MDIREFRESHMENU
= 0x0234,
310 WM_IME_SETCONTEXT
= 0x0281,
311 WM_IME_NOTIFY
= 0x0282,
312 WM_IME_CONTROL
= 0x0283,
313 WM_IME_COMPOSITIONFULL
= 0x0284,
314 WM_IME_SELECT
= 0x0285,
315 WM_IME_CHAR
= 0x0286,
316 WM_IME_REQUEST
= 0x0288,
317 WM_IME_KEYDOWN
= 0x0290,
318 WM_IME_KEYUP
= 0x0291,
319 WM_NCMOUSEHOVER
= 0x02A0,
320 WM_MOUSEHOVER
= 0x02A1,
321 WM_NCMOUSELEAVE
= 0x02A2,
322 WM_MOUSELEAVE
= 0x02A3,
328 WM_RENDERFORMAT
= 0x0305,
329 WM_RENDERALLFORMATS
= 0x0306,
330 WM_DESTROYCLIPBOARD
= 0x0307,
331 WM_DRAWCLIPBOARD
= 0x0308,
332 WM_PAINTCLIPBOARD
= 0x0309,
333 WM_VSCROLLCLIPBOARD
= 0x030A,
334 WM_SIZECLIPBOARD
= 0x030B,
335 WM_ASKCBFORMATNAME
= 0x030C,
336 WM_CHANGECBCHAIN
= 0x030D,
337 WM_HSCROLLCLIPBOARD
= 0x030E,
338 WM_QUERYNEWPALETTE
= 0x030F,
339 WM_PALETTEISCHANGING
= 0x0310,
340 WM_PALETTECHANGED
= 0x0311,
343 WM_PRINTCLIENT
= 0x0318,
344 WM_HANDHELDFIRST
= 0x0358,
345 WM_HANDHELDLAST
= 0x035F,
346 WM_AFXFIRST
= 0x0360,
348 WM_PENWINFIRST
= 0x0380,
349 WM_PENWINLAST
= 0x038F,
353 // Our "private" ones
354 WM_MOUSE_ENTER
= 0x0401,
355 WM_ASYNC_MESSAGE
= 0x0403,
356 WM_REFLECT
= WM_USER
+ 0x1c00,
357 WM_CLOSE_INTERNAL
= WM_USER
+ 0x1c01