Improve drawing of monochrome bitmaps with masks in wxMSW.

This is a compromise solution between r78040, which handled monochrome bitmaps
correctly, but broke drawing bitmaps without using their mask, and r78054
which simply reverted it: this version preserves the old behaviour when not
using the mask, but draws at least the shape (if not the colour) correctly
for the monochrome bitmaps.

Notice that this also reverts r78039 which is not needed any more without
r78040.

Closes #16512.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Set the initial text value of wxSpinCtrlGeneric correctly.

The text control was left empty if the string value was not specified, but
it should use the numeric initial value instead in this case.

This notably affected wxSpinCtrlDouble under non-GTK platforms.

Closes #16621.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Make results of wxDC::DrawEllipticArc() consistent across all platforms.

And also consistent with wxGraphicsContext method with the same name.

Document the rules determining what is drawn.

Closes #4437.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove outdated comment from ShowAssertDialog().

The comment didn't correspond to the code since the changes of r62842, the
asserts don't result in an immediate trap now even if they happen in non-main
thread.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix best size calculation for buttons with bitmaps in wxMSW.

Add the bitmap margins to the bitmap size, not the total button size.

This fixes the buttons becoming unnecessarily tall as soon as they were
assigned even a tiny bitmap.

Closes #16536.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Update the out of date link to DebugView in logging overview.

The readable link that existed before is unfortunately not available any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Log wxMenuEvent::GetMenu() in the menu sample for wxEVT_MENU_{OPEN,CLOSE}.

Show the menu associated with the event, if any, directly in the sample to
make comparing the behaviour of the different ports easier.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78129 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Return correct menu pointer for wxEVT_MENU_{OPEN,CLOSE} in MDI frames.

These events are supposed to carry a pointer to the menu which was opened or
closed, but wxMenuEvent::GetMenu() always returned NULL for the menus opened
when a child MDI frame was active, as its menu bar, containing the menu, was
not searched for it.

Fix this by overriding MSWFindMenuFromHMENU() at wxMDIParentFrame level, just
as we already do for FindItemInMenuBar().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Do use wxUSE_STD_CONTAINERS_COMPATIBLY around code using std::vector.

This was supposed to be done in r78066, but after introducing this new
wxUSE_XXX symbol I forgot to actually use it in the place it was intended to
be used.

Fixes compilation with wxUSE_STD_DEFAULT==0 and closes #16673.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78131 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add RAII AutoIconInfo class wrapping ICONINFO Windows struct.

This ensures that we never forget to delete the handles returned by
GetIconInfo() and also centralizes the error message given if it fails in a
single place.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Introduce wxCursorBase class defining common wxCursor API.

This is done in preparation for adding a new wxCursor method and will allow us
to define it in a single place by default instead of having to provide stubs
for all ports.

See #16539.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78133 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxCursor::GetHotSpot() and implement it for wxMSW and wxGTK.

Allow retrieving the coordinates of the cursor hot spot, at least for the
ports for which we know how to do it.

Closes #16539.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78134 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Free converted command lines arguments automatically in wxMSW.

This makes the code slightly simpler (no more need for the scope guard) and
avoids memory leaks when not using wxEntry() (but calling wxEntryStart()
instead).

Closes #16664.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add support for reading multi string values to wxRegKey.

Add a wxRegKey::QueryValue() overload working with REG_MULTI_SZ values.

Closes #16653.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775