We must use physical coordinates for the brush origin to account for the
coordinates offset in scrolled windows, so add MSWAdjustBrushOrg() and call it
from MSWGetBgBrushForChild().
Closes#14917.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Just clearing the DC is not enough when the window is scrolled, so clear the
entire virtual area. We should be able to optimize it by clearing just the
rectangle currently scrolled into view but this is at least correct, i.e.
doesn't result in corrupted display, even if it's suboptimal.
See #14917.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73493 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This doesn't actually change anything as wxHAS_MSW_BACKGROUND_ERASE_HOOK is
always defined, except under WinCE where this file is not used anyhow, but do
test it here for completeness.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73492 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to avoid having another cursor resource and also makes this cursor
nicer as rightarr.cur looks rather out of place under modern Windows systems.
Closes#14991.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73491 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Create the new tab in wxAuiTabCtrl that was double clicked and not near the
last selected tab which could have been in another wxAuiTabCtrl.
Closes#14995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxMSW::GetLayout() wrapper to avoid directly binding to a function not
present in old Windows versions and also to fix linking errors with MinGW
after the changes of r73484.
See #3995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Return -1 from wxGridRowOperations::GetLineBefore(0) to ensure that we exit
the loop in wxGrid::PosToEdgeOfLine(). Doing this is the logical thing to do
as wxGridColumnOperations::GetLineBefore() already behaved like this and this
was is more expected than returning 0, as the function previously did for some
reason.
Closes#15035.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It turns out that the actual bitmap shown in this case varies between the
bitmaps at PBS_DEFAULTED and PBS_STYLUSHOT, so that it's invisible half of the
time if we don't specify the value for the latter. Do it now to fix unwanted
pulsing of the bitmap in the focused button.
Closes#15034.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
As MSW native control centers the image, it must be entirely redrawn when the
area in which the image is centered changes, but it doesn't happen by default,
so do it ourselves explicitly.
Also explain that this centering behaviour is platform-specific and shouldn't
be relied upon.
Closes#4564.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The mask must be mirrored in the same way as the main bitmap itself (currently
it's not mirrored at all but this could change in the future), so create the
temporary memory HDC with the same layout as is used by the main HDC.
Closes#3995.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The later versions of this compiler don't need it any more, so make it easier
to set up the projects for them at the expense of MSVC 6 and 7 users who will
now need to explicitly define wxUSE_RC_MANIFEST=1 and predefine the
architecture macro (or setup their resource compiler include path to get
wx/msw/rcdefs.h under the lib directory but predefining the architecture is
clearly simpler).
Do generate manifest when using gcc as it predefines the architecture macros
allowing us to avoid requiring using the generated rcdefs.h.
The other compilers will be dealt with as needed if anybody is still using
them.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Even with wxWS_EX_VALIDATE_RECURSIVELY flag, we should never validate the top
level children (e.g. dialogs) when validating the parent window. This is never
useful and can be completely unexpected.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just factor out the logic for children traversal into a
helper template class and reuse it in Validate() and both TransferData()
methods to avoid triplicating it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Cast NULL to the type of third argument of SendMsg() explicitly to avoid a
warning about it from Ubuntu g++ 4.6.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Draw the bitmap using OpenGL textures. Even without using PBO this results in
much greater performance than using wxImage or raw bitmap access.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It's not used for lines only, so call it "number of iterations" and not
"number of lines" and use "N" instead of "L" option for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Compare the speed of drawing the bitmaps by synthesizing wxImage and
converting it to wxBitmap and directly modifying wxBitmap bits using raw
bitmap access.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Still run all the tests by default but allow specifying --dc or --gc as well
as --paint, --client or --memory to test just the specified kinds of DCs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
These tests were not run because OnPaint() handler was called before OnCreate()
and exited the main loop before the create event could be dispatched. Fix this
by just running everything from OnPaint(), like this we're sure to do it.
Also refactor the code a little to avoid duplicating the tests.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If LC_ALL or LC_MESSAGES is set but empty, ignore it and use the next
environment variable. This is consistent with the standard setlocale()
behaviour which only uses LC_ALL if it is set and not empty.
Closes#15006.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Show how add, remove and clear annotations and also how to update the text
width when long annotations are added.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxBU_EXACTFIT in wxMSW only affected the width of the button but not its
height, which was still made as big as the standard button size as otherwise
the button text was rendered badly. However there is no reason to do this for
the buttons without any text, so let wxBU_EXACTFIT be really exact, in both
directions, in this case.
Also document this rather non obvious wxBU_EXACTFIT behaviour.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The previous fix (r73399) broke resizing from the side of the preceding grid
line, restore the old code and just add a loop finding the first visible line
before the one being clicked.
See #14947.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We should return -1 from here as there is no column before the first one and
wxGridRowOperations::GetLineBefore() already does this.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix warning in assert in wxProcess::SetPriority(): don't compare unsigned
priority with wxPRIORITY_MIN which is just 0, the condition is always true.
Closes#14931.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775