Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
1c628e06
Commit
1c628e06
authored
Sep 06, 2002
by
Dimitrie O. Paun
Committed by
Alexandre Julliard
Sep 06, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add generic notification support for the common controls.
parent
d969605b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
131 additions
and
0 deletions
+131
-0
comctl32.h
dlls/comctl32/comctl32.h
+131
-0
No files found.
dlls/comctl32/comctl32.h
View file @
1c628e06
...
...
@@ -4,6 +4,7 @@
*
* Copyright 1999 Thuy Nguyen
* Copyright 1999 Eric Kohl
* Copyright 2002 Dimitrie O. Paun
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
...
...
@@ -23,6 +24,8 @@
#ifndef __WINE_COMCTL32_H
#define __WINE_COMCTL32_H
#include "commctrl.h"
extern
HMODULE
COMCTL32_hModule
;
extern
HBRUSH
COMCTL32_hPattern55AABrush
;
...
...
@@ -125,4 +128,132 @@ BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc);
#define WINE_FILEVERSION 5, COMCTL32_VERSION_MINOR, 0, 0
#define WINE_FILEVERSIONSTR "5.00"
/* Notification support */
inline
static
LRESULT
send_notify
(
HWND
hwnd
,
UINT
code
,
NMHDR
*
hdr
)
{
hdr
->
hwndFrom
=
hwnd
;
hdr
->
idFrom
=
GetWindowLongW
(
hwnd
,
GWL_ID
);
hdr
->
code
=
code
;
return
SendMessageW
(
GetParent
(
hwnd
),
WM_NOTIFY
,
hdr
->
idFrom
,
(
LPARAM
)
hdr
);
}
inline
static
LRESULT
hwnd_notify
(
HWND
hwnd
,
UINT
code
)
{
NMHDR
hdr
;
return
send_notify
(
hwnd
,
code
,
&
hdr
);
}
inline
static
BOOL
hwnd_notify_char
(
HWND
hwnd
,
UINT
ch
,
DWORD
prev
,
DWORD
next
)
{
NMCHAR
nmch
;
nmch
.
ch
=
ch
;
nmch
.
dwItemPrev
=
prev
;
nmch
.
dwItemNext
=
next
;
return
(
BOOL
)
send_notify
(
hwnd
,
NM_CHAR
,
&
nmch
.
hdr
);
}
inline
static
BOOL
hwnd_notify_keydown
(
HWND
hwnd
,
UINT
nVKey
,
UINT
uFlags
)
{
NMKEY
nmk
;
nmk
.
nVKey
=
nVKey
;
nmk
.
uFlags
=
uFlags
;
return
(
BOOL
)
send_notify
(
hwnd
,
NM_KEYDOWN
,
&
nmk
.
hdr
);
}
inline
static
DWORD
hwnd_notify_mouse
(
HWND
hwnd
,
UINT
code
,
DWORD
spec
,
DWORD
data
,
POINT
*
pt
,
LPARAM
dwHitInfo
)
{
NMMOUSE
nmm
;
nmm
.
dwItemSpec
=
spec
;
nmm
.
dwItemData
=
data
;
nmm
.
pt
.
x
=
pt
->
x
;
nmm
.
pt
.
y
=
pt
->
y
;
nmm
.
dwHitInfo
=
dwHitInfo
;
return
send_notify
(
hwnd
,
code
,
&
nmm
.
hdr
);
}
#define DEFINE_CHAR_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static BOOL notify_char(CTRLINFO *infoPtr, UINT ch, DWORD prev, DWORD next) \
{ return hwnd_notify_char(infoPtr->hwndSelf, ch, prev, next); }
#define DEFINE_CLICK_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_click(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_CLICK); }
#define DEFINE_DBLCLK_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_dblclk(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_DBLCLK); }
#define DEFINE_HOVER_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static BOOL notify_hover(CTRLINFO *infoPtr) \
{ return hwnd_notify(infoPtr->hwndSelf, NM_HOVER); }
#define DEFINE_KEYDOWN_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static BOOL notify_keydown(CTRLINFO *infoPtr, UINT nVKey, UINT uFlags) \
{ return hwnd_notify_keydown(infoPtr->hwndSelf, nVKey, uFlags); }
#define DEFINE_KILLFOCUS_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_killfocus(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_KILLFOCUS); }
#define DEFINE_NCHITTEST_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static DWORD notify_nchittest(CTRLINFO *infoPtr, DWORD spec, DWORD data, POINT *pt, LPARAM dwHitInfo) \
{ return hwnd_notify_mouse(infoPtr->hwndSelf, NM_NCHITTEST, spec, data, pt, dwHitInfo); }
#define DEFINE_OUTOFMEMORY_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_outofmemory(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_OUTOFMEMORY); }
#define DEFINE_RCLICK_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static BOOL notify_rclick(CTRLINFO *infoPtr) \
{ return hwnd_notify(infoPtr->hwndSelf, NM_RCLICK); }
#define DEFINE_RDBLCLK_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_rdblclk(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_RDBLCLK); }
#define DEFINE_RELEASEDCAPTURE_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_releasedcapture(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_RELEASEDCAPTURE); }
#define DEFINE_RETURN_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_return(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_RETURN); }
#define DEFINE_SETCURSOR_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static BOOL notify_setcursor(CTRLINFO *infoPtr, DWORD spec, DWORD data, POINT *pt, LPARAM dwHitInfo) \
{ return hwnd_notify_mouse(infoPtr->hwndSelf, NM_SETCURSOR, spec, data, pt, dwHitInfo); }
#define DEFINE_SETFOCUS_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_setfocus(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_SETFOCUS); }
#define DEFINE_TOOLTIPSCREATED_NOTIFICATION(CTRLINFO, hwndSelf) \
inline static void notify_tooltipscreated(CTRLINFO *infoPtr) \
{ hwnd_notify(infoPtr->hwndSelf, NM_TOOLTIPSCREATED); }
#define DEFINE_COMMON_NOTIFICATIONS(CTRLINFO, hwndSelf) \
DEFINE_CHAR_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_CLICK_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_DBLCLK_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_HOVER_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_KEYDOWN_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_KILLFOCUS_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_NCHITTEST_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_OUTOFMEMORY_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_RCLICK_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_RDBLCLK_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_RELEASEDCAPTURE_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_RETURN_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_SETCURSOR_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_SETFOCUS_NOTIFICATION(CTRLINFO, hwndSelf) \
DEFINE_TOOLTIPSCREATED_NOTIFICATION(CTRLINFO, hwndSelf) \
struct __forward_dummy_struc_dec_to_catch_missing_semicolon
#endif
/* __WINE_COMCTL32_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment