OWLNext    7.0
Borland's Object Windows Library for the modern age
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
windowev.h
Go to the documentation of this file.
1//
2/// \file
3/// Event response table macros for windows messages
4//
5// Part of OWLNext - the next generation Object Windows Library
6// Copyright (c) 1992, 1996 by Borland International, All Rights Reserved
7// Copyright (c) 2013 Vidar Hasfjord
8//
9// For more information, including license details, see
10// http://owlnext.sourceforge.net
11//
12
13#if !defined(OWL_WINDOWEV_H)
14#define OWL_WINDOWEV_H
15
16#include <owl/private/defs.h>
17#if defined(BI_HAS_PRAGMA_ONCE)
18# pragma once
19#endif
20
21#include <owl/eventhan.h>
22
23#if OWL_EV_SIGNATURE_CHECK
24
25//
26/// Response table entry for raw message handling
27/// Uses a dispatcher that just forwards WPARAM and LPARAM.
28///
29/// Required method signature:
30/// TResult method(TParam1, TParam2)
31//
32#define EV_MESSAGE(msgId, method)\
33 OWL_ID_EV_GENERIC_(msgId, msgId, 0, method, ::owl::TDispatchRawArguments)
34
35//
36/// Resonse table entry for a registered message
37///
38/// Required method signature:
39/// TResult method(TParam1, TParam2)
40//
41#define EV_REGISTERED(str, method)\
42 OWL_ID_EV_GENERIC_(WM_NULL, ::RegisterWindowMessage(str), 0, method, ::owl::TDispatchRawArguments)
43
44//
45/// Response table entry for a child ID notification handled at the child's parent
46///
47/// Required method signature:
48/// void method()
49//
50#define EV_CHILD_NOTIFY(id, notifyCode, method)\
51 OWL_ID_EV_GENERIC_(WM_COMMAND, notifyCode, id, method, ::owl::TDispatchChildNotify)
52
53//
54/// Response table entry for a child ID notification handled at the child's parent
55///
56/// The notification code is passed in as an argument; this allows multiple notifications to be
57/// handled by a single response function.
58///
59/// Required method signature:
60/// void method(uint notifyCode)
61//
62#define EV_CHILD_NOTIFY_AND_CODE(id, notifyCode, method)\
63 OWL_ID_EV_GENERIC_(WM_COMMAND, notifyCode, id, method, ::owl::TDispatchChildNotifyWithCode)
64
65//
66/// Generic handler for child ID notification: rather than specify the specific notification codes
67/// you are interested in, ALL notifications from the child are passed to the response function.
68///
69/// Required method signature:
70/// void method(uint notifyCode)
71//
72#define EV_CHILD_NOTIFY_ALL_CODES(id, method)\
73 OWL_ID_EV_GENERIC_(WM_COMMAND, UINT_MAX, id, method, ::owl::TDispatchChildNotifyWithCode)
74
75//
76/// Response table entry for a child ID notification handled at the child
77///
78/// Required method signature:
79/// void method()
80//
81#define EV_NOTIFY_AT_CHILD(notifyCode, method)\
82 OWL_ID_EV_GENERIC_(WM_COMMAND, notifyCode, UINT_MAX, method, ::owl::TDispatchChildNotify)
83
84//
85/// Response table entry for a menu/accelerator/push button message
86///
87/// Required method signature:
88/// void method()
89//
90#define EV_COMMAND(id, method)\
91 OWL_ID_EV_GENERIC_(WM_COMMAND, 0, id, method, ::owl::TDispatchCommand)
92
93//
94/// Response table entry for a menu/accelerator/push button message
95/// The menu id is passed in as an argument; this allows multiple commands to be handled by a
96/// single response function.
97///
98/// Required method signature:
99/// void method(uint commandId)
100//
101#define EV_COMMAND_AND_ID(id, method)\
102 OWL_ID_EV_GENERIC_(WM_COMMAND, 0, id, method, ::owl::TDispatchCommandWithId)
103
104#else
105
106//
107/// Response table entry for raw message handling
108/// Uses a dispatcher that just forwards WPARAM and LPARAM.
109///
110/// Required method signature:
111/// TResult method(TParam1, TParam2)
112//
113#define EV_MESSAGE(message, method)\
114 {{static_cast<::owl::TMsgId>(message)}, 0, OWL_DISPATCH(::owl::DispatchRawArguments, method)}
115
116//
117/// Resonse table entry for a registered message
118///
119/// Required method signature:
120/// TResult method(TParam1, TParam2)
121//
122#define EV_REGISTERED(str, method)\
123 EV_MESSAGE(::RegisterWindowMessage(str), method)
124
125//
126/// Response table entry for a child ID notification handled at the child's parent
127///
128/// Required method signature:
129/// void method()
130//
131#define EV_CHILD_NOTIFY(id, notifyCode, method)\
132 {{static_cast<::owl::uint>(notifyCode)}, static_cast<::owl::uint>(id), OWL_DISPATCH(::owl::DispatchChildNotify, method)}
133
134//
135/// Response table entry for a child ID notification handled at the child's parent
136///
137/// The notification code is passed in as an argument; this allows multiple notifications to be
138/// handled by a single response function.
139///
140/// Required method signature:
141/// void method(uint notifyCode)
142//
143#define EV_CHILD_NOTIFY_AND_CODE(id, notifyCode, method)\
144 {{static_cast<::owl::uint>(notifyCode)}, static_cast<::owl::uint>(id), OWL_DISPATCH(::owl::DispatchChildNotifyWithCode, method)}
145
146//
147/// Generic handler for child ID notification: rather than specify the specific notification codes
148/// you are interested in, ALL notifications from the child are passed to the response function.
149///
150/// Required method signature:
151/// void method(uint notifyCode)
152//
153#define EV_CHILD_NOTIFY_ALL_CODES(id, method)\
154 {{UINT_MAX}, static_cast<::owl::uint>(id), OWL_DISPATCH(::owl::DispatchChildNotifyWithCode, method)}
155
156//
157/// Response table entry for a child ID notification handled at the child
158///
159/// Required method signature:
160/// void method()
161//
162#define EV_NOTIFY_AT_CHILD(notifyCode, method)\
163 {{static_cast<::owl::uint>(notifyCode)}, UINT_MAX, OWL_DISPATCH(::owl::DispatchChildNotify, method)}
164
165//
166/// Response table entry for a menu/accelerator/push button message
167///
168/// Required method signature:
169/// void method()
170//
171#define EV_COMMAND(id, method)\
172 {{0}, static_cast<::owl::uint>(id), OWL_DISPATCH(::owl::DispatchCommand, method)}
173
174//
175/// Response table entry for a menu/accelerator/push button message
176/// The menu id is passed in as an argument; this allows multiple commands to be handled by a
177/// single response function.
178///
179/// Required method signature:
180/// void method(uint commandId)
181//
182#define EV_COMMAND_AND_ID(id, method)\
183 {{0}, static_cast<::owl::uint>(id), OWL_DISPATCH(::owl::DispatchCommandWithId, method)}
184
185#endif
186
187//
188/// Response table entry for enabling a command
189///
190/// Required method signature:
191/// void method(TCommandEnabler&)
192//
193#define EV_COMMAND_ENABLE(id, method)\
194 OWL_ID_EV_(WM_COMMAND_ENABLE, id, method)
195
196//
197/// \name Document Manager Messages
198/// These macros handle messages generated by the document manager:
199/// @{
200
201#define EV_OWLDOCUMENT(id, method) OWL_ID_EV_(WM_OWLDOCUMENT, id, method)
202#define EV_OWLVIEW(id, method) OWL_ID_EV_(WM_OWLVIEW, id, method)
203#define EV_OWLNOTIFY(id, method) OWL_ID_EV_(WM_OWLNOTIFY, id, method)
204#define EV_VIEWNOTIFY(id, method) EV_OWLNOTIFY(id, method)
205
206/// @}
207
208#define EV_WM_CHILDINVALID OWL_EV_(WM_CHILDINVALID, EvChildInvalid)
209
210//
211/// Response table entry for the OWL frame sizing message
212//
213#define EV_OWLFRAMESIZE OWL_EV_(WM_OWLFRAMESIZE, EvOwlFrameSize)
214
215//
216/// Response table entry for the OWL Docking message
217//
218#define EV_WM_OWLWINDOWDOCKED OWL_EV_(WM_OWLWINDOWDOCKED, EvOwlWindowDocked)
219#define EV_OWLWINDOWDOCKED EV_WM_OWLWINDOWDOCKED
220
221//
222/// Response table entry for the OWL Help manager message
223//
224#define EV_OWLHELPHIT OWL_EV_(WM_OWLHELPHIT, EvHelpHit)
225
226/// \name Standard Windows Messages
227/// These macros handle Windows messages. To determine the name of the Windows message that
228/// corresponds to the macro, remove the EV_ prefix. For example, WM_ACTIVATE is the name of the
229/// Windows message that the EV_WM_ACTIVATE macro handles. These macros take no arguments. They
230/// all assume the event handler function has a corresponding predefined name. For example, the
231/// predefined event handler function name for WM_ACTIVATE is EvActivate.
232///
233/// \note Messages WM_COMMAND and WM_NOTIFY are not dispatched directly. Instead, they are handled
234/// in the virtual functions TWindow::EvCommand and TWindow::EvNotify, respectively. There the
235/// messages are partly decoded, identifying the notification code and sender, and then dispatched
236/// accordingly, i.e. the response tables are searched for an entry that matches the notification
237/// and/or sender. Response table entries for notification messages are created using separate sets
238/// of macros, such as EV_COMMAND, EV_BN_CLICKED, EV_NM_CHAR, EV_EN_SELCHANGE. If you need to
239/// handle WM_COMMAND or WM_NOTIFY directly, override TWindow::EvCommand or TWindow::EvNotify,
240/// respectively.
241/// @{
242
243#define EV_WM_ACTIVATE OWL_EV_(WM_ACTIVATE, EvActivate)
244#define EV_WM_ACTIVATEAPP OWL_EV_(WM_ACTIVATEAPP, EvActivateApp)
245#define EV_WM_ASKCBFORMATNAME OWL_EV_(WM_ASKCBFORMATNAME, EvAskCBFormatName)
246#define EV_WM_CANCELMODE OWL_EV_(WM_CANCELMODE, EvCancelMode)
247#define EV_WM_CAPTURECHANGED OWL_EV_(WM_CAPTURECHANGED, EvCaptureChanged)
248#define EV_WM_CHANGECBCHAIN OWL_EV_(WM_CHANGECBCHAIN, EvChangeCBChain)
249#define EV_WM_CHAR OWL_EV_(WM_CHAR, EvChar)
250#define EV_WM_CHARTOITEM OWL_EV_(WM_CHARTOITEM, EvCharToItem)
251#define EV_WM_CHILDACTIVATE OWL_EV_(WM_CHILDACTIVATE, EvChildActivate)
252#define EV_WM_CLOSE OWL_EV_(WM_CLOSE, EvClose)
253#define EV_WM_COMPACTING OWL_EV_(WM_COMPACTING, EvCompacting)
254#define EV_WM_COMPAREITEM OWL_EV_(WM_COMPAREITEM, EvCompareItem)
255#define EV_WM_CONTEXTMENU OWL_EV_(WM_CONTEXTMENU, EvContextMenu)
256#define EV_WM_COPYDATA OWL_EV_(WM_COPYDATA, EvCopyData)
257#define EV_WM_CREATE OWL_EV_(WM_CREATE, EvCreate)
258#define EV_WM_CTLCOLORBTN(method) OWL_EV_(WM_CTLCOLORBTN, method)
259#define EV_WM_CTLCOLOREDIT(method) OWL_EV_(WM_CTLCOLOREDIT, method)
260#define EV_WM_CTLCOLORDLG(method) OWL_EV_(WM_CTLCOLORDLG, method)
261#define EV_WM_CTLCOLORLISTBOX(method) OWL_EV_(WM_CTLCOLORLISTBOX, method)
262
263#if defined(OWL5_COMPAT)
264
265//
266/// This macro is deprecated.
267/// \sa TDispatch<WM_CTLCOLORMSGBOX>.
268//
269#define EV_WM_CTLCOLORMSGBOX(method) OWL_EV_(WM_CTLCOLORMSGBOX, method)
270
271#endif
272
273#define EV_WM_CTLCOLORSCROLLBAR(method) OWL_EV_(WM_CTLCOLORSCROLLBAR, method)
274#define EV_WM_CTLCOLORSTATIC(method) OWL_EV_(WM_CTLCOLORSTATIC, method)
275#define EV_WM_CUT OWL_EV_(WM_CUT, EvCut)
276#define EV_WM_DEADCHAR OWL_EV_(WM_DEADCHAR, EvDeadChar)
277#define EV_WM_DELETEITEM OWL_EV_(WM_DELETEITEM, EvDeleteItem)
278#define EV_WM_DESTROY OWL_EV_(WM_DESTROY, EvDestroy)
279#define EV_WM_DESTROYCLIPBOARD OWL_EV_(WM_DESTROYCLIPBOARD, EvDestroyClipboard)
280#define EV_WM_DEVICECHANGE OWL_EV_(WM_DEVICECHANGE, EvDeviceChange)
281#define EV_WM_DEVMODECHANGE OWL_EV_(WM_DEVMODECHANGE, EvDevModeChange)
282#define EV_WM_DISPLAYCHANGE OWL_EV_(WM_DISPLAYCHANGE, EvDisplayChange)
283#define EV_WM_DRAWCLIPBOARD OWL_EV_(WM_DRAWCLIPBOARD, EvDrawClipboard)
284#define EV_WM_DRAWITEM OWL_EV_(WM_DRAWITEM, EvDrawItem)
285#define EV_WM_DROPFILES OWL_EV_(WM_DROPFILES, EvDropFiles)
286#define EV_WM_ENABLE OWL_EV_(WM_ENABLE, EvEnable)
287#define EV_WM_ENDSESSION OWL_EV_(WM_ENDSESSION, EvEndSession)
288#define EV_WM_ENTERIDLE OWL_EV_(WM_ENTERIDLE, EvEnterIdle)
289#define EV_WM_ENTERMENULOOP OWL_EV_(WM_ENTERMENULOOP, EvEnterMenuLoop)
290#define EV_WM_ENTERSIZEMOVE OWL_EV_(WM_ENTERSIZEMOVE, EvEnterSizeMove)
291#define EV_WM_ERASEBKGND OWL_EV_(WM_ERASEBKGND, EvEraseBkgnd)
292#define EV_WM_EXITMENULOOP OWL_EV_(WM_EXITMENULOOP, EvExitMenuLoop)
293#define EV_WM_EXITSIZEMOVE OWL_EV_(WM_EXITSIZEMOVE, EvExitSizeMove)
294#define EV_WM_FONTCHANGE OWL_EV_(WM_FONTCHANGE, EvFontChange)
295#define EV_WM_GETDLGCODE OWL_EV_(WM_GETDLGCODE, EvGetDlgCode)
296#define EV_WM_GETFONT OWL_EV_(WM_GETFONT, EvGetFont)
297#define EV_WM_GETICON OWL_EV_(WM_GETICON, EvGetIcon)
298#define EV_WM_GETMINMAXINFO OWL_EV_(WM_GETMINMAXINFO, EvGetMinMaxInfo)
299#define EV_WM_GETTEXT OWL_EV_(WM_GETTEXT, EvGetText)
300#define EV_WM_GETTEXTLENGTH OWL_EV_(WM_GETTEXTLENGTH, EvGetTextLength)
301#define EV_WM_HELP OWL_EV_(WM_HELP, EvHelp)
302#define EV_WM_HOTKEY OWL_EV_(WM_HOTKEY, EvHotKey)
303#define EV_WM_HSCROLL OWL_EV_(WM_HSCROLL, EvHScroll)
304#define EV_WM_HSCROLLCLIPBOARD OWL_EV_(WM_HSCROLLCLIPBOARD, EvHScrollClipboard)
305#define EV_WM_INITMENU OWL_EV_(WM_INITMENU, EvInitMenu)
306#define EV_WM_INITMENUPOPUP OWL_EV_(WM_INITMENUPOPUP, EvInitMenuPopup)
307#define EV_WM_INPUTLANGCHANGE OWL_EV_(WM_INPUTLANGCHANGE, EvInputLangChange)
308#define EV_WM_INPUTLANGCHANGEREQUEST OWL_EV_(WM_INPUTLANGCHANGEREQUEST, EvInputLangChangeRequest)
309#define EV_WM_KEYDOWN OWL_EV_(WM_KEYDOWN, EvKeyDown)
310#define EV_WM_KEYUP OWL_EV_(WM_KEYUP, EvKeyUp)
311#define EV_WM_KILLFOCUS OWL_EV_(WM_KILLFOCUS, EvKillFocus)
312#define EV_WM_LBUTTONDBLCLK OWL_EV_(WM_LBUTTONDBLCLK, EvLButtonDblClk)
313#define EV_WM_LBUTTONDOWN OWL_EV_(WM_LBUTTONDOWN, EvLButtonDown)
314#define EV_WM_LBUTTONUP OWL_EV_(WM_LBUTTONUP, EvLButtonUp)
315#define EV_WM_MBUTTONDBLCLK OWL_EV_(WM_MBUTTONDBLCLK, EvMButtonDblClk)
316#define EV_WM_MBUTTONDOWN OWL_EV_(WM_MBUTTONDOWN, EvMButtonDown)
317#define EV_WM_MBUTTONUP OWL_EV_(WM_MBUTTONUP, EvMButtonUp)
318#define EV_WM_MDIACTIVATE OWL_EV_(WM_MDIACTIVATE, EvMDIActivate)
319#define EV_WM_MDICASCADE OWL_EV_(WM_MDICASCADE, EvMDICascade)
320#define EV_WM_MDICREATE OWL_EV_(WM_MDICREATE, EvMDICreate)
321#define EV_WM_MDIDESTROY OWL_EV_(WM_MDIDESTROY, EvMDIDestroy)
322#define EV_WM_MEASUREITEM OWL_EV_(WM_MEASUREITEM, EvMeasureItem)
323#define EV_WM_MENUCHAR OWL_EV_(WM_MENUCHAR, EvMenuChar)
324#define EV_WM_MENUSELECT OWL_EV_(WM_MENUSELECT, EvMenuSelect)
325#define EV_WM_MOUSEACTIVATE OWL_EV_(WM_MOUSEACTIVATE, EvMouseActivate)
326#define EV_WM_MOUSEHOVER OWL_EV_(WM_MOUSEHOVER, EvMouseHover)
327#define EV_WM_MOUSEHWHEEL OWL_EV_(WM_MOUSEHWHEEL, EvMouseHWheel)
328#define EV_WM_MOUSELEAVE OWL_EV_(WM_MOUSELEAVE, EvMouseLeave)
329#define EV_WM_MOUSEMOVE OWL_EV_(WM_MOUSEMOVE, EvMouseMove)
330#define EV_WM_MOUSEWHEEL OWL_EV_(WM_MOUSEWHEEL, EvMouseWheel)
331#define EV_WM_MOVE OWL_EV_(WM_MOVE, EvMove)
332#define EV_WM_MOVING OWL_EV_(WM_MOVING, EvMoving)
333#define EV_WM_NCACTIVATE OWL_EV_(WM_NCACTIVATE, EvNCActivate)
334#define EV_WM_NCCALCSIZE OWL_EV_(WM_NCCALCSIZE, EvNCCalcSize)
335#define EV_WM_NCCREATE OWL_EV_(WM_NCCREATE, EvNCCreate)
336#define EV_WM_NCDESTROY OWL_EV_(WM_NCDESTROY, EvNCDestroy)
337#define EV_WM_NCHITTEST OWL_EV_(WM_NCHITTEST, EvNCHitTest)
338#define EV_WM_NCLBUTTONDBLCLK OWL_EV_(WM_NCLBUTTONDBLCLK, EvNCLButtonDblClk)
339#define EV_WM_NCLBUTTONDOWN OWL_EV_(WM_NCLBUTTONDOWN, EvNCLButtonDown)
340#define EV_WM_NCLBUTTONUP OWL_EV_(WM_NCLBUTTONUP, EvNCLButtonUp)
341#define EV_WM_NCMBUTTONDBLCLK OWL_EV_(WM_NCMBUTTONDBLCLK, EvNCMButtonDblClk)
342#define EV_WM_NCMBUTTONDOWN OWL_EV_(WM_NCMBUTTONDOWN, EvNCMButtonDown)
343#define EV_WM_NCMBUTTONUP OWL_EV_(WM_NCMBUTTONUP, EvNCMButtonUp)
344#define EV_WM_NCMOUSEHOVER OWL_EV_(WM_NCMOUSEHOVER, EvNCMouseHover)
345#define EV_WM_NCMOUSELEAVE OWL_EV_(WM_NCMOUSELEAVE, EvNCMouseLeave)
346#define EV_WM_NCMOUSEMOVE OWL_EV_(WM_NCMOUSEMOVE, EvNCMouseMove)
347#define EV_WM_NCPAINT OWL_EV_(WM_NCPAINT, EvNCPaint)
348#define EV_WM_NCRBUTTONDBLCLK OWL_EV_(WM_NCRBUTTONDBLCLK, EvNCRButtonDblClk)
349#define EV_WM_NCRBUTTONDOWN OWL_EV_(WM_NCRBUTTONDOWN, EvNCRButtonDown)
350#define EV_WM_NCRBUTTONUP OWL_EV_(WM_NCRBUTTONUP, EvNCRButtonUp)
351#define EV_WM_NEXTDLGCTL OWL_EV_(WM_NEXTDLGCTL, EvNextDlgCtl)
352#define EV_WM_NEXTMENU OWL_EV_(WM_NEXTMENU, EvNextMenu)
353#define EV_WM_PAINT OWL_EV_(WM_PAINT, EvPaint)
354#define EV_WM_PAINTCLIPBOARD OWL_EV_(WM_PAINTCLIPBOARD, EvPaintClipboard)
355#define EV_WM_PALETTECHANGED OWL_EV_(WM_PALETTECHANGED, EvPaletteChanged)
356#define EV_WM_PALETTEISCHANGING OWL_EV_(WM_PALETTEISCHANGING, EvPaletteIsChanging)
357#define EV_WM_PARENTNOTIFY OWL_EV_(WM_PARENTNOTIFY, EvParentNotify)
358#define EV_WM_PASTE OWL_EV_(WM_PASTE, EvPaste)
359#define EV_WM_POWERBROADCAST OWL_EV_(WM_POWERBROADCAST, EvPowerBroadCast)
360#define EV_WM_PRINT OWL_EV_(WM_PRINT, EvPrint)
361#define EV_WM_PRINTCLIENT OWL_EV_(WM_PRINTCLIENT, EvPrintClient)
362#define EV_WM_QUERYDRAGICON OWL_EV_(WM_QUERYDRAGICON, EvQueryDragIcon)
363#define EV_WM_QUERYENDSESSION OWL_EV_(WM_QUERYENDSESSION, EvQueryEndSession)
364#define EV_WM_QUERYNEWPALETTE OWL_EV_(WM_QUERYNEWPALETTE, EvQueryNewPalette)
365#define EV_WM_QUERYOPEN OWL_EV_(WM_QUERYOPEN, EvQueryOpen)
366#define EV_WM_QUEUESYNC OWL_EV_(WM_QUEUESYNC, EvQueueSync)
367#define EV_WM_RBUTTONDBLCLK OWL_EV_(WM_RBUTTONDBLCLK, EvRButtonDblClk)
368#define EV_WM_RBUTTONDOWN OWL_EV_(WM_RBUTTONDOWN, EvRButtonDown)
369#define EV_WM_RBUTTONUP OWL_EV_(WM_RBUTTONUP, EvRButtonUp)
370#define EV_WM_RENDERALLFORMATS OWL_EV_(WM_RENDERALLFORMATS, EvRenderAllFormats)
371#define EV_WM_RENDERFORMAT OWL_EV_(WM_RENDERFORMAT, EvRenderFormat)
372#define EV_WM_SETCURSOR OWL_EV_(WM_SETCURSOR, EvSetCursor)
373#define EV_WM_SETICON OWL_EV_(WM_SETICON, EvSetIcon)
374#define EV_WM_SETFOCUS OWL_EV_(WM_SETFOCUS, EvSetFocus)
375#define EV_WM_SETFONT OWL_EV_(WM_SETFONT, EvSetFont)
376#define EV_WM_SETREDRAW OWL_EV_(WM_SETREDRAW, EvSetRedraw)
377#define EV_WM_SETTEXT OWL_EV_(WM_SETTEXT, EvSetText)
378#define EV_WM_SETTINGCHANGE OWL_EV_(WM_SETTINGCHANGE, EvSettingChange)
379#define EV_WM_SHOWWINDOW OWL_EV_(WM_SHOWWINDOW, EvShowWindow)
380#define EV_WM_SIZE OWL_EV_(WM_SIZE, EvSize)
381#define EV_WM_SIZECLIPBOARD OWL_EV_(WM_SIZECLIPBOARD, EvSizeClipboard)
382#define EV_WM_SIZING OWL_EV_(WM_SIZING, EvSizing)
383#define EV_WM_SPOOLERSTATUS OWL_EV_(WM_SPOOLERSTATUS, EvSpoolerStatus)
384#define EV_WM_STYLECHANGED OWL_EV_(WM_STYLECHANGED, EvStyleChanged)
385#define EV_WM_STYLECHANGING OWL_EV_(WM_STYLECHANGING, EvStyleChanging)
386#define EV_WM_SYSCHAR OWL_EV_(WM_SYSCHAR, EvSysChar)
387#define EV_WM_SYSCOLORCHANGE OWL_EV_(WM_SYSCOLORCHANGE, EvSysColorChange)
388#define EV_WM_SYSCOMMAND OWL_EV_(WM_SYSCOMMAND, EvSysCommand)
389#define EV_WM_SYSDEADCHAR OWL_EV_(WM_SYSDEADCHAR, EvSysDeadChar)
390#define EV_WM_SYSKEYDOWN OWL_EV_(WM_SYSKEYDOWN, EvSysKeyDown)
391#define EV_WM_SYSKEYUP OWL_EV_(WM_SYSKEYUP, EvSysKeyUp)
392#define EV_WM_TCARD OWL_EV_(WM_TCARD, EvTCard)
393#define EV_WM_THEMECHANGED OWL_EV_(WM_THEMECHANGED, EvThemeChanged)
394#define EV_WM_TIMECHANGE OWL_EV_(WM_TIMECHANGE, EvTimeChange)
395#define EV_WM_TIMER OWL_EV_(WM_TIMER, EvTimer)
396#define EV_WM_UNDO OWL_EV_(WM_UNDO, EvUndo)
397#define EV_WM_USERCHANGED OWL_EV_(WM_USERCHANGED, EvUserChanged)
398#define EV_WM_VKEYTOITEM OWL_EV_(WM_VKEYTOITEM, EvVKeyToItem)
399#define EV_WM_VSCROLL OWL_EV_(WM_VSCROLL, EvVScroll)
400#define EV_WM_VSCROLLCLIPBOARD OWL_EV_(WM_VSCROLLCLIPBOARD, EvVScrollClipboard)
401#define EV_WM_WINDOWPOSCHANGED OWL_EV_(WM_WINDOWPOSCHANGED, EvWindowPosChanged)
402#define EV_WM_WINDOWPOSCHANGING OWL_EV_(WM_WINDOWPOSCHANGING, EvWindowPosChanging)
403
404#if defined(OWL5_COMPAT)
405
406//
407/// The WM_CTLCOLOR is an obsolete Win16 message, superceded by the more specific messages
408/// WM_CTLCOLORBTN etc. But for backwards compatibility we simulate an entry for it here;
409/// implemented by directing all the new messages to the same handler.
410//
411#define EV_WM_CTLCOLOR\
412 EV_WM_CTLCOLORBTN(EvCtlColor),\
413 EV_WM_CTLCOLOREDIT(EvCtlColor),\
414 EV_WM_CTLCOLORDLG(EvCtlColor),\
415 EV_WM_CTLCOLORLISTBOX(EvCtlColor),\
416 EV_WM_CTLCOLORMSGBOX(EvCtlColor),\
417 EV_WM_CTLCOLORSCROLLBAR(EvCtlColor),\
418 EV_WM_CTLCOLORSTATIC(EvCtlColor)
419
420//
421// WM_POWER is an obsolete Win16 message. Applications should use the WM_POWERBROADCAST message.
422//
423#define EV_WM_POWER OWL_EV_(WM_POWER, EvPower)
424
425//
426// WM_SETTINGCHANGE supercedes WM_WININICHANGE.
427// See Decode_WM_WININICHANGE.
428//
429#define EV_WM_WININICHANGE\
430 {{WM_WININICHANGE}, 0, OWL_DISPATCH(::owl::Decode_WM_WININICHANGE, EvWinIniChange)}
431
432#endif
433
434/// @}
435/// \name Dialog messages
436/// @{
437
438#define EV_DM_GETDEFID OWL_EV_(DM_GETDEFID, EvGetDefId)
439#define EV_DM_SETDEFID OWL_EV_(DM_SETDEFID, EvSetDefId)
440#define EV_DM_REPOSITION OWL_EV_(DM_REPOSITION, EvReposition)
441
442/// @}
443/// \name Button Notification Messages
444/// @{
445
446#define EV_BN_CLICKED(id, method) EV_CHILD_NOTIFY(id, BN_CLICKED, method)
447#define EV_BN_DISABLE(id, method) EV_CHILD_NOTIFY(id, BN_DISABLE, method)
448#define EV_BN_DOUBLECLICKED(id, method) EV_CHILD_NOTIFY(id, BN_DOUBLECLICKED, method)
449#define EV_BN_HILITE(id, method) EV_CHILD_NOTIFY(id, BN_HILITE, method)
450#define EV_BN_PAINT(id, method) EV_CHILD_NOTIFY(id, BN_PAINT, method)
451#define EV_BN_UNHILITE(id, method) EV_CHILD_NOTIFY(id, BN_UNHILITE, method)
452#define EV_BN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, BN_KILLFOCUS, method)
453#define EV_BN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, BN_SETFOCUS, method)
454
455/// @}
456/// \name Combo Box Notification Messages
457/// @{
458
459#define EV_CBN_CLOSEUP(id, method) EV_CHILD_NOTIFY(id, CBN_CLOSEUP, method)
460#define EV_CBN_DBLCLK(id, method) EV_CHILD_NOTIFY(id, CBN_DBLCLK, method)
461#define EV_CBN_DROPDOWN(id, method) EV_CHILD_NOTIFY(id, CBN_DROPDOWN, method)
462#define EV_CBN_EDITCHANGE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITCHANGE, method)
463#define EV_CBN_EDITUPDATE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITUPDATE, method)
464#define EV_CBN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, CBN_ERRSPACE, method)
465#define EV_CBN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, CBN_KILLFOCUS, method)
466#define EV_CBN_SELCHANGE(id, method) EV_CHILD_NOTIFY(id, CBN_SELCHANGE, method)
467#define EV_CBN_SELENDCANCEL(id, method) EV_CHILD_NOTIFY(id, CBN_SELENDCANCEL, method)
468#define EV_CBN_SELENDOK(id, method) EV_CHILD_NOTIFY(id, CBN_SELENDOK, method)
469#define EV_CBN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, CBN_SETFOCUS, method)
470
471/// @}
472/// \name Edit Control Notification Messages
473/// @{
474
475#define EV_EN_CHANGE(id, method) EV_CHILD_NOTIFY(id, EN_CHANGE, method)
476#define EV_EN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, EN_ERRSPACE, method)
477#define EV_EN_HSCROLL(id, method) EV_CHILD_NOTIFY(id, EN_HSCROLL, method)
478#define EV_EN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, EN_KILLFOCUS, method)
479#define EV_EN_MAXTEXT(id, method) EV_CHILD_NOTIFY(id, EN_MAXTEXT, method)
480#define EV_EN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, EN_SETFOCUS, method)
481#define EV_EN_UPDATE(id, method) EV_CHILD_NOTIFY(id, EN_UPDATE, method)
482#define EV_EN_VSCROLL(id, method) EV_CHILD_NOTIFY(id, EN_VSCROLL, method)
483
484/// @}
485/// \name List Box Notification Messages
486/// @{
487
488#define EV_LBN_DBLCLK(id, method) EV_CHILD_NOTIFY(id, LBN_DBLCLK, method)
489#define EV_LBN_ERRSPACE(id, method) EV_CHILD_NOTIFY(id, LBN_ERRSPACE, method)
490#define EV_LBN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, LBN_KILLFOCUS, method)
491#define EV_LBN_SELCANCEL(id, method) EV_CHILD_NOTIFY(id, LBN_SELCANCEL, method)
492#define EV_LBN_SELCHANGE(id, method) EV_CHILD_NOTIFY(id, LBN_SELCHANGE, method)
493#define EV_LBN_SETFOCUS(id, method) EV_CHILD_NOTIFY(id, LBN_SETFOCUS, method)
494
495/// @}
496/// \name Scroll Bar Notification Messages
497/// @{
498
499#define EV_SB_LINEDOWN(id, method) EV_CHILD_NOTIFY(id, SB_LINEDOWN, method)
500#define EV_SB_LINEUP(id, method) EV_CHILD_NOTIFY(id, SB_LINEUP, method)
501#define EV_SB_PAGEDOWN(id, method) EV_CHILD_NOTIFY(id, SB_PAGEDOWN, method)
502#define EV_SB_PAGEUP(id, method) EV_CHILD_NOTIFY(id, SB_PAGEUP, method)
503#define EV_SB_TOP(id, method) EV_CHILD_NOTIFY(id, SB_TOP, method)
504#define EV_SB_BOTTOM(id, method) EV_CHILD_NOTIFY(id, SB_BOTTOM, method)
505#define EV_SB_THUMBPOSITION(id, method) EV_CHILD_NOTIFY(id, SB_THUMBPOSITION, method)
506#define EV_SB_ENDSCROLL(id, method) EV_CHILD_NOTIFY(id, SB_ENDSCROLL, method)
507#define EV_SB_BEGINTRACK(id, method) EV_CHILD_NOTIFY(id, 9, method)
508
509/// @}
510/// \name Static Control Notification Messages
511/// \note These notifications are only sent if the control has the SS_NOTIFY style.
512/// @{
513
514#define EV_STN_DBLCLK(id, method) EV_CHILD_NOTIFY(id, STN_DBLCLK, method)
515#define EV_STN_CLICKED(id, method) EV_CHILD_NOTIFY(id, STN_CLICKED, method)
516#define EV_STN_DISABLE(id, method) EV_CHILD_NOTIFY(id, STN_DISABLE, method)
517#define EV_STN_ENABLE(id, method) EV_CHILD_NOTIFY(id, STN_ENABLE, method)
518
519/// @}
520
521#endif
Definition of TEventHandler and related classes & macros.