| /****************************************************************************** |
| * |
| * Common definitions (resource ids and global variables) |
| * |
| * 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 |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #ifndef __WINE_COMCTL32_H |
| #define __WINE_COMCTL32_H |
| |
| #include "commctrl.h" |
| |
| extern HMODULE COMCTL32_hModule; |
| extern HBRUSH COMCTL32_hPattern55AABrush; |
| |
| /* Property sheet / Wizard */ |
| #define IDD_PROPSHEET 1006 |
| #define IDD_WIZARD 1020 |
| |
| #define IDC_TABCONTROL 12320 |
| #define IDC_APPLY_BUTTON 12321 |
| #define IDC_BACK_BUTTON 12323 |
| #define IDC_NEXT_BUTTON 12324 |
| #define IDC_FINISH_BUTTON 12325 |
| #define IDC_SUNKEN_LINE 12326 |
| |
| #define IDS_CLOSE 4160 |
| |
| /* Toolbar customization dialog */ |
| #define IDD_TBCUSTOMIZE 200 |
| |
| #define IDC_AVAILBTN_LBOX 201 |
| #define IDC_RESET_BTN 202 |
| #define IDC_TOOLBARBTN_LBOX 203 |
| #define IDC_REMOVE_BTN 204 |
| #define IDC_HELP_BTN 205 |
| #define IDC_MOVEUP_BTN 206 |
| #define IDC_MOVEDN_BTN 207 |
| |
| #define IDS_SEPARATOR 1024 |
| |
| /* Toolbar imagelist bitmaps */ |
| #define IDB_STD_SMALL 120 |
| #define IDB_STD_LARGE 121 |
| #define IDB_VIEW_SMALL 124 |
| #define IDB_VIEW_LARGE 125 |
| #define IDB_HIST_SMALL 130 |
| #define IDB_HIST_LARGE 131 |
| |
| |
| /* Month calendar month menu popup */ |
| #define IDD_MCMONTHMENU 300 |
| |
| #define IDM_JAN 301 |
| #define IDM_FEB 302 |
| #define IDM_MAR 303 |
| #define IDM_APR 304 |
| #define IDM_MAY 305 |
| #define IDM_JUN 306 |
| #define IDM_JUL 307 |
| #define IDM_AUG 308 |
| #define IDM_SEP 309 |
| #define IDM_OCT 310 |
| #define IDM_NOV 311 |
| #define IDM_DEC 312 |
| |
| #define IDM_TODAY 4163 |
| #define IDM_GOTODAY 4164 |
| |
| /* Treeview Checkboxes */ |
| |
| #define IDT_CHECK 401 |
| |
| |
| /* Header cursors */ |
| #define IDC_DIVIDER 106 |
| #define IDC_DIVIDEROPEN 107 |
| |
| |
| /* DragList icon */ |
| #define IDI_DRAGARROW 150 |
| |
| |
| /* HOTKEY internal strings */ |
| #define HKY_NONE 2048 |
| |
| typedef struct |
| { |
| COLORREF clrBtnHighlight; /* COLOR_BTNHIGHLIGHT */ |
| COLORREF clrBtnShadow; /* COLOR_BTNSHADOW */ |
| COLORREF clrBtnText; /* COLOR_BTNTEXT */ |
| COLORREF clrBtnFace; /* COLOR_BTNFACE */ |
| COLORREF clrHighlight; /* COLOR_HIGHLIGHT */ |
| COLORREF clrHighlightText; /* COLOR_HIGHLIGHTTEXT */ |
| COLORREF clr3dHilight; /* COLOR_3DHILIGHT */ |
| COLORREF clr3dShadow; /* COLOR_3DSHADOW */ |
| COLORREF clr3dDkShadow; /* COLOR_3DDKSHADOW */ |
| COLORREF clr3dFace; /* COLOR_3DFACE */ |
| COLORREF clrWindow; /* COLOR_WINDOW */ |
| COLORREF clrWindowText; /* COLOR_WINDOWTEXT */ |
| COLORREF clrGrayText; /* COLOR_GREYTEXT */ |
| COLORREF clrActiveCaption; /* COLOR_ACTIVECAPTION */ |
| COLORREF clrInfoBk; /* COLOR_INFOBK */ |
| COLORREF clrInfoText; /* COLOR_INFOTEXT */ |
| } COMCTL32_SysColor; |
| |
| extern COMCTL32_SysColor comctl32_color; |
| |
| /* Internal function */ |
| HWND COMCTL32_CreateToolTip (HWND); |
| VOID COMCTL32_RefreshSysColors(void); |
| INT Str_GetPtrWtoA (LPCWSTR lpSrc, LPSTR lpDest, INT nMaxLen); |
| BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc); |
| |
| #define COMCTL32_VERSION_MINOR 0 |
| #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 |
| { |
| struct { |
| SUBCLASSPROC subproc; |
| UINT_PTR id; |
| DWORD_PTR ref; |
| } SubclassProcs[31]; |
| int stackpos; |
| int stacknum; |
| int stacknew; |
| WNDPROC origproc; |
| } SUBCLASS_INFO, *LPSUBCLASS_INFO; |
| |
| #endif /* __WINE_COMCTL32_H */ |