Tag Wine-0_9_2 Deleted: vendor/wine/dlls/avifil32/Wine-0_9_1/ Added: vendor/wine/dlls/avifil32/Wine-0_9_2/ Added: vendor/wine/dlls/avifil32/Wine-0_9_2/avifile_Ko.rc Deleted: vendor/wine/dlls/avifil32/Wine-0_9_2/rsrc.rc Added: vendor/wine/dlls/avifil32/Wine-0_9_2/rsrc.rc Deleted: vendor/wine/dlls/cabinet/Wine-0_9_1/ Added: vendor/wine/dlls/cabinet/Wine-0_9_2/ Deleted: vendor/wine/dlls/comctl32/Wine-0_9_1/ Added: vendor/wine/dlls/comctl32/Wine-0_9_2/ Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/comctl_Ko.rc Added: vendor/wine/dlls/comctl32/Wine-0_9_2/comctl_Ko.rc Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/header.c Added: vendor/wine/dlls/comctl32/Wine-0_9_2/header.c Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/rebar.c Added: vendor/wine/dlls/comctl32/Wine-0_9_2/rebar.c Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/syslink.c Added: vendor/wine/dlls/comctl32/Wine-0_9_2/syslink.c Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/tooltips.c Added: vendor/wine/dlls/comctl32/Wine-0_9_2/tooltips.c Deleted: vendor/wine/dlls/commdlg/Wine-0_9_1/ Added: vendor/wine/dlls/commdlg/Wine-0_9_2/ Deleted: vendor/wine/dlls/commdlg/Wine-0_9_2/cdlg_Ko.rc Added: vendor/wine/dlls/commdlg/Wine-0_9_2/cdlg_Ko.rc Deleted: vendor/wine/dlls/commdlg/Wine-0_9_2/filedlg.c Added: vendor/wine/dlls/commdlg/Wine-0_9_2/filedlg.c Deleted: vendor/wine/dlls/commdlg/Wine-0_9_2/fontdlg16.c Added: vendor/wine/dlls/commdlg/Wine-0_9_2/fontdlg16.c Deleted: vendor/wine/dlls/crypt32/Wine-0_9_1/ Added: vendor/wine/dlls/crypt32/Wine-0_9_2/ Deleted: vendor/wine/dlls/crypt32/Wine-0_9_2/cert.c Added: vendor/wine/dlls/crypt32/Wine-0_9_2/cert.c Deleted: vendor/wine/dlls/crypt32/Wine-0_9_2/encode.c Added: vendor/wine/dlls/crypt32/Wine-0_9_2/encode.c Deleted: vendor/wine/dlls/dinput/Wine-0_9_1/ Added: vendor/wine/dlls/dinput/Wine-0_9_2/ Deleted: vendor/wine/dlls/dinput/Wine-0_9_2/dinput_main.c Added: vendor/wine/dlls/dinput/Wine-0_9_2/dinput_main.c Deleted: vendor/wine/dlls/dinput/Wine-0_9_2/effect_linuxinput.c Added: vendor/wine/dlls/dinput/Wine-0_9_2/effect_linuxinput.c Deleted: vendor/wine/dlls/dinput/Wine-0_9_2/joystick_linuxinput.c Added: vendor/wine/dlls/dinput/Wine-0_9_2/joystick_linuxinput.c Deleted: vendor/wine/dlls/dinput8/Wine-0_9_1/ Added: vendor/wine/dlls/dinput8/Wine-0_9_2/ Deleted: vendor/wine/dlls/dplay/Wine-0_9_1/ Added: vendor/wine/dlls/dplay/Wine-0_9_2/ Deleted: vendor/wine/dlls/dplayx/Wine-0_9_1/ Added: vendor/wine/dlls/dplayx/Wine-0_9_2/ Deleted: vendor/wine/dlls/dplayx/Wine-0_9_2/dplay.c Added: vendor/wine/dlls/dplayx/Wine-0_9_2/dplay.c Deleted: vendor/wine/dlls/dsound/Wine-0_9_1/ Added: vendor/wine/dlls/dsound/Wine-0_9_2/ Deleted: vendor/wine/dlls/icmp/Wine-0_9_1/ Added: vendor/wine/dlls/icmp/Wine-0_9_2/ Deleted: vendor/wine/dlls/midimap/Wine-0_9_1/ Added: vendor/wine/dlls/midimap/Wine-0_9_2/ Deleted: vendor/wine/dlls/mpr/Wine-0_9_1/ Added: vendor/wine/dlls/mpr/Wine-0_9_2/ Deleted: vendor/wine/dlls/msi/Wine-0_9_1/ Added: vendor/wine/dlls/msi/Wine-0_9_2/ Deleted: vendor/wine/dlls/msi/Wine-0_9_2/helpers.c Added: vendor/wine/dlls/msi/Wine-0_9_2/helpers.c Deleted: vendor/wine/dlls/msi/Wine-0_9_2/msi_Ko.rc Added: vendor/wine/dlls/msi/Wine-0_9_2/msi_Ko.rc Deleted: vendor/wine/dlls/msi/Wine-0_9_2/registry.c Added: vendor/wine/dlls/msi/Wine-0_9_2/registry.c Deleted: vendor/wine/dlls/msimg32/Wine-0_9_1/ Added: vendor/wine/dlls/msimg32/Wine-0_9_2/ Deleted: vendor/wine/dlls/netapi32/Wine-0_9_1/ Added: vendor/wine/dlls/netapi32/Wine-0_9_2/ Deleted: vendor/wine/dlls/netapi32/Wine-0_9_2/access.c Added: vendor/wine/dlls/netapi32/Wine-0_9_2/access.c Deleted: vendor/wine/dlls/netapi32/Wine-0_9_2/netapi32.c Added: vendor/wine/dlls/netapi32/Wine-0_9_2/netapi32.c Deleted: vendor/wine/dlls/objsel/Wine-0_9_1/ Added: vendor/wine/dlls/objsel/Wine-0_9_2/ Deleted: vendor/wine/dlls/ole32/Wine-0_9_1/ Added: vendor/wine/dlls/ole32/Wine-0_9_2/ Deleted: vendor/wine/dlls/oleaut32/Wine-0_9_1/ Added: vendor/wine/dlls/oleaut32/Wine-0_9_2/ Deleted: vendor/wine/dlls/oledlg/Wine-0_9_1/ Added: vendor/wine/dlls/oledlg/Wine-0_9_2/ Deleted: vendor/wine/dlls/oledlg/Wine-0_9_2/oledlg_Ko.rc Added: vendor/wine/dlls/oledlg/Wine-0_9_2/oledlg_Ko.rc Deleted: vendor/wine/dlls/olepro32/Wine-0_9_1/ Added: vendor/wine/dlls/olepro32/Wine-0_9_2/ Deleted: vendor/wine/dlls/riched20/Wine-0_9_1/ Added: vendor/wine/dlls/riched20/Wine-0_9_2/ Deleted: vendor/wine/dlls/richedit/Wine-0_9_1/ Added: vendor/wine/dlls/richedit/Wine-0_9_2/ Deleted: vendor/wine/dlls/rpcrt4/Wine-0_9_1/ Added: vendor/wine/dlls/rpcrt4/Wine-0_9_2/ Deleted: vendor/wine/dlls/rpcrt4/Wine-0_9_2/rpcrt4.spec Added: vendor/wine/dlls/rpcrt4/Wine-0_9_2/rpcrt4.spec Deleted: vendor/wine/dlls/shdocvw/Wine-0_9_1/ Added: vendor/wine/dlls/shdocvw/Wine-0_9_2/ Deleted: vendor/wine/dlls/shdocvw/Wine-0_9_2/Ko.rc Added: vendor/wine/dlls/shdocvw/Wine-0_9_2/Ko.rc Deleted: vendor/wine/dlls/shdocvw/Wine-0_9_2/Makefile.in Added: vendor/wine/dlls/shdocvw/Wine-0_9_2/Makefile.in Deleted: vendor/wine/dlls/shdocvw/Wine-0_9_2/client.c [truncated at 100 lines; 178 more skipped] _____
Copied: vendor/wine/dlls/avifil32/Wine-0_9_2 (from rev 19573, vendor/wine/dlls/avifil32/current) _____
Copied: vendor/wine/dlls/avifil32/Wine-0_9_2/avifile_Ko.rc (from rev 19575, vendor/wine/dlls/avifil32/current/avifile_Ko.rc) _____
Deleted: vendor/wine/dlls/avifil32/Wine-0_9_2/rsrc.rc --- vendor/wine/dlls/avifil32/current/rsrc.rc 2005-11-25 21:38:37 UTC (rev 19573) +++ vendor/wine/dlls/avifil32/Wine-0_9_2/rsrc.rc 2005-11-26 09:49:14 UTC (rev 19619) @@ -1,53 +0,0 @@
-/* - * Top level resource file for avifil32.dll - * - * Copyright 2002 Michael G³nnewig - * - * 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 - */ - -#include "windef.h" -#include "winbase.h" -#include "winuser.h" -#include "winver.h" -#include "avifile_private.h" - -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL - -#define WINE_OLESELFREGISTER -#define WINE_FILEDESCRIPTION_STR "Wine AVI file support library" -#define WINE_FILENAME_STR "avifil32.dll" -#define WINE_FILEVERSION 4,0,3,1998 -#define WINE_FILEVERSION_STR "4.03.1998" - -#include "wine/wine_common_ver.rc" - -/* - * Everything specific to any language goes - * in one of the specific files. - */ -#include "avifile_Cs.rc" -#include "avifile_De.rc" -#include "avifile_En.rc" -#include "avifile_Es.rc" -#include "avifile_Fr.rc" -#include "avifile_It.rc" -#include "avifile_Ja.rc" -#include "avifile_Nl.rc" -#include "avifile_No.rc" -#include "avifile_Pl.rc" -#include "avifile_Pt.rc" -#include "avifile_Ru.rc" -#include "avifile_Si.rc" _____
Copied: vendor/wine/dlls/avifil32/Wine-0_9_2/rsrc.rc (from rev 19575, vendor/wine/dlls/avifil32/current/rsrc.rc) _____
Copied: vendor/wine/dlls/cabinet/Wine-0_9_2 (from rev 19573, vendor/wine/dlls/cabinet/current) _____
Copied: vendor/wine/dlls/comctl32/Wine-0_9_2 (from rev 19573, vendor/wine/dlls/comctl32/current) _____
Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/comctl_Ko.rc --- vendor/wine/dlls/comctl32/current/comctl_Ko.rc 2005-11-25 21:38:37 UTC (rev 19573) +++ vendor/wine/dlls/comctl32/Wine-0_9_2/comctl_Ko.rc 2005-11-26 09:49:14 UTC (rev 19619) @@ -1,82 +0,0 @@
-/* - * Copyright 2002 Won-kyu Park wkpark@kldp.org - * - * 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 - */ - -LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT - -IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140 -STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -CAPTION "Properties for " -FONT 9, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "?«??", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP - PUSHBUTTON "?Ù?Ê", IDCANCEL,58,122,50,14 - PUSHBUTTON "?¹?Ù(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED - PUSHBUTTON "ÁÁ??©?", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP - CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP|TCS _MULTILINE,4,4,212,114 -END - - -IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE -CAPTION "Wizard" -FONT 9, "MS Shell Dlg" -BEGIN - PUSHBUTTON "< ???³(&B)", IDC_BACK_BUTTON,71,138,50,14 - DEFPUSHBUTTON "???¢(&N) >", IDC_NEXT_BUTTON,121,138,50,14 - DEFPUSHBUTTON "?¥Àß", IDC_FINISH_BUTTON,121,138,50,14 - PUSHBUTTON "?Ù?Ê", IDCANCEL,178,138,50,14 - PUSHBUTTON "ÁÁ??©?", IDHELP,235,138,50,14,WS_GROUP - LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN - CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5 - LTEXT "", IDC_SUNKEN_LINEHEADER,0,35,290,1,SS_LEFT | SS_SUNKEN | WS_CHILD | WS_VISIBLE -END - - -IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Customize Toolbar" -FONT 9, "MS Shell Dlg" -BEGIN - DEFPUSHBUTTON "?¦?Ô(&C)", IDCANCEL,308,6,44,14 - PUSHBUTTON "??¢?(&e)", IDC_RESET_BTN,308,23,44,14 - PUSHBUTTON "ÁÁ??©?(&H)", IDC_HELP_BTN,308,40,44,14 - PUSHBUTTON "Move &Up", IDC_MOVEUP_BTN,308,74,44,14 - PUSHBUTTON "Move &Down", IDC_MOVEDN_BTN,308,91,44,14 - LTEXT "A&vailable buttons:", -1,4,5,84,10 - LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP - PUSHBUTTON "&Add ->", IDOK, 131, 42, 44, 14 - PUSHBUTTON "<- &Remove", IDC_REMOVE_BTN,131,62,44,14 - LTEXT "&Toolbar buttons:", -1,182,5,78,10 - LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP -END - -STRINGTABLE DISCARDABLE -{ - IDS_CLOSE "?¦?Ô" -} - -STRINGTABLE DISCARDABLE -{ - IDM_TODAY "????:" - IDM_GOTODAY "Go to today" -} - -STRINGTABLE DISCARDABLE -{ - IDS_SEPARATOR "Separator" -} _____
Copied: vendor/wine/dlls/comctl32/Wine-0_9_2/comctl_Ko.rc (from rev 19575, vendor/wine/dlls/comctl32/current/comctl_Ko.rc) _____
Deleted: vendor/wine/dlls/comctl32/Wine-0_9_2/header.c --- vendor/wine/dlls/comctl32/current/header.c 2005-11-25 21:38:37 UTC (rev 19573) +++ vendor/wine/dlls/comctl32/Wine-0_9_2/header.c 2005-11-26 09:49:14 UTC (rev 19619) @@ -1,1885 +0,0 @@
-/* - * Header control - * - * Copyright 1998 Eric Kohl - * Copyright 2000 Eric Kohl for CodeWeavers - * Copyright 2003 Maxime Bellenge - * - * 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 - * - * TODO: - * - Imagelist support (partially). - * - Callback items (under construction). - * - Hottrack support (partially). - * - Custom draw support (including Notifications). - * - Drag and Drop support (including Notifications). - * - New messages. - * - Use notification format - * - Correct the order maintenance code to preserve valid order - * - */ - -#include <stdarg.h> -#include <string.h> - -#include "windef.h" -#include "winbase.h" -#include "wine/unicode.h" -#include "wingdi.h" -#include "winuser.h" -#include "winnls.h" -#include "commctrl.h" -#include "comctl32.h" -#include "imagelist.h" -#include "tmschema.h" -#include "uxtheme.h" -#include "wine/debug.h" - -WINE_DEFAULT_DEBUG_CHANNEL(header); - -typedef struct -{ - INT cxy; - HBITMAP hbm; - LPWSTR pszText; - INT fmt; - LPARAM lParam; - INT iImage; - INT iOrder; /* see documentation of HD_ITEM */ - - BOOL bDown; /* is item pressed? (used for drawing) */ - RECT rect; /* bounding rectangle of the item */ -} HEADER_ITEM; - - -typedef struct -{ - HWND hwndNotify; /* Owner window to send notifications to */ - INT nNotifyFormat; /* format used for WM_NOTIFY messages */ - UINT uNumItem; /* number of items (columns) */ - INT nHeight; /* height of the header (pixels) */ - HFONT hFont; /* handle to the current font */ - HCURSOR hcurArrow; /* handle to the arrow cursor */ - HCURSOR hcurDivider; /* handle to a cursor (used over dividers) <-|-> */ - HCURSOR hcurDivopen; /* handle to a cursor (used over dividers) <-||-> */ - BOOL bCaptured; /* Is the mouse captured? */ - BOOL bPressed; /* Is a header item pressed (down)? */ - BOOL bTracking; /* Is in tracking mode? */ - BOOL bUnicode; /* Unicode flag */ - INT iMoveItem; /* index of tracked item. (Tracking mode) */ - INT xTrackOffset; /* distance between the right side of the tracked item and the cursor */ - INT xOldTrack; /* track offset (see above) after the last WM_MOUSEMOVE */ - INT nOldWidth; /* width of a sizing item after the last WM_MOUSEMOVE */ - INT iHotItem; /* index of hot item (cursor is over this item) */ - INT iMargin; /* width of the margin that surrounds a bitmap */ - - HIMAGELIST himl; /* handle to an image list (may be 0) */ - HEADER_ITEM *items; /* pointer to array of HEADER_ITEM's */ - INT *order; /* array of item IDs indexed by order */ - BOOL bRectsValid; /* validity flag for bounding rectangles */ -} HEADER_INFO; - - -#define VERT_BORDER 3 -#define DIVIDER_WIDTH 10 - -#define HEADER_GetInfoPtr(hwnd) ((HEADER_INFO *)GetWindowLongPtrW(hwnd,0)) - -static const WCHAR themeClass[] = {'H','e','a','d','e','r',0}; - - -inline static LRESULT -HEADER_IndexToOrder (HWND hwnd, INT iItem) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HEADER_ITEM *lpItem = &infoPtr->items[iItem]; - return lpItem->iOrder; -} - - -static INT -HEADER_OrderToIndex(HWND hwnd, WPARAM wParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - INT iorder = (INT)wParam; - - if ((iorder <0) || iorder >= infoPtr->uNumItem) - return iorder; - return infoPtr->order[iorder]; -} - -static void -HEADER_SetItemBounds (HWND hwnd) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HEADER_ITEM *phdi; - RECT rect; - unsigned int i; - int x; - - infoPtr->bRectsValid = TRUE; - - if (infoPtr->uNumItem == 0) - return; - - GetClientRect (hwnd, &rect); - - x = rect.left; - for (i = 0; i < infoPtr->uNumItem; i++) { - phdi = &infoPtr->items[HEADER_OrderToIndex(hwnd,i)]; - phdi->rect.top = rect.top; - phdi->rect.bottom = rect.bottom; - phdi->rect.left = x; - phdi->rect.right = phdi->rect.left + ((phdi->cxy>0)?phdi->cxy:0); - x = phdi->rect.right; - } -} - -static LRESULT -HEADER_Size (HWND hwnd, WPARAM wParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - - infoPtr->bRectsValid = FALSE; - - return 0; -} - - -static INT -HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HEADER_ITEM *phdi = &infoPtr->items[iItem]; - RECT r; - INT oldBkMode, cxEdge = GetSystemMetrics(SM_CXEDGE); - HTHEME theme = GetWindowTheme (hwnd); - - TRACE("DrawItem(iItem %d bHotTrack %d unicode flag %d)\n", iItem, bHotTrack, infoPtr->bUnicode); - - if (!infoPtr->bRectsValid) - HEADER_SetItemBounds(hwnd); - - r = phdi->rect; - if (r.right - r.left == 0) - return phdi->rect.right; - - if (theme != NULL) { - int state = (phdi->bDown) ? HIS_PRESSED : - (bHotTrack ? HIS_HOT : HIS_NORMAL); - DrawThemeBackground (theme, hdc, HP_HEADERITEM, state, - &r, NULL); - GetThemeBackgroundContentRect (theme, hdc, HP_HEADERITEM, state, - &r, &r); - } - else { - if (GetWindowLongW (hwnd, GWL_STYLE) & HDS_BUTTONS) { - if (phdi->bDown) { - DrawEdge (hdc, &r, BDR_RAISEDOUTER, - BF_RECT | BF_FLAT | BF_MIDDLE | BF_ADJUST); - } - else - DrawEdge (hdc, &r, EDGE_RAISED, - BF_RECT | BF_SOFT | BF_MIDDLE | BF_ADJUST); - } - else - DrawEdge (hdc, &r, EDGE_ETCHED, BF_BOTTOM | BF_RIGHT | BF_ADJUST); - } - if (phdi->bDown) { - r.left += 2; - r.top += 2; - } - - r.left -= cxEdge; - r.right += cxEdge; - - if (phdi->fmt & HDF_OWNERDRAW) { - DRAWITEMSTRUCT dis; - NMCUSTOMDRAW nmcd; - - nmcd.hdr.hwndFrom = hwnd; - nmcd.hdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); - nmcd.hdr.code = NM_CUSTOMDRAW; - nmcd.dwDrawStage = CDDS_PREPAINT | CDDS_ITEM | CDDS_ITEMPOSTERASE; - nmcd.hdc = hdc; - nmcd.dwItemSpec = iItem; - nmcd.rc = r; - nmcd.uItemState = phdi->bDown ? CDIS_SELECTED : 0; - nmcd.lItemlParam = phdi->lParam; - - SendMessageW (infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM)nmcd.hdr.idFrom, (LPARAM)&nmcd); - - dis.CtlType = ODT_HEADER; - dis.CtlID = GetWindowLongPtrW (hwnd, GWLP_ID); - dis.itemID = iItem; - dis.itemAction = ODA_DRAWENTIRE; - dis.itemState = phdi->bDown ? ODS_SELECTED : 0; - dis.hwndItem = hwnd; - dis.hDC = hdc; - dis.rcItem = r; - dis.itemData = phdi->lParam; - oldBkMode = SetBkMode(hdc, TRANSPARENT); - SendMessageW (infoPtr->hwndNotify, WM_DRAWITEM, - (WPARAM)dis.CtlID, (LPARAM)&dis); - if (oldBkMode != TRANSPARENT) - SetBkMode(hdc, oldBkMode); - } - else { - UINT rw, rh, /* width and height of r */ - *x = NULL, *w = NULL; /* x and width of the pic (bmp or img) which is part of cnt */ - /* cnt,txt,img,bmp */ - UINT cx, tx, ix, bx, - cw, tw, iw, bw; - BITMAP bmp; - - cw = tw = iw = bw = 0; - rw = r.right - r.left; - rh = r.bottom - r.top; - - if (phdi->fmt & HDF_STRING) { - RECT textRect; - - DrawTextW (hdc, phdi->pszText, -1, - &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT); - cw = textRect.right - textRect.left + 2 * infoPtr->iMargin; - } - - if ((phdi->fmt & HDF_IMAGE) && (infoPtr->himl)) { - iw = infoPtr->himl->cx + 2 * infoPtr->iMargin; - x = &ix; - w = &iw; - } - - if ((phdi->fmt & HDF_BITMAP) && (phdi->hbm)) { - GetObjectW (phdi->hbm, sizeof(BITMAP), (LPVOID)&bmp); - bw = bmp.bmWidth + 2 * infoPtr->iMargin; - if (!iw) { - x = &bx; - w = &bw; - } - } - - if (bw || iw) - cw += *w; - - /* align cx using the unclipped cw */ - if ((phdi->fmt & HDF_JUSTIFYMASK) == HDF_LEFT) - cx = r.left; - else if ((phdi->fmt & HDF_JUSTIFYMASK) == HDF_CENTER) - cx = r.left + rw / 2 - cw / 2; - else /* HDF_RIGHT */ - cx = r.right - cw; - - /* clip cx & cw */ - if (cx < r.left) - cx = r.left; - if (cx + cw > r.right) - cw = r.right - cx; - - tx = cx + infoPtr->iMargin; - /* since cw might have changed we have to recalculate tw */ - tw = cw - infoPtr->iMargin * 2; - - if (iw || bw) { - tw -= *w; - if (phdi->fmt & HDF_BITMAP_ON_RIGHT) { - /* put pic behind text */ - *x = cx + tw + infoPtr->iMargin * 3; - } else { - *x = cx + infoPtr->iMargin; - /* move text behind pic */ - tx += *w; - } - } - - if (iw && bw) { - /* since we're done with the layout we can - now calculate the position of bmp which - has no influence on alignment and layout - because of img */ - if ((phdi->fmt & HDF_JUSTIFYMASK) == HDF_RIGHT) - bx = cx - bw + infoPtr->iMargin; - else - bx = cx + cw + infoPtr->iMargin; - } - - if (iw || bw) { - HDC hClipDC = GetDC(hwnd); - HRGN hClipRgn = CreateRectRgn(r.left, r.top, r.right, r.bottom); - SelectClipRgn(hClipDC, hClipRgn); - - if (bw) { - HDC hdcBitmap = CreateCompatibleDC (hClipDC); - SelectObject (hdcBitmap, phdi->hbm); - BitBlt (hClipDC, bx, r.top + ((INT)rh - bmp.bmHeight) / 2, - bmp.bmWidth, bmp.bmHeight, hdcBitmap, 0, 0, SRCCOPY); - DeleteDC (hdcBitmap); - } - - if (iw) { - ImageList_DrawEx (infoPtr->himl, phdi->iImage, hClipDC, - ix, r.top + ((INT)rh - infoPtr->himl->cy) / 2, - infoPtr->himl->cx, infoPtr->himl->cy, CLR_DEFAULT, CLR_DEFAULT, 0); - } - - DeleteObject(hClipRgn); - ReleaseDC(hwnd, hClipDC); - } - - if (((phdi->fmt & HDF_STRING) - || (!(phdi->fmt & (HDF_OWNERDRAW|HDF_STRING|HDF_BITMAP| - HDF_BITMAP_ON_RIGHT|HDF_IMAGE)))) /* no explicit format specified? */ - && (phdi->pszText)) { - oldBkMode = SetBkMode(hdc, TRANSPARENT); - SetTextColor (hdc, (bHotTrack && !theme) ? COLOR_HIGHLIGHT : COLOR_BTNTEXT); - r.left = tx; - r.right = tx + tw; - DrawTextW (hdc, phdi->pszText, -1, - &r, DT_LEFT|DT_END_ELLIPSIS|DT_VCENTER|DT_SINGLELINE); - if (oldBkMode != TRANSPARENT) - SetBkMode(hdc, oldBkMode); - } - }/*Ownerdrawn*/ - - return phdi->rect.right; -} - - -static void -HEADER_Refresh (HWND hwnd, HDC hdc) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HFONT hFont, hOldFont; - RECT rect; - HBRUSH hbrBk; - UINT i; - INT x; - HTHEME theme = GetWindowTheme (hwnd); - - /* get rect for the bar, adjusted for the border */ - GetClientRect (hwnd, &rect); - - hFont = infoPtr->hFont ? infoPtr->hFont : GetStockObject (SYSTEM_FONT); - hOldFont = SelectObject (hdc, hFont); - - /* draw Background */ - if (theme == NULL) { - hbrBk = GetSysColorBrush(COLOR_3DFACE); - FillRect(hdc, &rect, hbrBk); - } - - x = rect.left; - for (i = 0; x <= rect.right && i < infoPtr->uNumItem; i++) { - x = HEADER_DrawItem (hwnd, hdc, HEADER_OrderToIndex(hwnd,i), - infoPtr->iHotItem == i); - } - - if ((x <= rect.right) && (infoPtr->uNumItem > 0)) { - rect.left = x; - if (theme != NULL) { - DrawThemeBackground (theme, hdc, HP_HEADERITEM, HIS_NORMAL, &rect, - NULL); - } - else { - if (GetWindowLongW (hwnd, GWL_STYLE) & HDS_BUTTONS) - DrawEdge (hdc, &rect, EDGE_RAISED, BF_TOP|BF_LEFT|BF_BOTTOM|BF_SOFT); - else - DrawEdge (hdc, &rect, EDGE_ETCHED, BF_BOTTOM); - } - } - - SelectObject (hdc, hOldFont); -} - - -static void -HEADER_RefreshItem (HWND hwnd, HDC hdc, INT iItem) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HFONT hFont, hOldFont; - - hFont = infoPtr->hFont ? infoPtr->hFont : GetStockObject (SYSTEM_FONT); - hOldFont = SelectObject (hdc, hFont); - HEADER_DrawItem (hwnd, hdc, iItem, infoPtr->iHotItem == iItem); - SelectObject (hdc, hOldFont); -} - - -static void -HEADER_InternalHitTest (HWND hwnd, LPPOINT lpPt, UINT *pFlags, INT *pItem) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - RECT rect, rcTest; - UINT iCount; - INT width; - BOOL bNoWidth; - - GetClientRect (hwnd, &rect); - - *pFlags = 0; - bNoWidth = FALSE; - if (PtInRect (&rect, *lpPt)) - { - if (infoPtr->uNumItem == 0) { - *pFlags |= HHT_NOWHERE; - *pItem = 1; - TRACE("NOWHERE\n"); - return; - } - else { - /* somewhere inside */ - for (iCount = 0; iCount < infoPtr->uNumItem; iCount++) { - rect = infoPtr->items[iCount].rect; - width = rect.right - rect.left; - if (width == 0) { - bNoWidth = TRUE; - continue; - } - if (PtInRect (&rect, *lpPt)) { - if (width <= 2 * DIVIDER_WIDTH) { - *pFlags |= HHT_ONHEADER; - *pItem = iCount; - TRACE("ON HEADER %d\n", iCount); - return; - } - if (iCount > 0) { - rcTest = rect; - rcTest.right = rcTest.left + DIVIDER_WIDTH; - if (PtInRect (&rcTest, *lpPt)) { - if (bNoWidth) { - *pFlags |= HHT_ONDIVOPEN; - *pItem = iCount - 1; - TRACE("ON DIVOPEN %d\n", *pItem); - return; - } - else { - *pFlags |= HHT_ONDIVIDER; - *pItem = iCount - 1; - TRACE("ON DIVIDER %d\n", *pItem); - return; - } - } - } - rcTest = rect; - rcTest.left = rcTest.right - DIVIDER_WIDTH; - if (PtInRect (&rcTest, *lpPt)) { - *pFlags |= HHT_ONDIVIDER; - *pItem = iCount; - TRACE("ON DIVIDER %d\n", *pItem); - return; - } - - *pFlags |= HHT_ONHEADER; - *pItem = iCount; - TRACE("ON HEADER %d\n", iCount); - return; - } - } - - /* check for last divider part (on nowhere) */ - rect = infoPtr->items[infoPtr->uNumItem-1].rect; - rect.left = rect.right; - rect.right += DIVIDER_WIDTH; - if (PtInRect (&rect, *lpPt)) { - if (bNoWidth) { - *pFlags |= HHT_ONDIVOPEN; - *pItem = infoPtr->uNumItem - 1; - TRACE("ON DIVOPEN %d\n", *pItem); - return; - } - else { - *pFlags |= HHT_ONDIVIDER; - *pItem = infoPtr->uNumItem-1; - TRACE("ON DIVIDER %d\n", *pItem); - return; - } - } - - *pFlags |= HHT_NOWHERE; - *pItem = 1; - TRACE("NOWHERE\n"); - return; - } - } - else { - if (lpPt->x < rect.left) { - TRACE("TO LEFT\n"); - *pFlags |= HHT_TOLEFT; - } - else if (lpPt->x > rect.right) { - TRACE("TO RIGHT\n"); - *pFlags |= HHT_TORIGHT; - } - - if (lpPt->y < rect.top) { - TRACE("ABOVE\n"); - *pFlags |= HHT_ABOVE; - } - else if (lpPt->y > rect.bottom) { - TRACE("BELOW\n"); - *pFlags |= HHT_BELOW; - } - } - - *pItem = 1; - TRACE("flags=0x%X\n", *pFlags); - return; -} - - -static void -HEADER_DrawTrackLine (HWND hwnd, HDC hdc, INT x) -{ - RECT rect; - HPEN hOldPen; - INT oldRop; - - GetClientRect (hwnd, &rect); - - hOldPen = SelectObject (hdc, GetStockObject (BLACK_PEN)); - oldRop = SetROP2 (hdc, R2_XORPEN); - MoveToEx (hdc, x, rect.top, NULL); - LineTo (hdc, x, rect.bottom); - SetROP2 (hdc, oldRop); - SelectObject (hdc, hOldPen); -} - - -static BOOL -HEADER_SendSimpleNotify (HWND hwnd, UINT code) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - NMHDR nmhdr; - - nmhdr.hwndFrom = hwnd; - nmhdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); - nmhdr.code = code; - - return (BOOL)SendMessageW (infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM)nmhdr.idFrom, (LPARAM)&nmhdr); -} - -static BOOL -HEADER_SendHeaderNotify (HWND hwnd, UINT code, INT iItem, INT mask) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - NMHEADERA nmhdr; - HDITEMA nmitem; - - nmhdr.hdr.hwndFrom = hwnd; - nmhdr.hdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); - nmhdr.hdr.code = code; - nmhdr.iItem = iItem; - nmhdr.iButton = 0; - nmhdr.pitem = &nmitem; - nmitem.mask = mask; - nmitem.cxy = infoPtr->items[iItem].cxy; - nmitem.hbm = infoPtr->items[iItem].hbm; - nmitem.pszText = NULL; - nmitem.cchTextMax = 0; -/* nmitem.pszText = infoPtr->items[iItem].pszText; */ -/* nmitem.cchTextMax = infoPtr->items[iItem].cchTextMax; */ - nmitem.fmt = infoPtr->items[iItem].fmt; - nmitem.lParam = infoPtr->items[iItem].lParam; - nmitem.iOrder = infoPtr->items[iItem].iOrder; - nmitem.iImage = infoPtr->items[iItem].iImage; - - return (BOOL)SendMessageW (infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM)nmhdr.hdr.idFrom, (LPARAM)&nmhdr); -} - -/** - * Send Disp Info notification. - * depends on NMHDDISPINFOW having same structure as NMHDDISPINFOA - * (so we handle the two cases only doing a specific cast for pszText). - * - * @param hwnd : hwnd header container handler - * @param mask : notification mask (usually HDI_TEXT or HDI_IMAGE) - * @param pDispInfo : NMHDDISPINFO structure (can be unicode or ansi) - * @param isW : TRUE if dispinfo is Unicode - */ -static BOOL -HEADER_SendHeaderDispInfoNotify(HWND hwnd, INT iItem, INT mask, LPHDITEMW phdi, HEADER_ITEM* lpItem, BOOL isW) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - BOOL ret; - BOOL convertToAnsi = FALSE; - BOOL convertToUnicode = FALSE; - BOOL isUnicodeNotify = FALSE; - NMHDDISPINFOW dispInfo; - - if (mask & HDI_TEXT) - { - convertToAnsi = (isW && infoPtr->nNotifyFormat == NFR_ANSI); - convertToUnicode = (!isW && infoPtr->nNotifyFormat == NFR_UNICODE); - } - isUnicodeNotify = (isW && !convertToAnsi); - - memset(&dispInfo, 0, sizeof(NMHDDISPINFOW)); - dispInfo.hdr.hwndFrom = hwnd; - dispInfo.hdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); - if (isUnicodeNotify || convertToUnicode) - { - dispInfo.hdr.code = HDN_GETDISPINFOW; - } - else - { - dispInfo.hdr.code = HDN_GETDISPINFOA; - } - dispInfo.iItem = iItem; - dispInfo.mask = mask; - /* - dispInfo.pszText = Alloc(sizeof(WCHAR) * 260); - dispInfo.cchTextMax = 260; - */ - ret = (BOOL) SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM) dispInfo.hdr.idFrom, - (LPARAM) &dispInfo); - - TRACE("SendMessage returns(mask:0x%x,str:%s,lParam:%p)\n", - dispInfo.mask, - (isUnicodeNotify ? debugstr_w(dispInfo.pszText) : (LPSTR) dispInfo.pszText), - (void*) dispInfo.lParam); - - if (dispInfo.mask & HDI_DI_SETITEM) - { - if (dispInfo.mask & HDI_IMAGE) - { - lpItem->iImage = dispInfo.iImage; - } - if (dispInfo.mask & HDI_TEXT) - { - if (isUnicodeNotify || convertToUnicode) - Str_SetPtrW(&lpItem->pszText, (LPCWSTR)dispInfo.pszText); - else /*if (convertToAnsi || !isW)*/ - Str_SetPtrAtoW(&lpItem->pszText, (LPCSTR)dispInfo.pszText); - } - - FIXME("NMHDDISPINFO returns with flags HDI_DI_SETITEM\n"); - } - - if (NULL != phdi) - { - if ((phdi->mask & mask) & HDI_IMAGE) - { - phdi->iImage = dispInfo.iImage; - } - if ((phdi->mask & mask) & HDI_TEXT) - { - if (isUnicodeNotify) - Str_GetPtrW ((LPCWSTR)dispInfo.pszText, phdi->pszText, phdi->cchTextMax); - else if (convertToUnicode) - Str_GetPtrWtoA ((LPCWSTR)dispInfo.pszText, (LPSTR)phdi->pszText, phdi->cchTextMax); - else /*if (!isW) */ - Str_GetPtrA ((LPCSTR)dispInfo.pszText, (LPSTR)phdi->pszText, phdi->cchTextMax); - } - } - return ret; -} - - -static BOOL -HEADER_SendClickNotify (HWND hwnd, UINT code, INT iItem) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - NMHEADERA nmhdr; - - nmhdr.hdr.hwndFrom = hwnd; - nmhdr.hdr.idFrom = GetWindowLongPtrW (hwnd, GWLP_ID); - nmhdr.hdr.code = code; - nmhdr.iItem = iItem; - nmhdr.iButton = 0; - nmhdr.pitem = NULL; - - return (BOOL)SendMessageA (infoPtr->hwndNotify, WM_NOTIFY, - (WPARAM)nmhdr.hdr.idFrom, (LPARAM)&nmhdr); -} - - -static LRESULT -HEADER_CreateDragImage (HWND hwnd, WPARAM wParam) -{ - FIXME("empty stub!\n"); - return 0; -} - - -static LRESULT -HEADER_DeleteItem (HWND hwnd, WPARAM wParam) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr(hwnd); - INT iItem = (INT)wParam; - - TRACE("[iItem=%d]\n", iItem); - - if ((iItem < 0) || (iItem >= (INT)infoPtr->uNumItem)) - return FALSE; - - if (infoPtr->uNumItem == 1) { - TRACE("Simple delete!\n"); - if (infoPtr->items[0].pszText) - Free (infoPtr->items[0].pszText); - Free (infoPtr->items); - Free(infoPtr->order); - infoPtr->items = 0; - infoPtr->order = 0; - infoPtr->uNumItem = 0; - } - else { - HEADER_ITEM *oldItems = infoPtr->items; - INT i; - INT iOrder; - TRACE("Complex delete! [iItem=%d]\n", iItem); - - for (i = 0; i < infoPtr->uNumItem; i++) - TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder); - if (infoPtr->items[iItem].pszText) - Free (infoPtr->items[iItem].pszText); - iOrder = infoPtr->items[iItem].iOrder; - - infoPtr->uNumItem--; - infoPtr->items = Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem); - /* pre delete copy */ - if (iItem > 0) { - memcpy (&infoPtr->items[0], &oldItems[0], - iItem * sizeof(HEADER_ITEM)); - } - - /* post delete copy */ - if (iItem < infoPtr->uNumItem) { - memcpy (&infoPtr->items[iItem], &oldItems[iItem+1], - (infoPtr->uNumItem - iItem) * sizeof(HEADER_ITEM)); - } - - /* Correct the orders */ - if (iOrder < infoPtr->uNumItem) - { - memmove(&infoPtr->order[iOrder], &infoPtr->order[iOrder + 1], - (infoPtr->uNumItem - iOrder) * sizeof(INT)); - for (i = 0; i < infoPtr->uNumItem; i++) - { - if (infoPtr->order[i] > iItem) - infoPtr->order[i]--; - if (i >= iOrder) - infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i]; - } - } - - for (i = 0; i < infoPtr->uNumItem; i++) - TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder); - Free (oldItems); - } - - HEADER_SetItemBounds (hwnd); - - InvalidateRect(hwnd, NULL, FALSE); - - return TRUE; -} - - -static LRESULT -HEADER_GetImageList (HWND hwnd) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - - return (LRESULT)infoPtr->himl; -} - - -static LRESULT -HEADER_GetItemT (HWND hwnd, INT nItem, LPHDITEMW phdi, BOOL bUnicode) -{ - HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd); - HEADER_ITEM *lpItem; - - if (!phdi) - return FALSE; - - TRACE("[nItem=%d]\n", nItem); - - if (phdi->mask == 0) - return TRUE; - - if ((nItem < 0) || (nItem >= (INT)infoPtr->uNumItem)) - lpItem = NULL; - else - lpItem = &infoPtr->items[nItem]; - - if (phdi->mask & HDI_BITMAP) - phdi->hbm = (lpItem != NULL) ? lpItem->hbm : 0; - - if (phdi->mask & HDI_FORMAT) - phdi->fmt = (lpItem != NULL) ? lpItem->fmt : 0; - - if (phdi->mask & HDI_WIDTH) - phdi->cxy = (lpItem != NULL) ? lpItem->cxy : 0; - - if (phdi->mask & HDI_LPARAM) - phdi->lParam = (lpItem != NULL) ? lpItem->lParam : 0; - - if (phdi->mask & HDI_IMAGE) - { - phdi->iImage = (lpItem != NULL) ? lpItem->iImage : 0; - if (lpItem->iImage == I_IMAGECALLBACK) - { - HEADER_SendHeaderDispInfoNotify(hwnd, nItem, HDI_IMAGE, phdi, lpItem, bUnicode); - } - } - - if (phdi->mask & HDI_ORDER) - phdi->iOrder = (lpItem != NULL) ? lpItem->iOrder : 0; [truncated at 1000 lines; 129832 more skipped]