When not specifying the function to disconnect, the associated event sink was
destroyed too early resulting in crashes later. Fix this and add unit tests
verifying that things work as expected and at least don't crash.
Closes#14563.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Just always call the virtual OnDraw() if wxEVT_PAINT wasn't handled. This is
much simpler than connecting our own special handler just to set a flag saying
whether the event was processed which was very complicated and didn't work
anyhow for the statically connected wxEVT_PAINT handlers.
See #14757.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This fixes a long standing problem with 2 wxPaintDC created one after another
(and not with nested lifetimes, which was handled by the caching mechanism
previously used) not working correctly. And as this was exactly what happened
when handling wxEVT_PAINT for wxScrolled, it also fixes drawing artefacts when
using scrolled windows.
Closes#14757.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This function can be used to size a, say, wxTextCtrl to be exactly of the size
needed to enter the given amount of text in it.
This patch adds wxGTK implementation for wxTextCtrl, wxChoice and wxCombobox;
changes to the samples and the documentation.
Closes#14812.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It doesn't work with GTK3, it causes deprecation warnings, and allowing
an app to change its theme is a dumb idea
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxToggleBitmapButton doesn't exist any more, don't forward declare it.
wxToggleButton does exist but is (fully) declared just below, so don't forward
declare it neither.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This fixes a rare bug which happens when we fail to install the task bar icon
under MSW for whatever reason (the only known way to reproduce it is to try to
do it very quickly after resume from suspend but there might be other
situations in which this happens). In this case we must delete the icon as we
are not going to get any timeout expiration notifications for it and so if we
don't delete it immediately, it would remain alive forever, preventing the
application from exiting as it counts as a top level window.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This was broken by r72581, add event.Skip() call to the handler for this event
added there.
Also add a handler for this event to the corresponding page of the widgets
sample to be able to test this.
Closes#14799.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The changes of r72785 moved m_gripperVisible and m_overflowVisible
initialization to Init() but this was too early as these fields depend on the
window style only set when it's really created, so re-initialize them to their
proper values in Create().
Closes#14794.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Set the event object for this event. Also don't skip the original tree event
if the wxEVT_COMMAND_DIRCTRL_CHANGED event was handled and disallowed.
Closes#14792.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also rearrange them so that the derived classes always appear after the base
ones, otherwise SWIG can't compile this file.
Closes#14784.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to define just one of them to run some tool, e.g. SWIG, on only
the classes defined in the base or in the core library (both are defined by
default for Doxygen itself).
Closes#14785.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also change the code changing the current item to collect the range checks
inside OnVerticalNavigation() itself instead of doing them in the caller.
Closes#14802.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Since the changes of r72325, the root item could be collapsed and marked as
not having any children but this was wrong because no items could be added to
it after this.
Just ignore any attempts to collapse it.
Closes#14801.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use CreateStdDialogButtonSizer() instead of constructing
wxStdDialogButtonSizer directly, not only this is shorter but it also makes
the "OK" button default correctly.
Also initialize the labels instead of leaving them initially empty.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't crash when creating a plain wxButton with wxBU_NOTEXT style. This
happened because we skipped creating the peer (real implementation) in this
case entirely on the assumption that we were creating a wxBitmapButton, but
this is not necessarily the case. So now test that the creation of the peer is
really disabled before skipping it (this required adding ShouldCreatePeer()
accessor).
Merging wxWidgetImpl::CreateButton() and CreateBitmapButton() (and the same
thing for toggle buttons) would still be a better solution but while it's
trivial to do for Cocoa, it isn't for Carbon. And we can't use a single
function for Cocoa but different functions for Carbon, so for now just
continue to use this hack.
Closes#13622.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
OSX uses NFKD but this is unexpected for wx applications, so normalize the
string to use the composed form whenever we receive a file system path from OS
X.
Closes#13504.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use NSTextView setTypingAttributes to change the attributes used for the new
text by default as setting them for the selected region didn't do anything
useful under OS X (and did nothing at all when there was no selection).
Closes#12839.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Cast NSText to NSTextView when sending this message to it. Hopefully it
doesn't change the run-time behaviour but just fixes several lines of warnings
that were given without this cast.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The sample contains disabled code for using other type of windows than
MyCanvas for the splitter children but it didn't compile any more because the
variables were declared as wxScrolledWindow. Fix this by using just wxWindow
for them.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If a button was created using a normal single-line label (including empty one)
and then its label was changed to something multi-line later, its size stayed
wrong in wxOSX as it still used the fixed size bezel used by normal buttons.
Adjust the bezel after each bezel change now to update the size of the button
if necessary.
Closes#12491.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Make the name of the function more general and call it
OSXUpdateAfterLabelChange() as it's supposed to be called whenever the label
changes.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72885 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775