Jacek Caban
439fb25190
win32u: Move get_icon_param and set_icon_param from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 18:36:13 +01:00
Jacek Caban
4f3f1c985a
user32: Don't access cursoricon_object directly in CopyImage.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-24 18:36:10 +01:00
Jacek Caban
b3d25fbe3c
win32u: Move NtUserDrawIconEx implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
c24326b8b6
user32: Use GetIconInfo in CopyIcon.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
76f02eeb12
user32: Directly use NtUserGetIconInfo in GetIconInfo.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
5b4a57dcc8
win32u: Move NtUserGetIconInfo implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
0885c7cc5a
win32u: Move NtUserGetCursorFrameInfo implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
9e4be5467c
win32u: Move NtUserGetIconSize implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
744853fd56
win32u: Move NtUserSetCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 17:31:42 +01:00
Jacek Caban
bb895f4f59
win32u: Move cursor icon handle management from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Jacek Caban
b13521367a
user32: Simplify icon delay handling.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:24 +01:00
Jacek Caban
a771eb4405
user32: Use create_cursoricon_object in CURSORICON_CreateIconFromANI.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
a37a0a94d4
user32: Use create_cursoricon_object in CreateIconIndirect.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
f0176397ad
user32: Introduce NtUserSetCursorIconData.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
8ce4c07f50
user32: Factor out create_icon_frame.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
064838c580
user32: Simplify cursor hotspot handling.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
b86842bb15
user32: Use ntuser object type constants.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
dd2dd00665
user32: Store module as unicode string in cursoricon_object.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
64bc668463
user32: Use a single struct for static and animated cursor icons.
...
Handle allocation should use a separate from data initialization, so its
object layout needs to be independent on data.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:23 +01:00
Jacek Caban
1af4919a3f
win32u: Move GetClipCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:20:41 +01:00
Jacek Caban
91c095cd46
win32u: Move NtUserClipCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:20:41 +01:00
Zebediah Figura
97bf2e7e1e
user32: Free the created icon handle when using LR_COPYFROMRESOURCE.
...
Spotted by John Sullivan.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52207
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 22:06:38 +01:00
John Sullivan
4a20082167
user32: Call DestroyIcon() to delete icon handles in CopyImage().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52207
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 22:06:18 +01:00
Zebediah Figura
197f2ee6c0
user32: Do not use SetDIBits() in create_masked_bitmap().
...
The given bitmap is in DDB format, not DIB format.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51296
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 11:44:25 +01:00
Ziqing Hui
d112d746c7
user32: Pass correct flags in CreateIconFromResource().
...
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 10:41:32 +01:00
Ziqing Hui
9e74b207cf
user32: Add an is_shared member to cursoricon_object.
...
It makes sure that shared icon/cursor created by CreateIconFromResourceEx()
won't be destroyed by Destroy{Icon,Cursor}().
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 10:45:36 +01:00
Jacek Caban
a25148ae46
win32u: Move NtUserGetCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Jacek Caban
c87925bae3
win32u: Move NtUserShowCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Alexandre Julliard
9f9441c9cf
user32: Use the bundled libpng.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 14:34:21 +02:00
Tim Clem
b4333216a7
user32: Load libpng in DllMain.
...
libpng is currently loaded on the first attempt to access a PNG icon
or cursor. That creates a race condition that can deadlock the loader
in certain circumstances if LoadIcon or LoadCursor is called while the
loader lock is held, e.g. from a DllMain.
Signed-off-by: Tim Clem <tclem@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 18:06:29 +02:00
Stefan Dösinger
efa52619af
user32: Delete info.hbmColor and hbmMask after copying.
...
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-10 20:49:27 +02:00
Stefan Dösinger
7ec5a7e1b6
user32: Release the icon frame in CopyImage.
...
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-10 20:49:27 +02:00
Zebediah Figura
d2259665b4
user32: Blit the right bitmap when stretching monochrome icons in CopyImage().
...
Fixes: beb70a79e1
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-25 09:30:05 +02:00
Zebediah Figura
5df5972f9a
user32: Reimplement CopyIcon() on top of CopyImage().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-24 11:42:37 +02:00
Zebediah Figura
beb70a79e1
user32: Implement stretching of cursor and icon objects in CopyImage().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-24 11:42:37 +02:00
Zebediah Figura
db2b266c57
user32: Handle monochrome icons in CreateIcon() and CreateCursor() instead of CreateIconIndirect().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-24 11:42:37 +02:00
Alexandre Julliard
9cc9236556
user32: Build with msvcrt.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:38 +02:00
Alexandre Julliard
148d3aa461
user32: Move PNG support to a new Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:36 +02:00
Alexandre Julliard
b88730d8af
user32: Use standard dlopen() instead of the libwine wrappers.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:20 +02:00
Piotr Caban
cfa9334125
user32: Include png.h only if SONAME_LIBPNG is defined.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-07 22:20:22 +01:00
Matteo Bruni
aaecc40464
user32: Don't go past the end of the animated cursor data.
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-01 09:43:27 +02:00
Paul Gofman
bfe1ea26dd
user32: Select more appropriate stretch mode for colored images interpolation.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46375
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:29:57 +01:00
Fabian Maurer
400dd1596a
user32: LoadImage should not only search in the working directory.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46186
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-30 20:39:03 +01:00
Alexandre Julliard
8bca1b29cd
user32: Scale coordinates in ClipCursor() based on DPI awareness.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 14:20:11 +02:00
Dmitry Timoshkov
1f75f42642
user32: Create a mask from alpha channel when loading a 32 bpp icon.
...
This patch fixes applications that draw the 32 bpp icons manually.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 13:36:27 +02:00
Alexandre Julliard
b53d84b947
user32: Add support for loading 256x256 icons.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 20:46:01 +02:00
Alexandre Julliard
9dc886244b
user32: Ignore PNG icons instead of failing if we don't have libpng.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 20:46:01 +02:00
Alexandre Julliard
b1631d69da
user32: Try to load libpng only once.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 20:46:01 +02:00
Dmitry Timoshkov
728255cf2c
user32: Add support for PNG icons.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 18:27:11 +02:00
Bernhard Übelacker
9256017adf
user32: Validate DIB offset in CURSORICON_GetFileEntry.
...
Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 10:41:56 +01:00