From 9c50730354d5a22a83d22c09a0fdd687448a5d42 Mon Sep 17 00:00:00 2001 From: "Dimitrie O. Paun" <dpaun@rogers.com> Date: Tue, 10 Dec 2002 19:07:59 +0000 Subject: [PATCH] Get rid of generic notification support in comctrl32. The MS docs were misleading in that all controls send these notifications. They don't. --- dlls/comctl32/comctl32.h | 128 --------------------------------------- dlls/comctl32/trackbar.c | 12 ++-- 2 files changed, 5 insertions(+), 135 deletions(-) diff --git a/dlls/comctl32/comctl32.h b/dlls/comctl32/comctl32.h index 52b45903a28..78b4a8fdf3a 100644 --- a/dlls/comctl32/comctl32.h +++ b/dlls/comctl32/comctl32.h @@ -132,134 +132,6 @@ 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 - /* Our internal stack structure of the window procedures to subclass */ typedef struct { diff --git a/dlls/comctl32/trackbar.c b/dlls/comctl32/trackbar.c index a15fdee61d6..5befea82094 100644 --- a/dlls/comctl32/trackbar.c +++ b/dlls/comctl32/trackbar.c @@ -68,8 +68,6 @@ typedef struct LPLONG tics; } TRACKBAR_INFO; -DEFINE_COMMON_NOTIFICATIONS(TRACKBAR_INFO, hwndSelf); - #define TB_REFRESH_TIMER 1 #define TB_REFRESH_DELAY 500 @@ -122,7 +120,7 @@ static void TRACKBAR_RecalculateTics (TRACKBAR_INFO *infoPtr) (nrTics+1)*sizeof (DWORD)); if (!infoPtr->tics) { infoPtr->uNumTics = 0; - notify_outofmemory(infoPtr); + TRACKBAR_SendNotify(infoPtr, NM_OUTOFMEMORY); return; } infoPtr->uNumTics = nrTics; @@ -1152,7 +1150,7 @@ TRACKBAR_SetTic (TRACKBAR_INFO *infoPtr, LONG lPos) (infoPtr->uNumTics)*sizeof (DWORD)); if (!infoPtr->tics) { infoPtr->uNumTics = 0; - notify_outofmemory(infoPtr); + TRACKBAR_SendNotify(infoPtr, NM_OUTOFMEMORY); return FALSE; } infoPtr->tics[infoPtr->uNumTics-1] = lPos; @@ -1269,7 +1267,7 @@ TRACKBAR_Create (HWND hwnd, LPCREATESTRUCTW lpcs) if (infoPtr->hwndToolTip) { TTTOOLINFOW ti; - notify_tooltipscreated(infoPtr); + TRACKBAR_SendNotify(infoPtr, NM_TOOLTIPSCREATED); ZeroMemory (&ti, sizeof(ti)); ti.cbSize = sizeof(ti); @@ -1340,7 +1338,7 @@ TRACKBAR_LButtonUp (TRACKBAR_INFO *infoPtr, DWORD fwKeys, POINTS pts) TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK); infoPtr->flags &= ~TB_DRAG_MODE; ReleaseCapture (); - notify_releasedcapture(infoPtr); + TRACKBAR_SendNotify(infoPtr, NM_RELEASEDCAPTURE); TRACKBAR_ActivateToolTip(infoPtr, FALSE); TRACKBAR_InvalidateThumb(infoPtr, infoPtr->lPos); } @@ -1348,7 +1346,7 @@ TRACKBAR_LButtonUp (TRACKBAR_INFO *infoPtr, DWORD fwKeys, POINTS pts) KillTimer (infoPtr->hwndSelf, TB_REFRESH_TIMER); infoPtr->flags &= ~TB_AUTO_PAGE; ReleaseCapture (); - notify_releasedcapture(infoPtr); + TRACKBAR_SendNotify(infoPtr, NM_RELEASEDCAPTURE); } return 0; -- GitLab