Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
b6abcb2f
Commit
b6abcb2f
authored
Dec 19, 2009
by
Nikolay Sivov
Committed by
Alexandre Julliard
Dec 21, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
comctl32/rebar: Move parameter cast to winproc.
parent
1e74d599
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
127 additions
and
160 deletions
+127
-160
rebar.c
dlls/comctl32/rebar.c
+127
-160
No files found.
dlls/comctl32/rebar.c
View file @
b6abcb2f
...
...
@@ -1785,7 +1785,7 @@ REBAR_CommonSetupBand(HWND hwnd, const REBARBANDINFOW *lprbbi, REBAR_BAND *lpBan
}
static
LRESULT
REBAR_InternalEraseBkGnd
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
const
RECT
*
clip
)
REBAR_InternalEraseBkGnd
(
const
REBAR_INFO
*
infoPtr
,
HDC
hdc
,
const
RECT
*
clip
)
/* Function: This erases the background rectangle by drawing */
/* each band with its background color (or the default) and */
/* draws each bands right separator if necessary. The row */
...
...
@@ -1794,7 +1794,6 @@ REBAR_InternalEraseBkGnd (const REBAR_INFO *infoPtr, WPARAM wParam, const RECT *
REBAR_BAND
*
lpBand
;
UINT
i
;
INT
oldrow
;
HDC
hdc
=
(
HDC
)
wParam
;
RECT
cr
;
COLORREF
old
=
CLR_NONE
,
new
;
HTHEME
theme
=
GetWindowTheme
(
infoPtr
->
hwndSelf
);
...
...
@@ -2083,17 +2082,16 @@ REBAR_DeleteBand (REBAR_INFO *infoPtr, WPARAM wParam)
static
LRESULT
REBAR_GetBandBorders
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_GetBandBorders
(
const
REBAR_INFO
*
infoPtr
,
UINT
uBand
,
RECT
*
lpRect
)
{
LPRECT
lpRect
=
(
LPRECT
)
lParam
;
REBAR_BAND
*
lpBand
;
if
(
!
l
Param
)
if
(
!
l
pRect
)
return
0
;
if
(
(
UINT
)
wParam
>=
infoPtr
->
uNumBands
)
if
(
uBand
>=
infoPtr
->
uNumBands
)
return
0
;
lpBand
=
REBAR_GetBand
(
infoPtr
,
(
UINT
)
wParam
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
uBand
);
/* FIXME - the following values were determined by experimentation */
/* with the REBAR Control Spy. I have guesses as to what the 4 and */
...
...
@@ -2131,22 +2129,21 @@ REBAR_GetBandCount (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_GetBandInfoT
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
,
BOOL
bUnicode
)
REBAR_GetBandInfoT
(
const
REBAR_INFO
*
infoPtr
,
UINT
uIndex
,
LPREBARBANDINFOW
lprbbi
,
BOOL
bUnicode
)
{
LPREBARBANDINFOW
lprbbi
=
(
LPREBARBANDINFOW
)
lParam
;
REBAR_BAND
*
lpBand
;
if
(
lprbbi
==
NULL
)
return
FALSE
;
if
(
lprbbi
->
cbSize
<
REBARBANDINFOA_V3_SIZE
)
return
FALSE
;
if
(
(
UINT
)
wParam
>=
infoPtr
->
uNumBands
)
if
(
uIndex
>=
infoPtr
->
uNumBands
)
return
FALSE
;
TRACE
(
"index %u (bUnicode=%d)
\n
"
,
(
UINT
)
wParam
,
bUnicode
);
TRACE
(
"index %u (bUnicode=%d)
\n
"
,
uIndex
,
bUnicode
);
/* copy band information */
lpBand
=
REBAR_GetBand
(
infoPtr
,
(
UINT
)
wParam
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
uIndex
);
if
(
lprbbi
->
fMask
&
RBBIM_STYLE
)
lprbbi
->
fStyle
=
lpBand
->
fStyle
;
...
...
@@ -2224,10 +2221,8 @@ REBAR_GetBarHeight (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_GetBarInfo
(
const
REBAR_INFO
*
infoPtr
,
LP
ARAM
lParam
)
REBAR_GetBarInfo
(
const
REBAR_INFO
*
infoPtr
,
LP
REBARINFO
lpInfo
)
{
LPREBARINFO
lpInfo
=
(
LPREBARINFO
)
lParam
;
if
(
lpInfo
==
NULL
)
return
FALSE
;
...
...
@@ -2264,7 +2259,7 @@ REBAR_GetBkColor (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_GetPalette
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_GetPalette
(
const
REBAR_INFO
*
infoPtr
)
{
FIXME
(
"empty stub!
\n
"
);
...
...
@@ -2273,13 +2268,11 @@ REBAR_GetPalette (const REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static
LRESULT
REBAR_GetRect
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_GetRect
(
const
REBAR_INFO
*
infoPtr
,
INT
iBand
,
RECT
*
lprc
)
{
INT
iBand
=
(
INT
)
wParam
;
LPRECT
lprc
=
(
LPRECT
)
lParam
;
REBAR_BAND
*
lpBand
;
if
(
(
iBand
<
0
)
||
((
UINT
)
iBand
>=
infoPtr
->
uNumBands
)
)
if
(
iBand
<
0
||
iBand
>=
infoPtr
->
uNumBands
)
return
FALSE
;
if
(
!
lprc
)
return
FALSE
;
...
...
@@ -2304,9 +2297,8 @@ REBAR_GetRowCount (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_GetRowHeight
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_GetRowHeight
(
const
REBAR_INFO
*
infoPtr
,
INT
iRow
)
{
INT
iRow
=
(
INT
)
wParam
;
int
j
=
0
,
ret
=
0
;
UINT
i
;
REBAR_BAND
*
lpBand
;
...
...
@@ -2360,10 +2352,8 @@ REBAR_GetVersion (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_HitTest
(
const
REBAR_INFO
*
infoPtr
,
LP
ARAM
lParam
)
REBAR_HitTest
(
const
REBAR_INFO
*
infoPtr
,
LP
RBHITTESTINFO
lprbht
)
{
LPRBHITTESTINFO
lprbht
=
(
LPRBHITTESTINFO
)
lParam
;
if
(
!
lprbht
)
return
-
1
;
...
...
@@ -2374,57 +2364,50 @@ REBAR_HitTest (const REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_IdToIndex
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_IdToIndex
(
const
REBAR_INFO
*
infoPtr
,
UINT
uId
)
{
UINT
i
;
if
(
infoPtr
==
NULL
)
return
-
1
;
if
(
infoPtr
->
uNumBands
<
1
)
return
-
1
;
for
(
i
=
0
;
i
<
infoPtr
->
uNumBands
;
i
++
)
{
if
(
REBAR_GetBand
(
infoPtr
,
i
)
->
wID
==
(
UINT
)
wParam
)
{
TRACE
(
"id %u is band %u found!
\n
"
,
(
UINT
)
wParam
,
i
);
if
(
REBAR_GetBand
(
infoPtr
,
i
)
->
wID
==
uId
)
{
TRACE
(
"id %u is band %u found!
\n
"
,
uId
,
i
);
return
i
;
}
}
TRACE
(
"id %u is not found
\n
"
,
(
UINT
)
wParam
);
TRACE
(
"id %u is not found
\n
"
,
uId
);
return
-
1
;
}
static
LRESULT
REBAR_InsertBandT
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
,
BOOL
bUnicode
)
REBAR_InsertBandT
(
REBAR_INFO
*
infoPtr
,
INT
iIndex
,
LPREBARBANDINFOW
lprbbi
,
BOOL
bUnicode
)
{
LPREBARBANDINFOW
lprbbi
=
(
LPREBARBANDINFOW
)
lParam
;
UINT
uIndex
=
(
UINT
)
wParam
;
REBAR_BAND
*
lpBand
;
if
(
infoPtr
==
NULL
)
return
FALSE
;
if
(
lprbbi
==
NULL
)
return
FALSE
;
if
(
lprbbi
->
cbSize
<
REBARBANDINFOA_V3_SIZE
)
return
FALSE
;
/* trace the index as signed to see the -1 */
TRACE
(
"insert band at %d (bUnicode=%d)!
\n
"
,
(
INT
)
u
Index
,
bUnicode
);
TRACE
(
"insert band at %d (bUnicode=%d)!
\n
"
,
i
Index
,
bUnicode
);
REBAR_DumpBandInfo
(
lprbbi
);
if
(
!
(
lpBand
=
Alloc
(
sizeof
(
REBAR_BAND
))))
return
FALSE
;
if
((
(
INT
)
uIndex
==
-
1
)
||
(
u
Index
>
infoPtr
->
uNumBands
))
u
Index
=
infoPtr
->
uNumBands
;
if
(
DPA_InsertPtr
(
infoPtr
->
bands
,
u
Index
,
lpBand
)
==
-
1
)
if
((
iIndex
==
-
1
)
||
(
i
Index
>
infoPtr
->
uNumBands
))
i
Index
=
infoPtr
->
uNumBands
;
if
(
DPA_InsertPtr
(
infoPtr
->
bands
,
i
Index
,
lpBand
)
==
-
1
)
{
Free
(
lpBand
);
return
FALSE
;
}
infoPtr
->
uNumBands
++
;
TRACE
(
"index %
u!
\n
"
,
u
Index
);
TRACE
(
"index %
d!
\n
"
,
i
Index
);
/* initialize band */
memset
(
lpBand
,
0
,
sizeof
(
lpBand
));
...
...
@@ -2463,29 +2446,27 @@ REBAR_InsertBandT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnico
static
LRESULT
REBAR_MaximizeBand
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_MaximizeBand
(
const
REBAR_INFO
*
infoPtr
,
INT
iBand
,
LPARAM
lParam
)
{
REBAR_BAND
*
lpBand
;
UINT
uBand
=
(
UINT
)
wParam
;
int
iRowBegin
,
iRowEnd
;
int
cxDesired
,
extra
,
extraOrig
;
int
cxIdealBand
;
/* Validate */
if
((
infoPtr
->
uNumBands
==
0
)
||
((
INT
)
uBand
<
0
)
||
(
uBand
>=
infoPtr
->
uNumBands
))
{
if
(
infoPtr
->
uNumBands
==
0
||
iBand
<
0
||
iBand
>=
infoPtr
->
uNumBands
)
{
/* error !!! */
ERR
(
"Illegal MaximizeBand, requested=%d, current band count=%d
\n
"
,
(
INT
)
u
Band
,
infoPtr
->
uNumBands
);
i
Band
,
infoPtr
->
uNumBands
);
return
FALSE
;
}
lpBand
=
REBAR_GetBand
(
infoPtr
,
u
Band
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
i
Band
);
if
(
lpBand
->
fStyle
&
RBBS_HIDDEN
)
{
/* Windows is buggy and creates a hole */
WARN
(
"Ignoring maximize request on a hidden band (%d)
\n
"
,
u
Band
);
WARN
(
"Ignoring maximize request on a hidden band (%d)
\n
"
,
i
Band
);
return
FALSE
;
}
...
...
@@ -2495,16 +2476,16 @@ REBAR_MaximizeBand (const REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
else
cxDesired
=
infoPtr
->
calcSize
.
cx
;
iRowBegin
=
get_row_begin_for_band
(
infoPtr
,
u
Band
);
iRowEnd
=
get_row_end_for_band
(
infoPtr
,
u
Band
);
iRowBegin
=
get_row_begin_for_band
(
infoPtr
,
i
Band
);
iRowEnd
=
get_row_end_for_band
(
infoPtr
,
i
Band
);
extraOrig
=
extra
=
cxDesired
-
lpBand
->
cxEffective
;
if
(
extra
>
0
)
extra
=
REBAR_ShrinkBandsRTL
(
infoPtr
,
iRowBegin
,
u
Band
,
extra
,
TRUE
);
extra
=
REBAR_ShrinkBandsRTL
(
infoPtr
,
iRowBegin
,
i
Band
,
extra
,
TRUE
);
if
(
extra
>
0
)
extra
=
REBAR_ShrinkBandsLTR
(
infoPtr
,
next_visible
(
infoPtr
,
u
Band
),
iRowEnd
,
extra
,
TRUE
);
extra
=
REBAR_ShrinkBandsLTR
(
infoPtr
,
next_visible
(
infoPtr
,
i
Band
),
iRowEnd
,
extra
,
TRUE
);
lpBand
->
cxEffective
+=
extraOrig
-
extra
;
lpBand
->
cx
=
lpBand
->
cxEffective
;
TRACE
(
"(%
ld, %ld): Wanted size %d, obtained %d (shrink %d, %d)
\n
"
,
wParam
,
lParam
,
cxDesired
,
lpBand
->
cx
,
extraOrig
,
extra
);
TRACE
(
"(%
d, %ld): Wanted size %d, obtained %d (shrink %d, %d)
\n
"
,
iBand
,
lParam
,
cxDesired
,
lpBand
->
cx
,
extraOrig
,
extra
);
REBAR_SetRowRectsX
(
infoPtr
,
iRowBegin
,
iRowEnd
);
if
(
infoPtr
->
dwStyle
&
CCS_VERT
)
...
...
@@ -2518,10 +2499,9 @@ REBAR_MaximizeBand (const REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static
LRESULT
REBAR_MinimizeBand
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_MinimizeBand
(
const
REBAR_INFO
*
infoPtr
,
INT
iBand
)
{
REBAR_BAND
*
lpBand
;
UINT
uBand
=
(
UINT
)
wParam
;
int
iPrev
,
iRowBegin
,
iRowEnd
;
/* A "minimize" band is equivalent to "dragging" the gripper
...
...
@@ -2530,34 +2510,33 @@ REBAR_MinimizeBand (const REBAR_INFO *infoPtr, WPARAM wParam)
*/
/* Validate */
if
((
infoPtr
->
uNumBands
==
0
)
||
((
INT
)
uBand
<
0
)
||
(
uBand
>=
infoPtr
->
uNumBands
))
{
if
(
infoPtr
->
uNumBands
==
0
||
iBand
<
0
||
iBand
>=
infoPtr
->
uNumBands
)
{
/* error !!! */
ERR
(
"Illegal MinimizeBand, requested=%d, current band count=%d
\n
"
,
(
INT
)
u
Band
,
infoPtr
->
uNumBands
);
i
Band
,
infoPtr
->
uNumBands
);
return
FALSE
;
}
/* compute amount of movement and validate */
lpBand
=
REBAR_GetBand
(
infoPtr
,
u
Band
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
i
Band
);
if
(
lpBand
->
fStyle
&
RBBS_HIDDEN
)
{
/* Windows is buggy and creates a hole/overlap */
WARN
(
"Ignoring minimize request on a hidden band (%d)
\n
"
,
u
Band
);
WARN
(
"Ignoring minimize request on a hidden band (%d)
\n
"
,
i
Band
);
return
FALSE
;
}
iPrev
=
prev_visible
(
infoPtr
,
u
Band
);
iPrev
=
prev_visible
(
infoPtr
,
i
Band
);
/* if first band in row */
if
(
iPrev
<
0
||
REBAR_GetBand
(
infoPtr
,
iPrev
)
->
iRow
!=
lpBand
->
iRow
)
{
int
iNext
=
next_visible
(
infoPtr
,
u
Band
);
int
iNext
=
next_visible
(
infoPtr
,
i
Band
);
if
(
iNext
<
infoPtr
->
uNumBands
&&
REBAR_GetBand
(
infoPtr
,
iNext
)
->
iRow
==
lpBand
->
iRow
)
{
TRACE
(
"(%
ld): Minimizing the first band in row is by maximizing the second
\n
"
,
wParam
);
TRACE
(
"(%
d): Minimizing the first band in row is by maximizing the second
\n
"
,
iBand
);
REBAR_MaximizeBand
(
infoPtr
,
iNext
,
FALSE
);
}
else
TRACE
(
"(%
ld): Only one band in row - nothing to do
\n
"
,
wParam
);
TRACE
(
"(%
d): Only one band in row - nothing to do
\n
"
,
iBand
);
return
TRUE
;
}
...
...
@@ -2565,8 +2544,8 @@ REBAR_MinimizeBand (const REBAR_INFO *infoPtr, WPARAM wParam)
REBAR_GetBand
(
infoPtr
,
iPrev
)
->
cx
=
REBAR_GetBand
(
infoPtr
,
iPrev
)
->
cxEffective
;
lpBand
->
cx
=
lpBand
->
cxEffective
=
lpBand
->
cxMinBand
;
iRowBegin
=
get_row_begin_for_band
(
infoPtr
,
u
Band
);
iRowEnd
=
get_row_end_for_band
(
infoPtr
,
u
Band
);
iRowBegin
=
get_row_begin_for_band
(
infoPtr
,
i
Band
);
iRowEnd
=
get_row_end_for_band
(
infoPtr
,
i
Band
);
REBAR_SetRowRectsX
(
infoPtr
,
iRowBegin
,
iRowEnd
);
if
(
infoPtr
->
dwStyle
&
CCS_VERT
)
...
...
@@ -2579,27 +2558,25 @@ REBAR_MinimizeBand (const REBAR_INFO *infoPtr, WPARAM wParam)
static
LRESULT
REBAR_MoveBand
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_MoveBand
(
REBAR_INFO
*
infoPtr
,
INT
iFrom
,
INT
iTo
)
{
REBAR_BAND
*
lpBand
;
UINT
uFrom
=
(
UINT
)
wParam
;
UINT
uTo
=
(
UINT
)
lParam
;
/* Validate */
if
((
infoPtr
->
uNumBands
==
0
)
||
(
(
INT
)
uFrom
<
0
)
||
(
uFrom
>=
infoPtr
->
uNumBands
)
||
(
(
INT
)
uTo
<
0
)
||
(
uTo
>=
infoPtr
->
uNumBands
)
)
{
(
iFrom
<
0
)
||
iFrom
>=
infoPtr
->
uNumBands
||
(
iTo
<
0
)
||
iTo
>=
infoPtr
->
uNumBands
)
{
/* error !!! */
ERR
(
"Illegal MoveBand, from=%d, to=%d, current band count=%d
\n
"
,
(
INT
)
uFrom
,
(
INT
)
u
To
,
infoPtr
->
uNumBands
);
iFrom
,
i
To
,
infoPtr
->
uNumBands
);
return
FALSE
;
}
lpBand
=
REBAR_GetBand
(
infoPtr
,
u
From
);
DPA_DeletePtr
(
infoPtr
->
bands
,
u
From
);
DPA_InsertPtr
(
infoPtr
->
bands
,
u
To
,
lpBand
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
i
From
);
DPA_DeletePtr
(
infoPtr
->
bands
,
i
From
);
DPA_InsertPtr
(
infoPtr
->
bands
,
i
To
,
lpBand
);
TRACE
(
"moved band %d to index %d
\n
"
,
uFrom
,
u
To
);
TRACE
(
"moved band %d to index %d
\n
"
,
iFrom
,
i
To
);
REBAR_DumpBand
(
infoPtr
);
/* **************************************************** */
...
...
@@ -2623,9 +2600,8 @@ REBAR_strdifW( LPCWSTR a, LPCWSTR b )
}
static
LRESULT
REBAR_SetBandInfoT
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
,
BOOL
bUnicode
)
REBAR_SetBandInfoT
(
REBAR_INFO
*
infoPtr
,
INT
iBand
,
LPREBARBANDINFOW
lprbbi
,
BOOL
bUnicode
)
{
LPREBARBANDINFOW
lprbbi
=
(
LPREBARBANDINFOW
)
lParam
;
REBAR_BAND
*
lpBand
;
UINT
uChanged
;
...
...
@@ -2633,14 +2609,14 @@ REBAR_SetBandInfoT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnic
return
FALSE
;
if
(
lprbbi
->
cbSize
<
REBARBANDINFOA_V3_SIZE
)
return
FALSE
;
if
(
(
UINT
)
wParam
>=
infoPtr
->
uNumBands
)
if
(
iBand
>=
infoPtr
->
uNumBands
)
return
FALSE
;
TRACE
(
"index %
u
\n
"
,
(
UINT
)
wParam
);
TRACE
(
"index %
d
\n
"
,
iBand
);
REBAR_DumpBandInfo
(
lprbbi
);
/* set band information */
lpBand
=
REBAR_GetBand
(
infoPtr
,
(
UINT
)
wParam
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
iBand
);
uChanged
=
REBAR_CommonSetupBand
(
infoPtr
->
hwndSelf
,
lprbbi
,
lpBand
);
if
(
lprbbi
->
fMask
&
RBBIM_TEXT
)
{
...
...
@@ -2673,9 +2649,8 @@ REBAR_SetBandInfoT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnic
static
LRESULT
REBAR_SetBarInfo
(
REBAR_INFO
*
infoPtr
,
LP
ARAM
lParam
)
REBAR_SetBarInfo
(
REBAR_INFO
*
infoPtr
,
LP
REBARINFO
lpInfo
)
{
LPREBARINFO
lpInfo
=
(
LPREBARINFO
)
lParam
;
REBAR_BAND
*
lpBand
;
UINT
i
;
...
...
@@ -2714,12 +2689,12 @@ REBAR_SetBarInfo (REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_SetBkColor
(
REBAR_INFO
*
infoPtr
,
LPARAM
lParam
)
REBAR_SetBkColor
(
REBAR_INFO
*
infoPtr
,
COLORREF
clr
)
{
COLORREF
clrTemp
;
clrTemp
=
infoPtr
->
clrBk
;
infoPtr
->
clrBk
=
(
COLORREF
)
lParam
;
infoPtr
->
clrBk
=
clr
;
TRACE
(
"background color 0x%06x!
\n
"
,
infoPtr
->
clrBk
);
...
...
@@ -2732,23 +2707,23 @@ REBAR_SetBkColor (REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_SetParent
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_SetParent
(
REBAR_INFO
*
infoPtr
,
HWND
parent
)
{
HWND
hwndTemp
=
infoPtr
->
hwndNotify
;
infoPtr
->
hwndNotify
=
(
HWND
)
wParam
;
infoPtr
->
hwndNotify
=
parent
;
return
(
LRESULT
)
hwndTemp
;
}
static
LRESULT
REBAR_SetTextColor
(
REBAR_INFO
*
infoPtr
,
LPARAM
lParam
)
REBAR_SetTextColor
(
REBAR_INFO
*
infoPtr
,
COLORREF
clr
)
{
COLORREF
clrTemp
;
clrTemp
=
infoPtr
->
clrText
;
infoPtr
->
clrText
=
(
COLORREF
)
lParam
;
infoPtr
->
clrText
=
clr
;
TRACE
(
"text color 0x%06x!
\n
"
,
infoPtr
->
clrText
);
...
...
@@ -2760,15 +2735,15 @@ REBAR_SetTextColor (REBAR_INFO *infoPtr, LPARAM lParam)
static
inline
LRESULT
REBAR_SetUnicodeFormat
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_SetUnicodeFormat
(
REBAR_INFO
*
infoPtr
,
BOOL
unicode
)
{
BOOL
bTemp
=
infoPtr
->
bUnicode
;
TRACE
(
"to %s hwnd=%p, was %s
\n
"
,
((
BOOL
)
wParam
)
?
"TRUE"
:
"FALSE"
,
infoPtr
->
hwndSelf
,
unicode
?
"TRUE"
:
"FALSE"
,
infoPtr
->
hwndSelf
,
(
bTemp
)
?
"TRUE"
:
"FALSE"
);
infoPtr
->
bUnicode
=
(
BOOL
)
wParam
;
infoPtr
->
bUnicode
=
unicode
;
return
bTemp
;
}
...
...
@@ -2791,23 +2766,23 @@ REBAR_SetVersion (REBAR_INFO *infoPtr, INT iVersion)
static
LRESULT
REBAR_ShowBand
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_ShowBand
(
REBAR_INFO
*
infoPtr
,
INT
iBand
,
BOOL
show
)
{
REBAR_BAND
*
lpBand
;
if
(
((
INT
)
wParam
<
0
)
||
((
INT
)
wParam
>
infoPtr
->
uNumBands
)
)
if
(
iBand
<
0
||
iBand
>
infoPtr
->
uNumBands
)
return
FALSE
;
lpBand
=
REBAR_GetBand
(
infoPtr
,
(
INT
)
wParam
);
lpBand
=
REBAR_GetBand
(
infoPtr
,
iBand
);
if
(
(
BOOL
)
lParam
)
{
TRACE
(
"show band %d
\n
"
,
(
INT
)
wParam
);
if
(
show
)
{
TRACE
(
"show band %d
\n
"
,
iBand
);
lpBand
->
fStyle
=
lpBand
->
fStyle
&
~
RBBS_HIDDEN
;
if
(
IsWindow
(
lpBand
->
hwndChild
))
ShowWindow
(
lpBand
->
hwndChild
,
SW_SHOW
);
}
else
{
TRACE
(
"hide band %d
\n
"
,
(
INT
)
wParam
);
TRACE
(
"hide band %d
\n
"
,
iBand
);
lpBand
->
fStyle
=
lpBand
->
fStyle
|
RBBS_HIDDEN
;
if
(
IsWindow
(
lpBand
->
hwndChild
))
ShowWindow
(
lpBand
->
hwndChild
,
SW_HIDE
);
...
...
@@ -2821,10 +2796,8 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static
LRESULT
REBAR_SizeToRect
(
REBAR_INFO
*
infoPtr
,
LPARAM
lParam
)
REBAR_SizeToRect
(
REBAR_INFO
*
infoPtr
,
const
RECT
*
lpRect
)
{
LPRECT
lpRect
=
(
LPRECT
)
lParam
;
if
(
lpRect
==
NULL
)
return
FALSE
;
...
...
@@ -2836,9 +2809,8 @@ REBAR_SizeToRect (REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_Create
(
REBAR_INFO
*
infoPtr
,
LP
ARAM
lParam
)
REBAR_Create
(
REBAR_INFO
*
infoPtr
,
LP
CREATESTRUCTW
cs
)
{
LPCREATESTRUCTW
cs
=
(
LPCREATESTRUCTW
)
lParam
;
RECT
wnrc1
,
clrc1
;
if
(
TRACE_ON
(
rebar
))
{
...
...
@@ -2887,7 +2859,7 @@ REBAR_Destroy (REBAR_INFO *infoPtr)
DestroyCursor
(
infoPtr
->
hcurHorz
);
DestroyCursor
(
infoPtr
->
hcurVert
);
DestroyCursor
(
infoPtr
->
hcurDrag
);
if
(
infoPtr
->
hDefaultFont
)
DeleteObject
(
infoPtr
->
hDefaultFont
);
if
(
infoPtr
->
hDefaultFont
)
DeleteObject
(
infoPtr
->
hDefaultFont
);
SetWindowLongPtrW
(
infoPtr
->
hwndSelf
,
0
,
0
);
CloseThemeData
(
GetWindowTheme
(
infoPtr
->
hwndSelf
));
...
...
@@ -2900,12 +2872,12 @@ REBAR_Destroy (REBAR_INFO *infoPtr)
static
LRESULT
REBAR_EraseBkGnd
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_EraseBkGnd
(
const
REBAR_INFO
*
infoPtr
,
HDC
hdc
)
{
RECT
cliprect
;
if
(
GetClipBox
(
(
HDC
)
wParam
,
&
cliprect
))
return
REBAR_InternalEraseBkGnd
(
infoPtr
,
wParam
,
&
cliprect
);
if
(
GetClipBox
(
hdc
,
&
cliprect
))
return
REBAR_InternalEraseBkGnd
(
infoPtr
,
hdc
,
&
cliprect
);
return
0
;
}
...
...
@@ -2917,14 +2889,14 @@ REBAR_GetFont (const REBAR_INFO *infoPtr)
}
static
LRESULT
REBAR_PushChevron
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
,
LPARAM
lParam
)
REBAR_PushChevron
(
const
REBAR_INFO
*
infoPtr
,
UINT
uBand
,
LPARAM
lParam
)
{
if
(
(
UINT
)
wParam
<
infoPtr
->
uNumBands
)
if
(
uBand
<
infoPtr
->
uNumBands
)
{
NMREBARCHEVRON
nmrbc
;
REBAR_BAND
*
lpBand
=
REBAR_GetBand
(
infoPtr
,
wParam
);
REBAR_BAND
*
lpBand
=
REBAR_GetBand
(
infoPtr
,
uBand
);
TRACE
(
"Pressed chevron on band %
ld
\n
"
,
wParam
);
TRACE
(
"Pressed chevron on band %
u
\n
"
,
uBand
);
/* redraw chevron in pushed state */
lpBand
->
fDraw
|=
DRAW_CHEVRONPUSHED
;
...
...
@@ -2932,7 +2904,7 @@ REBAR_PushChevron(const REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
RDW_ERASE
|
RDW_INVALIDATE
|
RDW_UPDATENOW
);
/* notify app so it can display a popup menu or whatever */
nmrbc
.
uBand
=
wParam
;
nmrbc
.
uBand
=
uBand
;
nmrbc
.
wID
=
lpBand
->
wID
;
nmrbc
.
lParam
=
lpBand
->
lParam
;
nmrbc
.
rc
=
lpBand
->
rcChevron
;
...
...
@@ -3122,10 +3094,9 @@ REBAR_MouseMove (REBAR_INFO *infoPtr, LPARAM lParam)
static
inline
LRESULT
REBAR_NCCalcSize
(
const
REBAR_INFO
*
infoPtr
,
LPARAM
lParam
)
REBAR_NCCalcSize
(
const
REBAR_INFO
*
infoPtr
,
RECT
*
rect
)
{
HTHEME
theme
;
RECT
*
rect
=
(
RECT
*
)
lParam
;
if
(
infoPtr
->
dwStyle
&
WS_BORDER
)
{
rect
->
left
=
min
(
rect
->
left
+
GetSystemMetrics
(
SM_CXEDGE
),
rect
->
right
);
...
...
@@ -3144,9 +3115,8 @@ REBAR_NCCalcSize (const REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_NCCreate
(
HWND
hwnd
,
LP
ARAM
lParam
)
REBAR_NCCreate
(
HWND
hwnd
,
LP
CREATESTRUCTW
cs
)
{
LPCREATESTRUCTW
cs
=
(
LPCREATESTRUCTW
)
lParam
;
REBAR_INFO
*
infoPtr
=
REBAR_GetInfoPtr
(
hwnd
);
RECT
wnrc1
,
clrc1
;
NONCLIENTMETRICSW
ncm
;
...
...
@@ -3310,11 +3280,11 @@ REBAR_NCPaint (const REBAR_INFO *infoPtr)
static
LRESULT
REBAR_NotifyFormat
(
REBAR_INFO
*
infoPtr
,
LPARAM
lParam
)
REBAR_NotifyFormat
(
REBAR_INFO
*
infoPtr
,
LPARAM
cmd
)
{
INT
i
;
if
(
lParam
==
NF_REQUERY
)
{
if
(
cmd
==
NF_REQUERY
)
{
i
=
SendMessageW
(
REBAR_GetNotifyParent
(
infoPtr
),
WM_NOTIFYFORMAT
,
(
WPARAM
)
infoPtr
->
hwndSelf
,
NF_QUERY
);
if
((
i
!=
NFR_ANSI
)
&&
(
i
!=
NFR_UNICODE
))
{
...
...
@@ -3329,10 +3299,8 @@ REBAR_NotifyFormat (REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_Paint
(
const
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_Paint
(
const
REBAR_INFO
*
infoPtr
,
HDC
hdc
)
{
HDC
hdc
=
(
HDC
)
wParam
;
if
(
hdc
)
{
TRACE
(
"painting
\n
"
);
REBAR_Refresh
(
infoPtr
,
hdc
);
...
...
@@ -3342,7 +3310,7 @@ REBAR_Paint (const REBAR_INFO *infoPtr, WPARAM wParam)
TRACE
(
"painting (%s)
\n
"
,
wine_dbgstr_rect
(
&
ps
.
rcPaint
));
if
(
ps
.
fErase
)
{
/* Erase area of paint if requested */
REBAR_InternalEraseBkGnd
(
infoPtr
,
wParam
,
&
ps
.
rcPaint
);
REBAR_InternalEraseBkGnd
(
infoPtr
,
hdc
,
&
ps
.
rcPaint
);
}
REBAR_Refresh
(
infoPtr
,
hdc
);
EndPaint
(
infoPtr
->
hwndSelf
,
&
ps
);
...
...
@@ -3380,12 +3348,12 @@ REBAR_SetCursor (const REBAR_INFO *infoPtr, LPARAM lParam)
static
LRESULT
REBAR_SetFont
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
REBAR_SetFont
(
REBAR_INFO
*
infoPtr
,
HFONT
font
)
{
REBAR_BAND
*
lpBand
;
UINT
i
;
infoPtr
->
hFont
=
(
HFONT
)
wParam
;
infoPtr
->
hFont
=
font
;
/* revalidate all bands to change sizes of text in headers of bands */
for
(
i
=
0
;
i
<
infoPtr
->
uNumBands
;
i
++
)
{
...
...
@@ -3398,26 +3366,25 @@ REBAR_SetFont (REBAR_INFO *infoPtr, WPARAM wParam)
}
/*****************************************************
*
* Handles the WM_SETREDRAW message.
*
* Documentation:
* According to testing V4.71 of COMCTL32 returns the
* *previous* status of the redraw flag (either 0 or -1)
* instead of the MSDN documented value of 0 if handled
*
*****************************************************/
static
inline
LRESULT
REBAR_SetRedraw
(
REBAR_INFO
*
infoPtr
,
WPARAM
wParam
)
/*****************************************************
*
* Function;
* Handles the WM_SETREDRAW message.
*
* Documentation:
* According to testing V4.71 of COMCTL32 returns the
* *previous* status of the redraw flag (either 0 or -1)
* instead of the MSDN documented value of 0 if handled
*
*****************************************************/
REBAR_SetRedraw
(
REBAR_INFO
*
infoPtr
,
BOOL
redraw
)
{
BOOL
oldredraw
=
infoPtr
->
DoRedraw
;
TRACE
(
"set to %s, fStatus=%08x
\n
"
,
(
wParam
)
?
"TRUE"
:
"FALSE"
,
infoPtr
->
fStatus
);
infoPtr
->
DoRedraw
=
(
BOOL
)
wParam
;
if
(
wParam
)
{
(
redraw
)
?
"TRUE"
:
"FALSE"
,
infoPtr
->
fStatus
);
infoPtr
->
DoRedraw
=
redraw
;
if
(
redraw
)
{
if
(
infoPtr
->
fStatus
&
BAND_NEEDS_REDRAW
)
{
REBAR_MoveChildWindows
(
infoPtr
,
0
,
infoPtr
->
uNumBands
);
REBAR_ForceResize
(
infoPtr
);
...
...
@@ -3515,23 +3482,23 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
/* case RB_ENDDRAG: */
case
RB_GETBANDBORDERS
:
return
REBAR_GetBandBorders
(
infoPtr
,
wParam
,
lParam
);
return
REBAR_GetBandBorders
(
infoPtr
,
wParam
,
(
LPRECT
)
lParam
);
case
RB_GETBANDCOUNT
:
return
REBAR_GetBandCount
(
infoPtr
);
case
RB_GETBANDINFO_OLD
:
case
RB_GETBANDINFOA
:
return
REBAR_GetBandInfoT
(
infoPtr
,
wParam
,
lParam
,
FALSE
);
return
REBAR_GetBandInfoT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
FALSE
);
case
RB_GETBANDINFOW
:
return
REBAR_GetBandInfoT
(
infoPtr
,
wParam
,
lParam
,
TRUE
);
return
REBAR_GetBandInfoT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
TRUE
);
case
RB_GETBARHEIGHT
:
return
REBAR_GetBarHeight
(
infoPtr
);
case
RB_GETBARINFO
:
return
REBAR_GetBarInfo
(
infoPtr
,
lParam
);
return
REBAR_GetBarInfo
(
infoPtr
,
(
LPREBARINFO
)
lParam
);
case
RB_GETBKCOLOR
:
return
REBAR_GetBkColor
(
infoPtr
);
...
...
@@ -3540,10 +3507,10 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
/* case RB_GETDROPTARGET: */
case
RB_GETPALETTE
:
return
REBAR_GetPalette
(
infoPtr
,
wParam
,
lParam
);
return
REBAR_GetPalette
(
infoPtr
);
case
RB_GETRECT
:
return
REBAR_GetRect
(
infoPtr
,
wParam
,
lParam
);
return
REBAR_GetRect
(
infoPtr
,
wParam
,
(
LPRECT
)
lParam
);
case
RB_GETROWCOUNT
:
return
REBAR_GetRowCount
(
infoPtr
);
...
...
@@ -3564,16 +3531,16 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
REBAR_GetVersion
(
infoPtr
);
case
RB_HITTEST
:
return
REBAR_HitTest
(
infoPtr
,
lParam
);
return
REBAR_HitTest
(
infoPtr
,
(
LPRBHITTESTINFO
)
lParam
);
case
RB_IDTOINDEX
:
return
REBAR_IdToIndex
(
infoPtr
,
wParam
);
case
RB_INSERTBANDA
:
return
REBAR_InsertBandT
(
infoPtr
,
wParam
,
lParam
,
FALSE
);
return
REBAR_InsertBandT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
FALSE
);
case
RB_INSERTBANDW
:
return
REBAR_InsertBandT
(
infoPtr
,
wParam
,
lParam
,
TRUE
);
return
REBAR_InsertBandT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
TRUE
);
case
RB_MAXIMIZEBAND
:
return
REBAR_MaximizeBand
(
infoPtr
,
wParam
,
lParam
);
...
...
@@ -3588,13 +3555,13 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
REBAR_PushChevron
(
infoPtr
,
wParam
,
lParam
);
case
RB_SETBANDINFOA
:
return
REBAR_SetBandInfoT
(
infoPtr
,
wParam
,
lParam
,
FALSE
);
return
REBAR_SetBandInfoT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
FALSE
);
case
RB_SETBANDINFOW
:
return
REBAR_SetBandInfoT
(
infoPtr
,
wParam
,
lParam
,
TRUE
);
return
REBAR_SetBandInfoT
(
infoPtr
,
wParam
,
(
LPREBARBANDINFOW
)
lParam
,
TRUE
);
case
RB_SETBARINFO
:
return
REBAR_SetBarInfo
(
infoPtr
,
lParam
);
return
REBAR_SetBarInfo
(
infoPtr
,
(
LPREBARINFO
)
lParam
);
case
RB_SETBKCOLOR
:
return
REBAR_SetBkColor
(
infoPtr
,
lParam
);
...
...
@@ -3604,7 +3571,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
/* return REBAR_GetPalette (infoPtr, wParam, lParam); */
case
RB_SETPARENT
:
return
REBAR_SetParent
(
infoPtr
,
wParam
);
return
REBAR_SetParent
(
infoPtr
,
(
HWND
)
wParam
);
case
RB_SETTEXTCOLOR
:
return
REBAR_SetTextColor
(
infoPtr
,
lParam
);
...
...
@@ -3621,7 +3588,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
REBAR_ShowBand
(
infoPtr
,
wParam
,
lParam
);
case
RB_SIZETORECT
:
return
REBAR_SizeToRect
(
infoPtr
,
lParam
);
return
REBAR_SizeToRect
(
infoPtr
,
(
LPCRECT
)
lParam
);
/* Messages passed to parent */
...
...
@@ -3634,13 +3601,13 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
/* case WM_CHARTOITEM: supported according to ControlSpy */
case
WM_CREATE
:
return
REBAR_Create
(
infoPtr
,
lParam
);
return
REBAR_Create
(
infoPtr
,
(
LPCREATESTRUCTW
)
lParam
);
case
WM_DESTROY
:
return
REBAR_Destroy
(
infoPtr
);
case
WM_ERASEBKGND
:
return
REBAR_EraseBkGnd
(
infoPtr
,
wParam
);
return
REBAR_EraseBkGnd
(
infoPtr
,
(
HDC
)
wParam
);
case
WM_GETFONT
:
return
REBAR_GetFont
(
infoPtr
);
...
...
@@ -3662,10 +3629,10 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
REBAR_MouseLeave
(
infoPtr
);
case
WM_NCCALCSIZE
:
return
REBAR_NCCalcSize
(
infoPtr
,
lParam
);
return
REBAR_NCCalcSize
(
infoPtr
,
(
RECT
*
)
lParam
);
case
WM_NCCREATE
:
return
REBAR_NCCreate
(
hwnd
,
lParam
);
return
REBAR_NCCreate
(
hwnd
,
(
LPCREATESTRUCTW
)
lParam
);
case
WM_NCHITTEST
:
return
REBAR_NCHitTest
(
infoPtr
,
lParam
);
...
...
@@ -3678,7 +3645,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
WM_PRINTCLIENT
:
case
WM_PAINT
:
return
REBAR_Paint
(
infoPtr
,
wParam
);
return
REBAR_Paint
(
infoPtr
,
(
HDC
)
wParam
);
/* case WM_PALETTECHANGED: supported according to ControlSpy */
/* case WM_QUERYNEWPALETTE:supported according to ControlSpy */
...
...
@@ -3689,7 +3656,7 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
REBAR_SetCursor
(
infoPtr
,
lParam
);
case
WM_SETFONT
:
return
REBAR_SetFont
(
infoPtr
,
wParam
);
return
REBAR_SetFont
(
infoPtr
,
(
HFONT
)
wParam
);
case
WM_SETREDRAW
:
return
REBAR_SetRedraw
(
infoPtr
,
wParam
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment