Fix generic wxSearchCtrl size/layout code.

Override DoGetBestClientSize() instead of DoGetBestSize(), as we're really
computing just the size of our contents and like this we don't need to hard
code platform-dependent border sizes in this control itself.

Also use the client size in LayoutControls() for the same reason. This also
makes it unnecessary to pass it the width and height as it can find them on
its own. And x and y were never used in the first place, so remove them too.

Finally, center the bitmaps vertically.

Closes #16422.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix ribbon bar tab width computation if the first tab is hidden.

The logic for the first tab should really deal with the first visible tab as
the actual first tab might be hidden and in this case we shouldn't account for
it at all.

Closes #16432.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77093 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Merge wxQT branch into the trunk.

This merges in the latest sources from GSoC 2014 wxQt project with just a few
minor corrections, mostly undoing wrong changes to common files in that branch
(results of a previous bad merge?) and getting rid of whitespace-only changes.
Also remove debug logging from wxGrid.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove unused variable in wxDCImpl::CalculateEllipticPoints().

Closes #16433.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid unused variable warning in wxUSE_DATAOBJ==0 build.

Declare variable only used when wxUSE_DATAOBJ==1 inside the check for it.

Closes #16434.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid warning about unused variable in wxiOS build.

Define variable only used if wxOSX_USE_COCOA_OR_CARBON inside the check for it.

Closes #16435.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid unnecessary assignment in wxOSX build.

Don't assign to the variable only to overwrite it with a new value.

Closes #16436.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also ignore arch-specific build directories in wxMSW wxStandardPaths.

In addition to ignoring debug/release subdirectories, also ignore their
(possible) parent Win32/x64 directories, and for the same reason: this allows
the code using wxStandardPaths to work even when the program is ran from the
build directory.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Show new style Windows directory selector even for non-existent paths.

Passing an invalid initial directory to wxDirDialog resulted in using the old
style Windows directory selector dialog instead of the new style (file dialog
like) one, which was unintentional, as incorrect initial directory shouldn't
prevent the dialog from being shown.

Fix this by handling ERROR_FILE_NOT_FOUND error specifically and still showing
the new dialog, just without the (non existent) initial directory value, in
this case.

Closes #16430.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77464 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add a test of throwing an exception from wxYield() to except sample.

This demonstrates that under 64 bit Windows exceptions may not propagate
through the kernel code and throwing from inside wxYield() results in either
an immediate abort, even if the code calling wxYield() tries to handle the
exception, or, even more surprisingly, is just completely ignored.

See http://blog.paulbetts.org/index.php/2010/07/20/the-case-of-the-disappearing-onload-exception-user-mode-callback-exceptions-in-x64/
for more information.

Moreover, independently of Windows weirdness, throwing from wxYield() also
results in a difficult to debug crash when using wxGTK because C++ exceptions
can't propagate through C GTK+ code in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No real changes, just simplify SafelyProcessEvent() slightly.

Remove a long comment about initializing "loop" in 2 steps and just do it in 1
step instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
No changes, just document exception-related methods in their own group.

Extract wxApp::OnExceptionInMainLoop() and OnUnhandledException() in a
separate Doxygen group as there will be more functions defined in it soon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add wxApp::StoreCurrentException() and RethrowStoredException().

These methods can be used to ensure that the exceptions thrown from event
handlers are safely rethrown from the code dispatching the events once the
control flow gets back there.

This allows to work around the problem with not being able to propagate
exceptions through non-C++ code and can be used, for example, to catch
exceptions thrown by the handlers invoked from inside wxYield() by a try/catch
block around wxYield() -- something that didn't work before, update the except
sample to show that it does work now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove the apparently unnecessary <locale> inclusion.

This header doesn't seem to be needed anywhere.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77469 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Provide wxApp::StoreCurrentException() implementation for C++11.

When using C++11 we can provide implementations of wxApp::StoreCurrentException()
and RethrowStoredException() ourselves and thus make catching exceptions outside
of the event loop work by default.

Do this and update the documentation and the sample to reflect it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Update wxFileDialog filter index when setting its path.

This ensures that GetFilename() and GetFilterIndex() always return consistent
results, even if the path was set programmatically, e.g. during unattended
tests using wxExpectModal<wxFileDialog>.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Remove checks for QueryPerformanceCounter() success.

According to http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408.aspx
this function will never fail under Windows XP or later, so simplify code by
not checking whether it did.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add tests of gradients with stops to the drawing sample.

This shows inconsistency in handling of radial gradients with and without
stops in current wxMSW GDI+-based wxGraphicsContext implementation.

See #16443.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Suppress unused variable warning in wxRichTextObject code.

Put the variable used only inside #if 0'd code inside #if 0 itself
(it would be better to get rid of this entirely, of course...).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid unused variable warnings in !wxDEBUG_LEVEL builds.

Don't define a constant which is only used inside wxASSERT() at all if debug
checks are disabled.

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