OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
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.