Zhiyi Zhang
7be103bba9
comctl32: Use OpenThemeDataForDpi() to create a theme handle not associated to a window.
...
If a window is not passed to OpenThemeData(), OpenThemeData() assumes the DPI is 96 according to
tests. And GetThemePartSize() should select theme parts according to the DPI stored in theme
handles rather than using GDI device contexts. Thus, OpenThemeDataForDpi() should be used in place
of OpenThemeData() when DPI is not 96 and theme handles shouldn't be associated with a window.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 17:06:22 +02:00
Francois Gouget
29f73481df
comctl32: Fix an ASCII / ANSI mixup in a comment.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-31 16:06:40 +02:00
Zhiyi Zhang
8107462b8a
comctl32/toolbar: Don't use outside theme handles.
...
Fix Spy++ Toolbar buttons have artifacts. Spy++ first creates a Toolbar window, then calls
OpenThemeData(hwnd, "Rebar") with the Toolbar window. Then when the Toolbar control uses the theme
handle from GetWindowTheme(), it gets a Rebar theme the next time it draws, thus drawing wrong theme
parts.
According the tests, not all of the common controls have such behaviors. Some of them do have theme
handles opened by their window and then use that theme handle afterwards even it's changed from the
outside. However, for other controls, the behaviors are not very consistent across all Windows
versions. Also no applications depend on such behaviors for other controls yet. So, only modify the
Toolbar control for now.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-22 17:57:46 +02:00
Zhiyi Zhang
a769679113
comctl32/toolbar: Remove a redundant theme handle check in TOOLBAR_NCCreate().
...
This is a no-op. In TOOLBAR_NCCreate(), GetWindowTheme() always returns NULL because the theme
handle is not open by OpenThemeData() by that time. Also tests show that TBSTYLE_TRANSPARENT is not
added when theming is active.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-22 17:57:46 +02:00
Zhiyi Zhang
6576d461b8
comctl32: Repaint after the WM_THEMECHANGED message is received.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-28 09:40:22 +02:00
Zhiyi Zhang
bde397d220
comctl32/toolbar: Use correct state id for checked items.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:43:27 +01:00
Nikolay Sivov
564d5804b1
comctl32: Use wide-char string literals.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Piotr Caban
378548581d
comctl32: Offset client area when toolbar divider is present.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:16:52 +02:00
Piotr Caban
659b0d7017
comctl32: Compute border size from client and window rectangles.
...
Fixes toolbar size when WS_EX_DLGMODALFRAME is used.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-17 23:16:52 +02:00
Ziqing Hui
3192fb5396
comctl32/toolbar: Correctly draw disabled button which contains 32 bpp bitmap with alpha channel.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=24784
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:28:00 +02:00
Nikolay Sivov
ae3b334695
comctl32/toolbar: Handle NULL string pointer from TBN_GETINFOTIPW.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 08:36:37 +01:00
Francois Gouget
e0e119e41f
comctl32: Typo and spelling fixes in comments.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-02 20:46:44 +02:00
Alexandre Julliard
e4e2e8e551
comctl32: Build with msvcrt.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-29 11:38:38 +02:00
Nikolay Sivov
f3775ed2ac
comctl32/toolbar: Send BN_CLICKED for button that was pressed, not released.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35516
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:35 +01:00
Nikolay Sivov
f037019e5d
comctl32/toolbar: Draw button in idle state when mouse is captured.
...
When captured moving cursor over other buttons should not produce hot item
feedback, only pressed button appearance changes. Hot item notifications are
still delivered.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:02:32 +01:00
Francois Gouget
ab9dccda63
comctl32: Avoid an unneeded lstrlenW() call.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-22 11:12:28 +02:00
Nikolay Sivov
c74a72c46e
comctl32/toolbar: Handle resource strings returned for tooltip text.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-09 09:45:22 +02:00
Nikolay Sivov
0645fa1373
comctl32/toolbar: Fix tooltip notification forwarding.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-30 19:59:15 +02:00
Nikolay Sivov
db2a3b7028
comctl32: Use ARRAY_SIZE() macro.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-27 09:16:27 +01:00
Nikolay Sivov
2e8dfbb1ad
comctl32/toolbar: Fix a crash when tracing special button string identifier.
...
Based on patch by Mark Jansen <mark.jansen@reactos.org>.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 23:19:25 +01:00
Thomas Faber
4c57232962
comctl32: Unset the toolbar's hot item when deleting a button.
...
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-19 16:40:55 +01:00
Nikolay Sivov
d93ae6ff34
comctl32/toolbar: Support undocumented IDs for standard bitmap lists.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 10:53:54 +02:00
Nikolay Sivov
ece34a1319
comctl32/toolbar: Don't add NULL imagelist entries.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-31 10:53:52 +02:00
Nikolay Sivov
e558858d0f
comctl32: Change some overly exciting tracing messages.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-30 11:14:55 +02:00
Eric Kohl
b7cc44099a
comctl32: Update the tooltip rectangle when a tool button is hidden.
...
Signed-off-by: Eric Kohl <eric.kohl@t-online.de>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 13:57:36 +01:00
Nikolay Sivov
970029bb9b
comctl32/toolbar: Fix TB_SETDRAWTEXTFLAGS handler.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:36:17 +01:00
Nikolay Sivov
26067cc0b9
comctl32/toolbar: Protect from NULL pointer access in TB_GETBUTTONINFOW handler.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-11 16:04:23 +01:00
Michael Stefaniuc
8258d900ca
comctl32: Use InflateRect() too when expanding in just one axis.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-09 15:42:47 +09:00
Michael Stefaniuc
65a2e59a78
comctl32: Avoid using CopyRect() on RECT structs.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 21:10:32 +09:00
Michael Stefaniuc
903ea19122
comctl32: Use SetRect() instead of open coding it.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-29 23:23:36 +09:00
Christopher Thielen
ff063d9e25
comctl32: Ensure that toolbar respond only to changes in WM_CAPTURECHANGED handler.
...
Signed-off-by: Christopher Thielen <cthielen@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-02 22:21:31 +09:00
Jacek Caban
67819d6ee9
comctl32: Don't use comparisons to FALSE.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-10 11:53:20 +09:00
Nikolay Sivov
83a652a9d4
include: Add a couple of documented Toolbar messages definitions.
...
Thanks to Alan Feldman for pointing this out.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-19 12:20:56 +09:00
Alex Henrie
c565145b0e
comctl32: Remove redundant if (button) statements.
...
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-10-07 21:28:50 +09:00
Huw Davies
2a71d13b6b
comctl32: Implement the legacy notifications during restore.
2015-07-02 16:54:01 +09:00
Huw Davies
6c95445559
comctl32: Set the default separator width when notifying a -ve cmd id.
2015-07-02 16:53:58 +09:00
Huw Davies
eddfefa54f
comctl32: Reset the string and lparam fields between notifications.
2015-07-01 19:18:27 +09:00
Huw Davies
96a6184c30
comctl32: All negative entries in the toolbar save state are special cases.
2015-07-01 19:18:27 +09:00
Huw Davies
77ed3733af
comctl32: The number of buttons is set by the first TBN_RESTORE notification.
2015-07-01 19:18:27 +09:00
Huw Davies
063c7866f5
comctl32: Implement toolbar saving.
2015-07-01 19:18:26 +09:00
Huw Davies
199f51ff78
comctl32: Don't leak button text.
2015-07-01 19:18:26 +09:00
Huw Davies
01cd45cce1
comctl32: Add a helper to free button text.
2015-07-01 19:18:25 +09:00
Huw Davies
a29b6958e1
comctl32: Add helpers to set the button text.
2015-07-01 19:18:25 +09:00
Nikolay Sivov
b7969dfd94
comctl32/toolbar: Remove always true condition (Coverity).
2015-06-03 19:29:49 +09:00
Huw Davies
5c4dc9fc56
comctl32: Fix a typo in the TB_SAVERESTOREA handler.
2015-05-20 22:10:07 +09:00
Huw Davies
0634f3b409
comctl32: If necessary add the width of a dropdown arrow while wrapping.
...
This also fixes the layout code for the BTNS_WHOLEDROPDOWN case.
2015-05-19 22:57:36 +09:00
Huw Davies
797f42699e
comctl32: Wrap the buttons inside the toolbar's client rect.
...
The toolbar need not be the same width as the parent.
2015-05-19 22:57:27 +09:00
Huw Davies
0bcadfa88f
comctl32: Layout the toolbar after a potential resize.
2015-05-19 22:57:22 +09:00
Huw Davies
9d218048a6
comctl32: Don't store the width in the toolbar info structure.
...
It's only set and used by a single function.
2015-05-19 22:57:16 +09:00
Huw Davies
eb8df37a69
comctl32: Remove button wrap states when TBSTYLE_WRAPABLE is cleared.
2015-04-30 16:17:59 +09:00