/****************************************************************************** * * 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 #endif /* __WINE_COMCTL32_H */