- [User32] Sync controls to wine 1.1.39.

svn path=/trunk/; revision=45847
This commit is contained in:
James Tabor 2010-03-04 23:25:30 +00:00
parent 69f20a953b
commit ea385f2fe4
8 changed files with 117 additions and 373 deletions

View file

@ -102,8 +102,6 @@ static void GB_Paint( HWND hwnd, HDC hDC, UINT action );
static void UB_Paint( HWND hwnd, HDC hDC, UINT action );
static void OB_Paint( HWND hwnd, HDC hDC, UINT action );
static void BUTTON_CheckAutoRadioButton( HWND hwnd );
//static LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
//static LRESULT WINAPI ButtonWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
#define MAX_BTN_TYPE 12
@ -291,6 +289,13 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
}
if (btn_type >= MAX_BTN_TYPE)
return -1; /* abort */
/* XP turns a BS_USERBUTTON into BS_PUSHBUTTON */
if (btn_type == BS_USERBUTTON )
{
style = (style & ~0x0f) | BS_PUSHBUTTON;
SetWindowLongPtrW( hWnd, GWL_STYLE, style );
}
set_button_state( hWnd, BUTTON_UNCHECKED );
button_update_uistate( hWnd, unicode );
return 0;
@ -474,9 +479,6 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
InvalidateRect( hWnd, NULL, FALSE );
break;
#ifndef __REACTOS__
case BM_SETSTYLE16:
#endif
case BM_SETSTYLE:
if ((wParam & 0x0f) >= MAX_BTN_TYPE) break;
btn_type = wParam & 0x0f;
@ -485,7 +487,7 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
/* Only redraw if lParam flag is set.*/
if (lParam)
paint_button( hWnd, btn_type, ODA_DRAWENTIRE );
InvalidateRect( hWnd, NULL, TRUE );
break;
@ -514,15 +516,9 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
case BM_GETIMAGE:
return GetWindowLongPtrW( hWnd, HIMAGE_GWL_OFFSET );
#ifndef __REACTOS__
case BM_GETCHECK16:
#endif
case BM_GETCHECK:
return get_button_state( hWnd ) & 3;
#ifndef __REACTOS__
case BM_SETCHECK16:
#endif
case BM_SETCHECK:
if (wParam > maxCheckState[btn_type]) wParam = maxCheckState[btn_type];
state = get_button_state( hWnd );
@ -541,15 +537,9 @@ LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg,
BUTTON_CheckAutoRadioButton( hWnd );
break;
#ifndef __REACTOS__
case BM_GETSTATE16:
#endif
case BM_GETSTATE:
return get_button_state( hWnd );
#ifndef __REACTOS__
case BM_SETSTATE16:
#endif
case BM_SETSTATE:
state = get_button_state( hWnd );
if (wParam)
@ -871,9 +861,15 @@ static void PB_Paint( HWND hwnd, HDC hDC, UINT action )
if (get_button_type(style) == BS_DEFPUSHBUTTON)
{
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
if (action != ODA_FOCUS)
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
InflateRect( &rc, -1, -1 );
}
focus_rect = rc;
/* completely skip the drawing if only focus has changed */
if (action == ODA_FOCUS) goto draw_focus;
uState = DFCS_BUTTONPUSH | DFCS_ADJUSTRECT;
@ -892,8 +888,6 @@ static void PB_Paint( HWND hwnd, HDC hDC, UINT action )
DrawFrameControl( hDC, &rc, DFC_BUTTON, uState );
focus_rect = rc;
/* draw button label */
r = rc;
dtFlags = BUTTON_CalcLabelRect(hwnd, hDC, &r);
@ -912,7 +906,9 @@ static void PB_Paint( HWND hwnd, HDC hDC, UINT action )
SetTextColor( hDC, oldTxtColor );
if (state & BUTTON_HASFOCUS)
draw_focus:
if ((action == ODA_FOCUS) ||
((action == ODA_DRAWENTIRE) && (state & BUTTON_HASFOCUS)))
{
if (!(get_ui_state(hwnd) & UISF_HIDEFOCUS))
{
@ -1165,6 +1161,8 @@ static void UB_Paint( HWND hwnd, HDC hDC, UINT action )
if (!(get_ui_state(hwnd) & UISF_HIDEFOCUS))
DrawFocusRect( hDC, &rc );
}
BUTTON_NOTIFY_PARENT( hwnd, BN_PAINT );
}

View file

@ -74,9 +74,6 @@ static UINT CBitHeight, CBitWidth;
#define COMBO_EDITBUTTONSPACE() 0
#define EDIT_CONTROL_PADDING() 1
//static LRESULT WINAPI ComboWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
//static LRESULT WINAPI ComboWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
/*********************************************************************
* combo class descriptor
*/

View file

@ -30,8 +30,6 @@
static BOOL bMultiLineTitle;
static HFONT hIconTitleFont;
//static LRESULT WINAPI IconTitleWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
/*********************************************************************
* icon title class descriptor
*/

View file

@ -40,13 +40,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(listbox);
/* Start of hack section -------------------------------- */
typedef short *LPINT16;
BOOL is_old_app(HWND hwnd)
{
return FALSE;
}
#define WM_LBTRACKPOINT 0x0131
#define WS_EX_DRAGDETECT 0x00000002L
#define WM_BEGINDRAG 0x022C
@ -105,7 +98,7 @@ typedef struct
HFONT font; /* Current font */
LCID locale; /* Current locale for string comparisons */
LPHEADCOMBO lphc; /* ComboLBox */
LONG UIState;
LONG UIState; // REACTOS
} LB_DESCR;
@ -138,9 +131,6 @@ typedef enum
static TIMER_DIRECTION LISTBOX_Timer = LB_TIMER_NONE;
//static LRESULT WINAPI ListBoxWndProcA( HWND hwnd, UINT msg, WPARAM wParam,LPARAM lParam );
//static LRESULT WINAPI ListBoxWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
static LRESULT LISTBOX_GetItemRect( const LB_DESCR *descr, INT index, RECT *rect );
/*********************************************************************
@ -174,14 +164,6 @@ const struct builtin_class_descr COMBOLBOX_builtin_class =
0 /* brush */
};
#ifndef __REACTOS__
/* check whether app is a Win 3.1 app */
static inline BOOL is_old_app( LB_DESCR *descr )
{
return (GetExpWinVer16( GetWindowLongPtrW(descr->self, GWLP_HINSTANCE) ) & 0xFF00 ) == 0x0300;
}
#endif
/***********************************************************************
* LISTBOX_GetCurrentPageSize
@ -409,16 +391,6 @@ static void LISTBOX_UpdateSize( LB_DESCR *descr )
remaining = 0;
if ((descr->height > descr->item_height) && remaining)
{
#ifndef __REACTOS__
if (is_old_app(descr))
{ /* give a margin for error to 16 bits programs - if we need
less than the height of the nonclient area, round to the
*next* number of items */
int ncheight = rect.bottom - rect.top - descr->height;
if ((descr->item_height - remaining) <= ncheight)
remaining = remaining - descr->item_height;
}
#endif
TRACE("[%p]: changing height %d -> %d\n",
descr->self, descr->height, descr->height - remaining );
SetWindowPos( descr->self, 0, 0, 0, rect.right - rect.left,
@ -565,10 +537,10 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect,
if (!item)
{
if (action == ODA_FOCUS)
{
if (!(descr->UIState & UISF_HIDEFOCUS))
DrawFocusRect( hdc, rect );
}
{ // REACTOS
if (!(descr->UIState & UISF_HIDEFOCUS))
DrawFocusRect( hdc, rect );
} //
else
ERR("called with an out of bounds index %d(%d) in owner draw, Not good.\n",index,descr->nb_items);
return;
@ -608,7 +580,7 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect,
if (action == ODA_FOCUS)
{
if (!(descr->UIState & UISF_HIDEFOCUS))
if (!(descr->UIState & UISF_HIDEFOCUS)) // REACTOS
DrawFocusRect( hdc, rect );
return;
}
@ -771,7 +743,7 @@ static LRESULT LISTBOX_InitStorage( LB_DESCR *descr, INT nb_items )
/***********************************************************************
* LISTBOX_SetTabStops
*/
static BOOL LISTBOX_SetTabStops( LB_DESCR *descr, INT count, LPINT tabs, BOOL short_ints )
static BOOL LISTBOX_SetTabStops( LB_DESCR *descr, INT count, LPINT tabs )
{
INT i;
@ -790,23 +762,7 @@ static BOOL LISTBOX_SetTabStops( LB_DESCR *descr, INT count, LPINT tabs, BOOL sh
if (!(descr->tabs = HeapAlloc( GetProcessHeap(), 0,
descr->nb_tabs * sizeof(INT) )))
return FALSE;
#ifndef __REACTOS__
if (short_ints)
{
INT i;
LPINT16 p = (LPINT16)tabs;
TRACE("[%p]: settabstops ", descr->self );
for (i = 0; i < descr->nb_tabs; i++) {
descr->tabs[i] = *p++<<1; /* FIXME */
TRACE("%hd ", descr->tabs[i]);
}
TRACE("\n");
}
else memcpy( descr->tabs, tabs, descr->nb_tabs * sizeof(INT) );
#else
memcpy( descr->tabs, tabs, descr->nb_tabs * sizeof(INT) );
#endif
memcpy( descr->tabs, tabs, descr->nb_tabs * sizeof(INT) );
/* convert into "dialog units"*/
for (i = 0; i < descr->nb_tabs; i++)
@ -1049,23 +1005,6 @@ static LRESULT LISTBOX_GetSelCount( const LB_DESCR *descr )
}
#ifndef __REACTOS__
/***********************************************************************
* LISTBOX_GetSelItems16
*/
static LRESULT LISTBOX_GetSelItems16( const LB_DESCR *descr, INT16 max, LPINT16 array )
{
INT i, count;
const LB_ITEMDATA *item = descr->items;
if (!(descr->style & LBS_MULTIPLESEL)) return LB_ERR;
for (i = count = 0; (i < descr->nb_items) && (count < max); i++, item++)
if (item->selected) array[count++] = (INT16)i;
return count;
}
#endif
/***********************************************************************
* LISTBOX_GetSelItems
*/
@ -1595,15 +1534,8 @@ static LRESULT LISTBOX_InsertItem( LB_DESCR *descr, INT index,
/* We need to grow the array */
max_items += LB_ARRAY_GRANULARITY;
if (descr->items)
{
item = HeapReAlloc( GetProcessHeap(), 0, descr->items,
max_items * sizeof(LB_ITEMDATA) );
if (!item)
{
SEND_NOTIFICATION( descr, LBN_ERRSPACE );
return LB_ERRSPACE;
}
}
else
item = HeapAlloc( GetProcessHeap(), 0,
max_items * sizeof(LB_ITEMDATA) );
@ -2166,7 +2098,7 @@ static LRESULT LISTBOX_HandleLButtonDown( LB_DESCR *descr, DWORD keys, INT x, IN
}
if (!descr->lphc)
{
{ // See rev 40864 use Ptr for 64 bit.
if (GetWindowLongPtrW( descr->self, GWL_EXSTYLE ) & WS_EX_DRAGDETECT)
{
POINT pt;
@ -2539,7 +2471,7 @@ static LRESULT LISTBOX_HandleChar( LB_DESCR *descr, WCHAR charW )
return 0;
}
/* Retrieve the UI state for the control */
/* ReactOS Retrieve the UI state for the control */
static BOOL LISTBOX_update_uistate(LB_DESCR *descr)
{
LONG prev_flags;
@ -2589,18 +2521,6 @@ static BOOL LISTBOX_Create( HWND hwnd, LPHEADCOMBO lphc )
descr->locale = GetUserDefaultLCID();
descr->lphc = lphc;
#ifndef __REACTOS__
if (is_old_app(descr) && ( descr->style & ( WS_VSCROLL | WS_HSCROLL ) ) )
{
/* Win95 document "List Box Differences" from MSDN:
If a list box in a version 3.x application has either the
WS_HSCROLL or WS_VSCROLL style, the list box receives both
horizontal and vertical scroll bars.
*/
descr->style |= WS_VSCROLL | WS_HSCROLL;
}
#endif
if( lphc )
{
TRACE("[%p]: resetting owner %p -> %p\n", descr->self, descr->owner, lphc->self );
@ -2609,7 +2529,7 @@ static BOOL LISTBOX_Create( HWND hwnd, LPHEADCOMBO lphc )
SetWindowLongPtrW( descr->self, 0, (LONG_PTR)descr );
LISTBOX_update_uistate(descr);
LISTBOX_update_uistate(descr); // ReactOS
/* if (wnd->dwExStyle & WS_EX_NOPARENTNOTIFY) descr->style &= ~LBS_NOTIFY;
*/
@ -2689,20 +2609,12 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
switch(msg)
{
#ifndef __REACTOS__
case LB_RESETCONTENT16:
#endif
case LB_RESETCONTENT:
LISTBOX_ResetContent( descr );
LISTBOX_UpdateScroll( descr );
InvalidateRect( descr->self, NULL, TRUE );
return 0;
#ifndef __REACTOS__
case LB_ADDSTRING16:
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_ADDSTRING:
case LB_ADDSTRING_LOWER:
case LB_ADDSTRING_UPPER:
@ -2733,12 +2645,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return ret;
}
#ifndef __REACTOS__
case LB_INSERTSTRING16:
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
wParam = (INT)(INT16)wParam;
/* fall through */
#endif
case LB_INSERTSTRING:
case LB_INSERTSTRING_UPPER:
case LB_INSERTSTRING_LOWER:
@ -2768,11 +2674,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return ret;
}
#ifndef __REACTOS__
case LB_ADDFILE16:
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_ADDFILE:
{
INT ret;
@ -2795,9 +2696,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return ret;
}
#ifndef __REACTOS__
case LB_DELETESTRING16:
#endif
case LB_DELETESTRING:
if (LISTBOX_RemoveItem( descr, wParam) != LB_ERR)
return descr->nb_items;
@ -2807,9 +2705,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return LB_ERR;
}
#ifndef __REACTOS__
case LB_GETITEMDATA16:
#endif
case LB_GETITEMDATA:
if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items))
{
@ -2818,9 +2713,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
}
return descr->items[wParam].data;
#ifndef __REACTOS__
case LB_SETITEMDATA16:
#endif
case LB_SETITEMDATA:
if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items))
{
@ -2831,24 +2723,12 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
/* undocumented: returns TRUE, not LB_OKAY (0) */
return TRUE;
#ifndef __REACTOS__
case LB_GETCOUNT16:
#endif
case LB_GETCOUNT:
return descr->nb_items;
#ifndef __REACTOS__
case LB_GETTEXT16:
lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_GETTEXT:
return LISTBOX_GetText( descr, wParam, (LPWSTR)lParam, unicode );
#ifndef __REACTOS__
case LB_GETTEXTLEN16:
/* fall through */
#endif
case LB_GETTEXTLEN:
if ((INT)wParam >= descr->nb_items || (INT)wParam < 0)
{
@ -2860,9 +2740,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return WideCharToMultiByte( CP_ACP, 0, descr->items[wParam].str,
strlenW(descr->items[wParam].str), NULL, 0, NULL, NULL );
#ifndef __REACTOS__
case LB_GETCURSEL16:
#endif
case LB_GETCURSEL:
if (descr->nb_items == 0)
return LB_ERR;
@ -2873,23 +2750,12 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return descr->focus_item;
/* otherwise, if the user tries to move the selection with the */
/* arrow keys, we will give the application something to choke on */
#ifndef __REACTOS__
case LB_GETTOPINDEX16:
#endif
case LB_GETTOPINDEX:
return descr->top_item;
#ifndef __REACTOS__
case LB_GETITEMHEIGHT16:
#endif
case LB_GETITEMHEIGHT:
return LISTBOX_GetItemHeight( descr, wParam );
#ifndef __REACTOS__
case LB_SETITEMHEIGHT16:
lParam = LOWORD(lParam);
/* fall through */
#endif
case LB_SETITEMHEIGHT:
return LISTBOX_SetItemHeight( descr, wParam, lParam, TRUE );
@ -2931,9 +2797,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return MAKELONG(index, hit ? 0 : 1);
}
#ifndef __REACTOS__
case LB_SETCARETINDEX16:
#endif
case LB_SETCARETINDEX:
if ((!IS_MULTISELECT(descr)) && (descr->selected_item != -1)) return LB_ERR;
if (LISTBOX_SetCaretIndex( descr, wParam, !lParam ) == LB_ERR)
@ -2943,47 +2806,18 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
else
return LB_OKAY;
#ifndef __REACTOS__
case LB_GETCARETINDEX16:
#endif
case LB_GETCARETINDEX:
return descr->focus_item;
#ifndef __REACTOS__
case LB_SETTOPINDEX16:
#endif
case LB_SETTOPINDEX:
return LISTBOX_SetTopItem( descr, wParam, TRUE );
#ifndef __REACTOS__
case LB_SETCOLUMNWIDTH16:
#endif
case LB_SETCOLUMNWIDTH:
return LISTBOX_SetColumnWidth( descr, wParam );
#ifndef __REACTOS__
case LB_GETITEMRECT16:
{
RECT rect;
RECT16 *r16 = MapSL(lParam);
ret = LISTBOX_GetItemRect( descr, (INT16)wParam, &rect );
r16->left = rect.left;
r16->top = rect.top;
r16->right = rect.right;
r16->bottom = rect.bottom;
}
return ret;
#endif
case LB_GETITEMRECT:
return LISTBOX_GetItemRect( descr, wParam, (RECT *)lParam );
#ifndef __REACTOS__
case LB_FINDSTRING16:
wParam = (INT)(INT16)wParam;
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_FINDSTRING:
{
INT ret;
@ -3003,12 +2837,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return ret;
}
#ifndef __REACTOS__
case LB_FINDSTRINGEXACT16:
wParam = (INT)(INT16)wParam;
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_FINDSTRINGEXACT:
{
INT ret;
@ -3028,12 +2856,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return ret;
}
#ifndef __REACTOS__
case LB_SELECTSTRING16:
wParam = (INT)(INT16)wParam;
if (HAS_STRINGS(descr)) lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_SELECTSTRING:
{
INT index;
@ -3062,29 +2884,14 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return index;
}
#ifndef __REACTOS__
case LB_GETSEL16:
wParam = (INT)(INT16)wParam;
/* fall through */
#endif
case LB_GETSEL:
if (((INT)wParam < 0) || ((INT)wParam >= descr->nb_items))
return LB_ERR;
return descr->items[wParam].selected;
#ifndef __REACTOS__
case LB_SETSEL16:
lParam = (INT)(INT16)lParam;
/* fall through */
#endif
case LB_SETSEL:
return LISTBOX_SetSelection( descr, lParam, wParam, FALSE );
#ifndef __REACTOS__
case LB_SETCURSEL16:
wParam = (INT)(INT16)wParam;
/* fall through */
#endif
case LB_SETCURSEL:
if (IS_MULTISELECT(descr)) return LB_ERR;
LISTBOX_SetCaretIndex( descr, wParam, FALSE );
@ -3092,23 +2899,12 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
if (ret != LB_ERR) ret = descr->selected_item;
return ret;
#ifndef __REACTOS__
case LB_GETSELCOUNT16:
#endif
case LB_GETSELCOUNT:
return LISTBOX_GetSelCount( descr );
#ifndef __REACTOS__
case LB_GETSELITEMS16:
return LISTBOX_GetSelItems16( descr, wParam, (LPINT16)MapSL(lParam) );
#endif
case LB_GETSELITEMS:
return LISTBOX_GetSelItems( descr, wParam, (LPINT)lParam );
#ifndef __REACTOS__
case LB_SELITEMRANGE16:
#endif
case LB_SELITEMRANGE:
if (LOWORD(lParam) <= HIWORD(lParam))
return LISTBOX_SelectItemRange( descr, LOWORD(lParam),
@ -3117,38 +2913,21 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
return LISTBOX_SelectItemRange( descr, HIWORD(lParam),
LOWORD(lParam), wParam );
#ifndef __REACTOS__
case LB_SELITEMRANGEEX16:
#endif
case LB_SELITEMRANGEEX:
if ((INT)lParam >= (INT)wParam)
return LISTBOX_SelectItemRange( descr, wParam, lParam, TRUE );
else
return LISTBOX_SelectItemRange( descr, lParam, wParam, FALSE);
#ifndef __REACTOS__
case LB_GETHORIZONTALEXTENT16:
#endif
case LB_GETHORIZONTALEXTENT:
return descr->horz_extent;
#ifndef __REACTOS__
case LB_SETHORIZONTALEXTENT16:
#endif
case LB_SETHORIZONTALEXTENT:
return LISTBOX_SetHorizontalExtent( descr, wParam );
#ifndef __REACTOS__
case LB_GETANCHORINDEX16:
#endif
case LB_GETANCHORINDEX:
return descr->anchor_item;
#ifndef __REACTOS__
case LB_SETANCHORINDEX16:
wParam = (INT)(INT16)wParam;
/* fall through */
#endif
case LB_SETANCHORINDEX:
if (((INT)wParam < -1) || ((INT)wParam >= descr->nb_items))
{
@ -3158,14 +2937,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
descr->anchor_item = (INT)wParam;
return LB_OKAY;
#ifndef __REACTOS__
case LB_DIR16:
/* according to Win16 docs, DDL_DRIVES should make DDL_EXCLUSIVE
* be set automatically (this is different in Win32) */
if (wParam & DDL_DRIVES) wParam |= DDL_EXCLUSIVE;
lParam = (LPARAM)MapSL(lParam);
/* fall through */
#endif
case LB_DIR:
{
INT ret;
@ -3204,17 +2975,9 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
case LB_SETCOUNT:
return LISTBOX_SetCount( descr, (INT)wParam );
#ifndef __REACTOS__
case LB_SETTABSTOPS16:
return LISTBOX_SetTabStops( descr, (INT)(INT16)wParam, MapSL(lParam), TRUE );
#endif
case LB_SETTABSTOPS:
return LISTBOX_SetTabStops( descr, wParam, (LPINT)lParam, FALSE );
return LISTBOX_SetTabStops( descr, wParam, (LPINT)lParam );
#ifndef __REACTOS__
case LB_CARETON16:
#endif
case LB_CARETON:
if (descr->caret_on)
return LB_OKAY;
@ -3223,9 +2986,6 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
LISTBOX_RepaintItem( descr, descr->focus_item, ODA_FOCUS );
return LB_OKAY;
#ifndef __REACTOS__
case LB_CARETOFF16:
#endif
case LB_CARETOFF:
if (!descr->caret_on)
return LB_OKAY;
@ -3418,7 +3178,7 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
case WM_NCACTIVATE:
if (lphc) return 0;
break;
// ReactOS
case WM_UPDATEUISTATE:
if (unicode)
DefWindowProcW(descr->self, msg, wParam, lParam);
@ -3432,7 +3192,7 @@ LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,
LISTBOX_DrawFocusRect( descr, descr->in_focus );
}
break;
//
default:
if ((msg >= WM_USER) && (msg < 0xc000))
WARN("[%p]: unknown msg %04x wp %08lx lp %08lx\n",

View file

@ -68,9 +68,6 @@ static BOOL ScrollTrackVertical;
HBRUSH DefWndControlColor(HDC hDC, UINT ctlType);
//static LRESULT WINAPI ScrollBarWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
//static LRESULT WINAPI ScrollBarWndProcA( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
UINT WINAPI SetSystemTimer(HWND,UINT_PTR,UINT,TIMERPROC);
BOOL WINAPI KillSystemTimer(HWND,UINT_PTR);
@ -712,6 +709,22 @@ IntScrollDrawSizeGrip(HWND Wnd, HDC Dc)
DrawFrameControl(Dc, &Rect, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}
/***********************************************************************
* SCROLL_RefreshScrollBar
*
* Repaint the scroll bar interior after a SetScrollRange() or
* SetScrollPos() call.
*/
static void SCROLL_RefreshScrollBar( HWND hwnd, INT nBar,
BOOL arrows, BOOL interior )
{
HDC hdc = GetDCEx( hwnd, 0,
DCX_CACHE | ((nBar == SB_CTL) ? 0 : DCX_WINDOW) );
if (!hdc) return;
IntDrawScrollBar( hwnd, hdc, nBar);//, arrows, interior );
ReleaseDC( hwnd, hdc );
}
/***********************************************************************
@ -1399,14 +1412,14 @@ ScrollBarWndProc(WNDPROC DefWindowProc, HWND Wnd, UINT Msg, WPARAM wParam, LPARA
case SBM_GETPOS:
return IntScrollGetScrollPos(Wnd, SB_CTL);
case SBM_SETRANGEREDRAW:
case SBM_SETRANGE:
{
INT OldPos = IntScrollGetScrollPos(Wnd, SB_CTL);
SetScrollRange(Wnd, SB_CTL, wParam, lParam, FALSE);
if (OldPos != IntScrollGetScrollPos(Wnd, SB_CTL))
{
return OldPos;
}
if (Msg == SBM_SETRANGEREDRAW)
SCROLL_RefreshScrollBar( Wnd, SB_CTL, TRUE, TRUE );
if (OldPos != IntScrollGetScrollPos(Wnd, SB_CTL)) return OldPos;
}
return 0;
@ -1416,27 +1429,19 @@ ScrollBarWndProc(WNDPROC DefWindowProc, HWND Wnd, UINT Msg, WPARAM wParam, LPARA
case SBM_ENABLE_ARROWS:
return EnableScrollBar(Wnd, SB_CTL, wParam);
case SBM_SETRANGEREDRAW:
{
INT OldPos = IntScrollGetScrollPos(Wnd, SB_CTL);
SetScrollRange(Wnd, SB_CTL, wParam, lParam, TRUE);
if (OldPos != IntScrollGetScrollPos(Wnd, SB_CTL))
{
return OldPos;
}
}
return 0;
case SBM_SETSCROLLINFO:
return NtUserSetScrollInfo(Wnd, SB_CTL, (SCROLLINFO *) lParam, wParam);
case SBM_GETSCROLLINFO:
return NtUserSBGetParms(Wnd, SB_CTL, NULL, (SCROLLINFO *) lParam);
case SBM_GETSCROLLBARINFO:
((PSCROLLBARINFO)lParam)->cbSize = sizeof(SCROLLBARINFO);
return NtUserGetScrollBarInfo(Wnd, OBJID_CLIENT, (PSCROLLBARINFO)lParam);
case 0x00e5:
case 0x00e7:
case 0x00e8:
case 0x00eb:
case 0x00ec:
case 0x00ed:
case 0x00ee:
@ -1505,8 +1510,8 @@ RealGetScrollInfo(HWND Wnd, INT SBType, LPSCROLLINFO Info)
PWND pWnd;
PSBDATA pSBData = NULL;
if (SB_CTL == SBType)
{
if (SB_CTL == SBType)
{
return SendMessageW(Wnd, SBM_GETSCROLLINFO, 0, (LPARAM) Info);
}

View file

@ -296,23 +296,25 @@ static HANDLE STATIC_GetImage( HWND hwnd, WPARAM wParam, DWORD style )
*
* Load the icon for an SS_ICON control.
*/
static HICON STATIC_LoadIconA( HWND hwnd, LPCSTR name, DWORD style )
static HICON STATIC_LoadIconA( HINSTANCE hInstance, LPCSTR name, DWORD style )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
if ((style & SS_REALSIZEIMAGE) != 0)
HICON hicon = 0;
if (hInstance && ((ULONG_PTR)hInstance >> 16))
{
return LoadImageA(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
}
else
{
HICON hicon = LoadIconA( hInstance, name );
if (!hicon) hicon = LoadCursorA( hInstance, name );
if (!hicon) hicon = LoadIconA( 0, name );
/* Windows doesn't try to load a standard cursor,
probably because most IDs for standard cursors conflict
with the IDs for standard icons anyway */
return hicon;
if ((style & SS_REALSIZEIMAGE) != 0)
hicon = LoadImageA(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
else
{
hicon = LoadIconA( hInstance, name );
if (!hicon) hicon = LoadCursorA( hInstance, name );
}
}
if (!hicon) hicon = LoadIconA( 0, name );
/* Windows doesn't try to load a standard cursor,
probably because most IDs for standard cursors conflict
with the IDs for standard icons anyway */
return hicon;
}
/***********************************************************************
@ -320,48 +322,27 @@ static HICON STATIC_LoadIconA( HWND hwnd, LPCSTR name, DWORD style )
*
* Load the icon for an SS_ICON control.
*/
static HICON STATIC_LoadIconW( HWND hwnd, LPCWSTR name, DWORD style )
static HICON STATIC_LoadIconW( HINSTANCE hInstance, LPCWSTR name, DWORD style )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
if ((style & SS_REALSIZEIMAGE) != 0)
HICON hicon = 0;
if (hInstance && ((ULONG_PTR)hInstance >> 16))
{
return LoadImageW(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
}
else
{
HICON hicon = LoadIconW( hInstance, name );
if (!hicon) hicon = LoadCursorW( hInstance, name );
if (!hicon) hicon = LoadIconW( 0, name );
/* Windows doesn't try to load a standard cursor,
probably because most IDs for standard cursors conflict
with the IDs for standard icons anyway */
return hicon;
if ((style & SS_REALSIZEIMAGE) != 0)
hicon = LoadImageW(hInstance, name, IMAGE_ICON, 0, 0, LR_SHARED);
else
{
hicon = LoadIconW( hInstance, name );
if (!hicon) hicon = LoadCursorW( hInstance, name );
}
}
if (!hicon) hicon = LoadIconW( 0, name );
/* Windows doesn't try to load a standard cursor,
probably because most IDs for standard cursors conflict
with the IDs for standard icons anyway */
return hicon;
}
/***********************************************************************
* STATIC_LoadBitmapA
*
* Load the bitmap for an SS_BITMAP control.
*/
static HBITMAP STATIC_LoadBitmapA( HWND hwnd, LPCSTR name )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
/* Windows doesn't try to load OEM Bitmaps (hInstance == NULL) */
return LoadBitmapA( hInstance, name );
}
/***********************************************************************
* STATIC_LoadBitmapW
*
* Load the bitmap for an SS_BITMAP control.
*/
static HBITMAP STATIC_LoadBitmapW( HWND hwnd, LPCWSTR name )
{
HINSTANCE hInstance = (HINSTANCE)GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
/* Windows doesn't try to load OEM Bitmaps (hInstance == NULL) */
return LoadBitmapW( hInstance, name );
}
/***********************************************************************
* STATIC_TryPaintFcn
@ -513,6 +494,7 @@ LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam,
{
LPCSTR textA;
LPCWSTR textW;
HINSTANCE hInstance;
if (full_style & SS_SUNKEN)
SetWindowLongPtrW( hwnd, GWL_EXSTYLE,
@ -527,26 +509,30 @@ LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam,
{
textA = ((LPCREATESTRUCTA)lParam)->lpszName;
textW = NULL;
}
hInstance = (HINSTANCE)GetWindowLongPtrW( hwnd, GWLP_HINSTANCE );
switch (style) {
case SS_ICON:
{
HICON hIcon;
if(unicode)
hIcon = STATIC_LoadIconW(hwnd, textW, full_style);
if(unicode )
hIcon = STATIC_LoadIconW(hInstance, textW, full_style);
else
hIcon = STATIC_LoadIconA(hwnd, textA, full_style);
hIcon = STATIC_LoadIconA(hInstance, textA, full_style);
STATIC_SetIcon(hwnd, hIcon, full_style);
}
break;
case SS_BITMAP:
if ((ULONG_PTR)hInstance >> 16)
{
HBITMAP hBitmap;
if(unicode)
hBitmap = STATIC_LoadBitmapW(hwnd, textW);
hBitmap = LoadBitmapW(hInstance, textW);
else
hBitmap = STATIC_LoadBitmapA(hwnd, textA);
hBitmap = LoadBitmapA(hInstance, textA);
STATIC_SetBitmap(hwnd, hBitmap, full_style);
}
break;
@ -575,8 +561,8 @@ LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam,
if (hasTextStyle( full_style ))
{
SetWindowLongPtrW( hwnd, HFONT_GWL_OFFSET, wParam );
if (LOWORD(lParam))
RedrawWindow( hwnd, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW | RDW_ALLCHILDREN );
if (LOWORD(lParam))
RedrawWindow( hwnd, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_UPDATENOW | RDW_ALLCHILDREN );
}
break;
@ -608,9 +594,7 @@ LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam,
case STM_GETIMAGE:
return (LRESULT)STATIC_GetImage( hwnd, wParam, full_style );
#ifndef __REACTOS__
case STM_GETICON16:
#endif
case STM_GETICON:
return (LRESULT)STATIC_GetImage( hwnd, IMAGE_ICON, full_style );
@ -636,9 +620,6 @@ LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam,
STATIC_TryPaintFcn( hwnd, full_style );
break;
#ifndef __REACTOS__
case STM_SETICON16:
#endif
case STM_SETICON:
lResult = (LRESULT)STATIC_SetIcon( hwnd, (HICON)wParam, full_style );
STATIC_TryPaintFcn( hwnd, full_style );

View file

@ -1993,11 +1993,16 @@ extern "C" {
#define SBM_ENABLE_ARROWS 228
#define SBM_GETPOS 225
#define SBM_GETRANGE 227
#define SBM_GETSCROLLINFO 234
#define SBM_SETPOS 224
#define SBM_SETRANGE 226
#define SBM_SETRANGEREDRAW 230
#if (_WIN32_WINNT >= 0x0400)
#define SBM_GETSCROLLINFO 234
#define SBM_SETSCROLLINFO 233
#endif
#if (_WIN32_WINNT >= 0x0501)
#define SBM_GETSCROLLBARINFO 235
#endif
#define STM_GETICON 369
#define STM_GETIMAGE 371
#define STM_SETICON 368

View file

@ -230,13 +230,13 @@ snmpapi -
reactos/dll/win32/snmpapi/main.c # Synced at 20090222
User32 -
reactos/dll/win32/user32/controls/button.c # Synced to Wine-1_1_22
reactos/dll/win32/user32/controls/combo.c # Synced to Wine-1_1_22
reactos/dll/win32/user32/controls/edit.c # Synced to Wine-1_1_29
reactos/dll/win32/user32/controls/icontitle.c # Synced to Wine-1_1_13
reactos/dll/win32/user32/controls/listbox.c # Synced to Wine-1_1_22
reactos/dll/win32/user32/controls/button.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/controls/combo.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/controls/edit.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/controls/icontitle.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/controls/listbox.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/controls/scrollbar.c # Forked
reactos/dll/win32/user32/controls/static.c # Synced to Wine-1_1_22
reactos/dll/win32/user32/controls/static.c # Synced to Wine-1_1_39
reactos/dll/win32/user32/include/dde_private.h # Synced to wine 1.1.24