Zhiyi Zhang
438078d045
comctl32/button: Use client rectangle as content rectangle for themed group boxes.
...
Themed group boxes always use client rectangle as content rectangle regardless of group box content
margin specified by theme files.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52028
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:38 +01:00
Zhiyi Zhang
ce9d006a45
comctl32/button: Support BS_PUSHLIKE for themed command links.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:45 +01:00
Zhiyi Zhang
3a2d2adc4e
comctl32/button: Support BS_PUSHLIKE for themed group boxes.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:43 +01:00
Zhiyi Zhang
9e9448e72b
comctl32/button: Correctly align parts in group boxes with BS_PUSHLIKE when theming is off.
...
Parts in group boxes with BS_PUSHLIKE can be at the bottom, center and top when theming is off.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:41 +01:00
Zhiyi Zhang
fcd63df421
comctl32/button: Support BS_PUSHLIKE for themed check boxes and radio buttons.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:39 +01:00
Zhiyi Zhang
ed06aa2f7e
comctl32/button: Use correct state for default buttons.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:37 +01:00
Zhiyi Zhang
a7f6d78406
comctl32/button: Use correct state for BS_3STATE and BS_AUTO3STATE buttons.
...
BS_3STATE and BS_AUTO3STATE are check boxes. Fix BS_3STATE and BS_AUTO3STATE buttons drawing
indeterminate state as unchecked.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-11 09:52:34 +01:00
Zhiyi Zhang
595f5c59ec
comctl32/button: Correctly place parts for themed split buttons.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:24:48 +01:00
Zhiyi Zhang
7c9cacd47f
comctl32/button: Correctly place parts for themed group boxes.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:24:45 +01:00
Zhiyi Zhang
4f912012a9
comctl32/button: Correctly place parts for themed check boxes.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:24:41 +01:00
Zhiyi Zhang
e1fb7f8b86
comctl32/button: Correctly place parts for themed push buttons.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51916
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:24:37 +01:00
Zhiyi Zhang
2f2cfaf076
comctl32/button: Correctly place parts for buttons with WS_EX_RIGHT.
...
WS_EX_RIGHT has the same effect as BS_RIGHT.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 10:24:32 +01:00
Zhiyi Zhang
a161fa7789
comctl32/button: Add a get_box_rect() helper to calculation box rectangle.
...
get_box_rect() is introduced so that we don't need to duplicate the check box rectangle calculation
when painting themed check boxes.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 10:25:30 +01:00
Zhiyi Zhang
5182c46cbe
comctl32/button: Simplify focus rectangle calculation for drawing themed split buttons.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 10:25:28 +01:00
Zhiyi Zhang
3d3914bca0
comctl32/button: Simplify focus rectangle calculation for drawing themed push buttons.
...
The focus rectangle is the same as the result from GetThemeBackgroundContentRect(). So there is no
need to retrieve content margins and calculate it again.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 10:25:25 +01:00
Zhiyi Zhang
5e16493f71
comctl32/button: Use BS_PUSHLIKE instead of WS_EX_RIGHT in BUTTON_PositionRect().
...
BS_PUSHLIKE and WS_EX_RIGHT have the same value and it was a typo to use WS_EX_RIGHT.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zhiyi Zhang
ff5f45f444
comctl32/button: Remove useless calculation for drawing group boxes.
...
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 17:09:39 +01:00
Zhiyi Zhang
887e1bcfc3
comctl32/button: Do not restore command link font after themed painting.
...
Fix button test failures when theming is on.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:34 +02:00
Zhiyi Zhang
84e0eac1f9
comctl32/button: Do not restore split button font after themed painting.
...
Fix button test failures when theming is on.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:31 +02:00
Zhiyi Zhang
1e7e31cab9
comctl32/button: Do not restore groupbox font after themed painting.
...
Fix button tests failures when theming is on.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:29 +02:00
Zhiyi Zhang
687d9d0bee
comctl32/button: Do not restore checkbox font after themed painting.
...
Fix button tests failures when theming is on.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:26 +02:00
Zhiyi Zhang
8b30c00a7b
comctl32/button: Do not restore push button font after themed painting.
...
Fix button tests failures when theming is on.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:23 +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
3c81ca8381
comctl32/button: Use themed painting when possible for handling WM_SETTEXT.
...
Fix an issue that themed buttons are drawn unthemed after receiving a
WM_SETTEXT message.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:45 +01:00
Zhiyi Zhang
b08c622e22
comctl32/button: Turn off themed painting if parts are unavailable for Command Links.
...
Themed painting for Command Links requires BP_COMMANDLINK and
BP_COMMANDLINKGLYPH to be defined in the theme. However, Wine currently
only supports the v3 theme file format used by XP, which doesn't support
Command Links. So turn off themed painting for Command Links if user
uses a third party theme that doesn't have the required parts. Otherwise,
only plain text is drawn.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-22 20:20:01 +01:00
Michael Stefaniuc
f67ef3213c
comctl32: Use wide-char string literals.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 11:23:08 +01:00
Zhiyi Zhang
463482a829
comctl32/button: Do not set BS_PUSHBUTTON and BS_DEFPUSHBUTTON style directly to Split Buttons and Command Links.
...
For Split Buttons and Command Links of common control version 6, setting
BS_PUSHBUTTON and BS_DEFPUSHBUTTON style toggles their default bit.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47621
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-06 19:01:39 +02:00
Nikolay Sivov
5fcd20396f
comctl32/button: Use duplicated image for drawing.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47794
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 22:13:07 +02:00
Nikolay Sivov
a058c72b0a
comctl32/button: Improve repainting on WM_SETFOCUS.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:50:45 +02:00
Gabriel Ivăncescu
b15859d871
comctl32/button: Implement BCM_GETIDEALSIZE for command links.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:28 +02:00
Gabriel Ivăncescu
7316f69389
comctl32/button: Implement themed command links.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:28 +02:00
Gabriel Ivăncescu
9fee8a7d25
comctl32/button: Implement command links.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:28 +02:00
Gabriel Ivăncescu
4fa7aa29b5
comctl32/button: Move the drawing of the button's image into a separate function.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:28 +02:00
Gabriel Ivăncescu
d89facbc50
comctl32/button: Preserve BST_HOT when mouse button is released.
...
This fixes button state when it is released and the mouse is still
hot-tracking it.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:28 +02:00
Gabriel Ivăncescu
8ee1e3453e
comctl32/button: Use WM_GETTEXTLENGTH to see if the button has any text.
...
There's no reason to allocate and then parse the entire string just to see
if its length is zero.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-05 22:27:23 +02:00
Gabriel Ivăncescu
715065feb3
comctl32/button: Delay calling get_button_text until it is needed to prevent a leak.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-05 22:27:19 +02:00
Gabriel Ivăncescu
9c62f7e42b
comctl32/button: Implement BCM_GETIDEALSIZE for split buttons.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 16:58:59 +02:00
Gabriel Ivăncescu
6fbb64fe67
comctl32/button: Implement themed split buttons.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=20123
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 16:58:59 +02:00
Gabriel Ivăncescu
ee2f71d8f6
comctl32/button: Implement split buttons.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=20123
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 16:58:59 +02:00
Gabriel Ivăncescu
4e08a7e5d7
comctl32/button: Implement BCM_GETSPLITINFO.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 19:28:19 +02:00
Gabriel Ivăncescu
82d39e1817
comctl32/button: Implement BCM_SETSPLITINFO.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 19:28:19 +02:00
Gabriel Ivăncescu
202a1c1ef0
comctl32/button: Implement BCM_SETDROPDOWNSTATE.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 19:28:19 +02:00
Gabriel Ivăncescu
725d3ff9f3
comctl32/button: Center align split buttons' text by default.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-03 19:28:19 +02:00
Gabriel Ivăncescu
efacaf1b5a
comctl32/button: Don't draw the button when losing focus before invalidating it.
...
It's already invalidated at the end so there's no reason to draw it before
that.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:55:06 +01:00
Gabriel Ivăncescu
026233c429
comctl32/button: Implement NM_CUSTOMDRAW for BS_USERBUTTON.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:55:02 +01:00
Gabriel Ivăncescu
04de7c9f05
comctl32/button: Implement NM_CUSTOMDRAW for other themed buttons.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:54:59 +01:00
Gabriel Ivăncescu
8fdc9d76a9
comctl32/button: Implement NM_CUSTOMDRAW for other buttons.
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:54:32 +01:00
Gabriel Ivăncescu
3062a594bd
comctl32/button: Implement NM_CUSTOMDRAW for themed Push Buttons.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=10531
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:54:22 +01:00
Gabriel Ivăncescu
4b85740ebf
comctl32/button: Implement NM_CUSTOMDRAW for Push Buttons.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=10531
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-07 17:54:14 +01:00
Nikolay Sivov
ec09119f2e
comctl32/button: Fix text buffer leak (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-17 15:41:54 +02:00