Invalidate wxGrid best size when the grid is changed.

Don't keep using the cached best size if rows/columns are added/removed
to/from wxGrid or resized, doing this meant that we always used the first
computed best size which was way too small after adding rows/columns to the
grid.

There could be more places where the grid best size may need to be invalidated
but this should be a good start.

Closes #14761.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Declare MeasuringGuard as friend in wxTextMeasureBase.

This should hopefully fix VC6 compilation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove assert checking for valid font in wxMSW wxDC::GetTextExtent().

It wasn't there before wxTextMEasure changes and it doesn't seem obvious why
should it be there, it should be possible to measure the text using the
default wxDC font without setting one explicitly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Allow testing for existence of specific file types in wxFileName.

Add "flags" parameter to wxFileName::Exists() to allow testing for the
existing of files of specific type: not only regular or directory but also
symlink, device, FIFO or socket.

And also to pass wxFILE_EXISTS_NO_FOLLOW flag inhibiting following the
symlinks without using DontFollowLink().

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add missing styles support to wxWindow XRC handler.

wxBORDER_RAISED, wx[HV]SCROLL and a few extended styles were not recognized.

See #14766.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add more error checks to XRC handler for longs, doubles and fonts.

Verify that the values in the XRC really conform to the expected type.

Closes #14766.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72709 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Allow specifying all wxFlexGridSizer parameters in XRC.

Add support for specifying flexible direction, grow mode in non-flexible
direction and row/column proportions for the growable ones.

Closes #14767.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Update header control when wxPropertyGridManager is resized.

Closes #14762.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72711 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Nepali translation update from Him Prasad Gautam.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix tests compilation in STL build after r72707.

Add an explicit call to wxString::c_str() as there is no implicit conversion
in STL build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Check the return value of system() and pipe() in the test suite.

This is mainly to avoid -Wunused-result warnings under recent Linux systems
but also could give valuable information if the call does fail.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Explicitly unregister custom wxWebViewIE namespaces when we are done with them. Also add a missing ClassFactory::AddRef.

Closes #14749

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove unnecessary SetInitialSize() from wxGTK wxComboBox::Create().

SetInitialSize() is already done by PostCreation() called just above, no need
to call it twice.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Ensure the correct cleanup order for GDI+-related modules in wxMSW.

GDI+ DLL could be unloaded by wxGdiPlusModule before wxGDIPlusRendererModule::
OnExit() was called, resulting in a crash when trying to call a GDI+ function
from the latter.

Fix this by adding a correct dependency between the modules.

Closes #14769.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72717 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Revert accidental incompatible change to wxFileName::DirExists().

The non-static version tests for the existence of the directory part of the
object only as is explicitly mentioned in the documentation, so do the test on
GetPath() and not GetFullPath() as we did since r72707.

Also add a unit test for this behaviour.

Closes #14771.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Set C++ global locale too in wxAppTraitsBase::SetLocale().

Ensure that C++ locale matches the C one, otherwise operations on C++ streams
may get much slower because some implementations (notable MinGW-64) change and
reset the C locale on every function call in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix border size computation in wxAuiTabArt.

Space was reserved for the borders even when it wasn't filled, resulting in
visual artefacts. Fix this by virtualizing the function returning the
additional space needed for the borders and only overriding it to return non
zero in wxAuiGtkTabArt.

Closes #14710.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wx/meta/removeref.h header defining wxRemoveRef<> helper.

This is a very simple template allowing to remove the reference from the given
type, similar to std::remove_reference<>.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxEvtHandler::CallAfter() for asynchronous method calls.

Add wxAsyncMethodCallEvent that is handled simply by calling the method this
event was created for and add default handler for this event to wxEvtHandler.

Implement CallAfter() overloads for up to 2 parameters only for now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Process pending events from wxYield() in wxGTK.

Calling wxYield() is supposed to process the pending events but it didn't, any
more, in wxGTK. Restore this by explicitly calling ProcessPendingEvents() from
wxGTK wxYield() implementation as wxGUIEventLoop::ProcessIdle() does not call
it, in spite of a comment to the contrary in the sources.

Closes #14760.

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