Generate debug information in MSVC 11/12 builds too.

This partially (as MSVC 10 projects were already correct) backports r76475
from trunk, see #16236.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix IRichEditOleCallback compilation with MinGW.

MinGW headers declare the IRichEditOleCallback interface and the
corresponding IID, but the libraries don't contain the latter symbol.
Work around it by defining it ourselves.

Fixes #16340.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76774 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxTextCtrl: call UpdateUI() when showing OLE-based context menu.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Revert wxCurrentPopupMenu clearing in HandleMenuPopup().

WM_COMMAND is delivered after WM_UNINITMENUPOPUP and clearing
wxCurrentPopupMenu in the latter's handler broke delivery of the command
event to the wxTextCtrl control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76776 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Improve handling of right-to-left support in wxStaticBox on wxMSW.

Back in #8101 I made fixes for wxStaticBox and right-to-left handling under Windows.

While this worked fine in wx2.8, the old patch has some unfortunate consequences on wx3:
* Since the box is always set to LTR, its children also inherit LTR
* Text was always right-aligned

This follow-up patch removes the RTL-specific code from wxStaticBox. Instead, the wxMemoryDC in wxStaticBox::OnPaint is made to inherit attributes from the wxPaintDC.

Tested on XP (both XP and classic theme), Windows 7 and 8.1

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix wxStaticBox' clipping region in RTL mode.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix harmless unused parameters warnings in builds without wxLogTrace().

Fix warnings appearing when building with --disable-debug under Unix by
either referencing the parameters or variables which become unused then,
because wxLogTrace() calls are compiled out, or by not compiling the code
whose only purpose is to call wxLogTrace() at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just fix a harmless warning under OS X.

Don't use "size" variable unnecessarily under non-Mac platforms, this also
fixes a warning about reassigning it immediately after assigning a previous
values to it under Mac.

Closes #16353.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76788 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix appearance of custom drawn wxToggleButton in wxMSW.

Ensure that the owner-drawn toggle buttons are drawn in the pressed state when
they are pressed, even if they are also selected or under mouse.

Closes #11665.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't use C++ streams in wxString::FromCDouble() implementation.

This doesn't work if the global C++ locale had been changed and we can't call
imbue(locale::classic()) to ensure that the stream we use here uses the C
locale because imbue() is hopelessly broken in some implementations.

So just get rid of this code and keep only the hack replacing the decimal
separator with the dot explicitly. This is ugly but should always work in
practice and is also consistent with ToCDouble().

Closes #16343.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't call strlen() unnecessarily in wxFFile::Write().

We already have the length of the string, either in the buffer if we actually
converted the string from Unicode to multi-byte, or in the string itself in
non-Unicode build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Check for conversion failure correctly in wx[F]File::Write().

Check for the length of the buffer to determine whether the conversion failed
instead of checking whether it's NULL because this is currently never the case
because of the code in wxString::AsCharBuf() which returns "" and not NULL in
case of conversion failure.

This at least eliminates silent data loss when saving data that can't be
converted to the current locale encoding.

Closes #16348.

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