Commit Graph

53 Commits

Author SHA1 Message Date
Zhiyi Zhang 52c44bd8f0 user32: Scale scroll bar minimum thumb size according to DPI.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 10:21:43 +02:00
Zhiyi Zhang e0c0f0f19a user32: Change scroll bar minimum thumb size to 8 pixels.
It's 8 pixels on XP and Win 7. On Win 10, it's the same size as themed scroll bar thumb.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-09 10:21:34 +02:00
Zhiyi Zhang 883878e550 uxtheme: Support scroll bar state tracking in non-client areas.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 18:51:03 +02:00
Zhiyi Zhang 0a83027e20 uxtheme: Support drawing themed standard scroll bars.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39821
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 18:50:11 +02:00
Zhiyi Zhang d9063802f2 uxtheme: Move themed scroll bar to uxtheme.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-20 18:49:49 +02:00
Zhiyi Zhang 780e5c83dc user32: Draw scroll bar size box and size grip in a single function.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:52 +02:00
Zhiyi Zhang 09f43e0491 user32: Separate scroll bar window checks from actual drawing.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:50 +02:00
Zhiyi Zhang cead75ad56 user32: Separate scroll bar drawing calculation from actual drawing.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:48 +02:00
Zhiyi Zhang b2184e7bff user32: Pass a scroll bar tracking info parameter to SCROLL_DrawScrollBar().
Pack all scroll bar tracking information in a struct and pass that struct as a parameter to
SCROLL_DrawScrollBar() instead of using global variables.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:46 +02:00
Zhiyi Zhang e04e857a1f user32: Call SCROLL_DrawScrollBar() to draw tracks in SCROLL_HandleScrollEvent().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:43 +02:00
Zhiyi Zhang c3d8b39e9e user32: Call SCROLL_DrawScrollBar() to draw moving thumb in SCROLL_HandleScrollEvent().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 09:55:41 +02:00
Zhiyi Zhang b5abd53494 user32: Call SCROLL_DrawScrollBar() to draw arrows in SCROLL_HandleScrollEvent().
So that SCROLL_DrawScrollBar() can eventually be hooked by a themed scroll bar drawing function and
use a single function to draw scroll bars, instead of hooking multiple scroll bar drawing functions
that draw different parts.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:40:39 +02:00
Zhiyi Zhang 5541cf32c5 user32: Introduce a SCROLL_DrawNCScrollBar() to draw scroll bars in non-client area.
Having a SCROLL_DrawNCScrollBar() in scroll.c enables it to access global variables there. So that
global variables access in SCROLL_DrawScrollBar() can be moved outside of it and
SCROLL_DrawScrollBar() can then be refactored into a function without access to global variables.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:40:31 +02:00
Zhiyi Zhang ac6817de54 user32: Modify SCROLL_MovingThumb outside of SCROLL_DrawMovingThumb().
SCROLL_MovingThumb is a global variable. Gradually move it out of scroll bar drawing functions so
that those drawing functions can be refactored in a way that doesn't need access to global variables.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:40:14 +02:00
Zhiyi Zhang d164f06279 user32: Remove SCROLL_DrawInterior_9x().
SCROLL_DrawInterior_9x() has the same functionality as SCROLL_DrawInterior().

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:40:09 +02:00
Zhiyi Zhang 4819ea8509 user32: Avoid unnecessary scroll bar drawing.
These drawing operations are either overwritten by other drawing functions later or not needed at all.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:40:02 +02:00
Alexandre Julliard 5ad25c293b user32: Use wide character string literals.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:09:59 +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
Nikolay Sivov 92d336263c user32: Improve window state handling in SetScrollInfo().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42038
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-28 14:23:42 +01:00
Gabriel Ivăncescu d2cf3e9763 user32: Fix tracking position for non-client scrollbars.
Non-client scrollbars (SB_HORZ and SB_VERT) don't have their client origin at
(0,0) because they can have non-client borders. It is necessary to offset
by this origin just as it is done for LBUTTONDOWN.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-12 17:30:16 +01:00
Jacek Caban 9d4ce95de5 user32: Attempt to set scroll info in SetScrollPos even if SCROLL_GetInternalInfo fails.
SetScrollPos may be called on non-scroll window and we should send
SBM_SETSCROLLINFO. This fixes scrollbars in Visio.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-21 17:07:01 +01:00
Jacek Caban 8c8701befb user32: Allow scrollbar control to store scroll info in subclassed window.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46004
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45966
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-07 18:31:11 +01:00
Jacek Caban b8ef42c9fd user32: Make sure that passed window handle is scroll control before accessing wExtra in SCROLL_GetInternalInfo.
Fixes memory corruption in Office 2016.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-20 18:33:12 +02:00
Nikolay Sivov 1ae05c04a2 user32: Remove confusing comments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-08 13:10:50 +01:00
Michael Stefaniuc 9ed915083f user32: Use InflateRect() instead of open coding it.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-06 18:48:34 +09:00
Nikolay Sivov 9d91fce444 user32: For EnableScrollBar() always go through EnableWindow() in SB_CTL case.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-24 21:49:54 +09:00
Carlo Bramini 8d0d1e563c user32: Remove unused variables in SCROLL_TrackScrollBar.
Signed-off-by: Carlo Bramini <carlo.bramix@libero.it>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-15 23:55:47 +09:00
Krzysztof Nowicki 7415946716 user32: Make more functions hot-patchable for Steam. 2011-06-15 20:04:38 +02:00
Francois Gouget aaec50d44c user32: SCROLL_SetNCSbState() is not used anymore so remove it. 2011-05-03 14:38:06 +02:00
Alexandre Julliard 90ba8ceb07 user32: Correctly handle mouse events on a size grip scrollbar. 2010-10-12 11:43:21 +02:00
Alexandre Julliard 141defbd54 user32: Use WIN_GetRectangles where possible instead of accessing the window structure. 2010-09-07 14:55:42 +02:00
Sébastien Ramage e7165b3921 user32: End scrollbar tracking if the mouse capture is lost. 2010-03-25 10:55:51 +01:00
Alexander Kochetkov 8037de9f02 user32: Fix arithmetic overflow in GetThumbVal. 2010-01-11 11:29:05 -06:00
Alexandre Julliard d081a7352c user32: Simplify window procedure allocation for the builtin classes. 2009-12-18 12:39:13 +01:00
Alexandre Julliard 1e43d19753 user32: Pre-allocate the window procedure for the scrollbar class. 2009-12-17 13:09:50 +01:00
Alexandre Julliard 3dc6317fc6 user32: Turn the scrollbar winproc into a Wow handler. 2009-12-15 16:09:13 +01:00
Alexandre Julliard 11ed5da3fd user32: Split the handling of the 16-bit messages out of the scrollbar winproc. 2009-12-13 12:13:14 +01:00
Rein Klazes 1b1e0027db user32: Combine horizontal and vertical window scroll bar info in a single structure. 2009-05-04 14:57:03 +02:00
Nikolay Sivov 032356ec37 user32: Disable scroll bar control window when both buttons disabled. 2009-03-05 12:48:05 +01:00
Michael Stefaniuc 214b40b109 user32: Remove superfluous pointer casts. 2009-03-02 12:11:38 +01:00
Michael Stefaniuc 3d6e19d48a user32: Do not cast zero. 2008-11-04 11:26:24 +01:00
Dylan Smith 936191887e user32: Converted rcScrollBar to screen coordinates. 2008-10-06 13:54:44 +02:00
Juan Lang 6049ad74e9 user32: Don't crash if passed a non-scrollbar HWND. Fixes Coverity id 265. 2008-09-12 11:40:42 +02:00
Dylan Smith 2f1c7b1610 user32: Increased area for scrolling via mouse drag outside scrollbar.
When dragging the scrollbar thumb with the mouse, the mouse is able to
move away from the scrollbar and keep scrolling so long as it isn't too
far away from the scrollbar.  This makes it easier to quickly scroll
with the mouse.

All that this patch changes is the distance that the mouse can be moved
away from the scrollbar before it is consider outside of the scrollbar
and returns to its original position.  The distances are proportional to
the size of the scrollbar.
2008-07-04 20:25:48 +02:00
Alexandre Julliard 79b64fdc83 user32: Add an ASCII window procedure for scrollbars. 2008-05-21 11:44:05 +02:00
Anatoly Lyutin a871830dd3 user32: Fix return value in ShowScrollBar according with test. 2008-02-25 13:26:52 +01:00
Christopher Berner e59bf8c560 user32: Fixed off by one scroll bar pixels. 2008-01-16 18:04:01 +01:00
Gerald Pfeifer 56af18f223 user32: Fix variable type in SCROLL_HandleScrollEvent(). Remove useless check in SCROLL_SetScrollInfo(). 2007-11-26 13:54:44 +01:00
Alexandre Julliard 6ff78347e2 user32: Remove a few traces that only duplicate the relay information. 2007-11-12 14:03:45 +01:00
Alexandre Julliard bfe88a00f8 user32: Store the builtin class names in Unicode. 2007-11-01 12:55:00 +01:00