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
d969605b
Commit
d969605b
authored
Sep 06, 2002
by
Dimitrie O. Paun
Committed by
Alexandre Julliard
Sep 06, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Complete support for rgb{Fg,Bk} in DrawIndirect.
- Rename VOID to void. - Documentation cleanup. - Fix ILD_TRANSPARENT handling.
parent
77ef4d1a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
29 deletions
+17
-29
imagelist.c
dlls/comctl32/imagelist.c
+17
-29
No files found.
dlls/comctl32/imagelist.c
View file @
d969605b
...
...
@@ -21,22 +21,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* TODO:
* - Fix ImageList_DrawIndirect (rgbFg, rgbBk, dwRop).
* - Fix ImageList_SetFilter (undocumented).
* BTW does anybody know anything about this function???
* - It removes 12 Bytes from the stack (3 Parameters).
* - First parameter SHOULD be a HIMAGELIST.
* - Second parameter COULD be an index?????
* - Third parameter.... ?????????????????????
* - Fix ImageList_DrawIndirect (dwRop).
* - Add support for ILD_PRESERVEALPHA, ILD_SCALE, ILD_DPISCALE
* - Add support for ILS_GLOW, ILS_SHADOW, ILS_SATURATE, ILS_ALPHA
*
* Comments:
* - ImageList_Draw, ImageList_DrawEx and ImageList_GetIcon use
* ImageList_DrawIndirect. Since ImageList_DrawIndirect is still
* partially implemented, the functions mentioned above will be
* limited in functionality too.
*
* - Hotspot handling still not correct. The Hotspot passed to BeginDrag
* is the offset of the image position relative to the actual mouse pointer
* position. However the Hotspot passed to SetDragCursorImage is the
...
...
@@ -95,7 +84,7 @@ static INTERNALDRAG InternalDrag = { 0, 0, 0, 0, 0, 0, FALSE, 0, FALSE };
* NOTES
* This function can NOT be used to reduce the number of images.
*/
static
VOID
static
void
IMAGELIST_InternalExpandBitmaps
(
HIMAGELIST
himl
,
INT
nImageCount
,
INT
cx
,
INT
cy
)
{
HDC
hdcImageList
,
hdcBitmap
;
...
...
@@ -168,7 +157,7 @@ IMAGELIST_InternalExpandBitmaps (HIMAGELIST himl, INT nImageCount, INT cx, INT c
*
* Blending and Overlays styles are accomplished by another function
*/
static
VOID
static
void
IMAGELIST_InternalDraw
(
IMAGELISTDRAWPARAMS
*
pimldp
,
INT
cx
,
INT
cy
)
{
HDC
hImageDC
;
...
...
@@ -206,12 +195,13 @@ IMAGELIST_InternalDraw(IMAGELISTDRAWPARAMS *pimldp, INT cx, INT cy)
*
* Blending and Overlays styles are accomplished by another function.
*/
static
VOID
static
void
IMAGELIST_InternalDrawMask
(
IMAGELISTDRAWPARAMS
*
pimldp
,
INT
cx
,
INT
cy
)
{
HBITMAP
hOldBitmapImage
,
hOldBitmapMask
;
HIMAGELIST
himlLocal
=
pimldp
->
himl
;
UINT
fStyle
=
pimldp
->
fStyle
&
(
~
ILD_OVERLAYMASK
);
COLORREF
clrBk
=
(
pimldp
->
rgbBk
==
CLR_DEFAULT
)
?
himlLocal
->
clrBk
:
pimldp
->
rgbBk
;
/*
* We need a dc and bitmap to draw on that is
...
...
@@ -220,7 +210,8 @@ IMAGELIST_InternalDrawMask(IMAGELISTDRAWPARAMS *pimldp, INT cx, INT cy)
HDC
hOffScreenDC
=
CreateCompatibleDC
(
pimldp
->
hdcDst
);
HBITMAP
hOffScreenBmp
=
CreateCompatibleBitmap
(
pimldp
->
hdcDst
,
cx
,
cy
);
BOOL
bUseCustomBackground
=
(
himlLocal
->
clrBk
!=
CLR_NONE
);
BOOL
bUseCustomBackground
=
(
clrBk
!=
CLR_NONE
)
&&
!
((
fStyle
&
ILD_TRANSPARENT
)
&&
himlLocal
->
hbmMask
);
BOOL
bBlendFlag
=
(
fStyle
&
ILD_BLEND50
)
||
(
fStyle
&
ILD_BLEND25
);
HDC
hImageDC
=
CreateCompatibleDC
(
0
);
...
...
@@ -249,7 +240,7 @@ IMAGELIST_InternalDrawMask(IMAGELISTDRAWPARAMS *pimldp, INT cx, INT cy)
||
bBlendFlag
)
)
{
HBRUSH
hBrush
=
CreateSolidBrush
(
himlLocal
->
clrBk
);
HBRUSH
hBrush
=
CreateSolidBrush
(
clrBk
);
HBRUSH
hOldBrush
=
SelectObject
(
pimldp
->
hdcDst
,
hBrush
);
PatBlt
(
hOffScreenDC
,
pimldp
->
x
,
pimldp
->
y
,
cx
,
cy
,
PATCOPY
);
...
...
@@ -319,8 +310,6 @@ cleanup:
DeleteDC
(
hOffScreenDC
);
DeleteObject
(
hOffScreenBmp
);
return
;
}
/*************************************************************************
...
...
@@ -341,7 +330,7 @@ cleanup:
* required to add the blend to the current image.
*
*/
static
VOID
static
void
IMAGELIST_InternalDrawBlend
(
IMAGELISTDRAWPARAMS
*
pimldp
,
INT
cx
,
INT
cy
)
{
...
...
@@ -351,11 +340,10 @@ IMAGELIST_InternalDrawBlend(IMAGELISTDRAWPARAMS *pimldp, INT cx, INT cy)
COLORREF
clrBlend
,
oldFgColor
,
oldBkColor
;
HIMAGELIST
himlLocal
=
pimldp
->
himl
;
clrBlend
=
GetSysColor
(
COLOR_HIGHLIGHT
);
if
(
!
(
pimldp
->
rgbFg
==
CLR_DEFAULT
))
{
clrBlend
=
pimldp
->
rgbFg
;
}
if
(
clrBlend
==
CLR_DEFAULT
)
clrBlend
=
GetSysColor
(
COLOR_HIGHLIGHT
);
else
if
(
clrBlend
==
CLR_NONE
)
clrBlend
=
GetTextColor
(
pimldp
->
hdcDst
);
/* Create the blend Mask
*/
hBlendMaskDC
=
CreateCompatibleDC
(
0
);
...
...
@@ -430,7 +418,7 @@ IMAGELIST_InternalDrawBlend(IMAGELISTDRAWPARAMS *pimldp, INT cx, INT cy)
*
*
*/
static
VOID
static
void
IMAGELIST_InternalDrawOverlay
(
IMAGELISTDRAWPARAMS
*
pimldp
,
INT
cx
,
INT
cy
)
{
INT
nOvlIdx
;
...
...
@@ -2661,10 +2649,11 @@ ImageList_SetDragCursorImage (HIMAGELIST himlDrag, INT iDrag,
* ImageList_SetFilter [COMCTL32.@]
*
* Sets a filter (or does something completely different)!!???
* It removes 12 Bytes from the stack (3 Parameters).
*
* PARAMS
* himl [I] handle to image list
* i [I]
??
?
* himl [I]
SHOULD be a
handle to image list
* i [I]
COULD be an index
?
* dwFilter [I] ???
*
* RETURNS
...
...
@@ -2679,8 +2668,7 @@ ImageList_SetDragCursorImage (HIMAGELIST himlDrag, INT iDrag,
BOOL
WINAPI
ImageList_SetFilter
(
HIMAGELIST
himl
,
INT
i
,
DWORD
dwFilter
)
{
FIXME
(
"(%p 0x%x 0x%lx):empty stub!
\n
"
,
himl
,
i
,
dwFilter
);
FIXME
(
"(%p 0x%x 0x%lx):empty stub!
\n
"
,
himl
,
i
,
dwFilter
);
return
FALSE
;
}
...
...
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