Note that it is still not set for wxEVT_SET_FOCUS, because it's not
immediately obvious how to obtain the previously focused window from
there. It's still better than always having the window NULL.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
It can be used to show more customizable tooltips than the native wxToolTip
but at the price of using generic implementation in some cases (actually
almost always now, with the exceptions of text control tooltips under MSW).
Extra features include:
- The balloon-like tooltip form.
- Possibility to show an icon.
- Title display in a different form.
More customization could be added later. It should be also possible to fully
implement this class natively under MSW.
Update the dialogs sample to show the rich tooltips in action.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Document which wxRegion methods can and can't be used when the region itself
is invalid.
Apply the minor changes to wxGTK (Xor() didn't do the right thing, Offset()
didn't assert) and wxOSX (Offset() crashed) to make their behaviour consistent
with wxMSW.
Add a (trivial, so far, but to be extended later) wxRegion unit test checking
that the methods do indeed behave as documented.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Explicitly erase the part of the window outside of its shape with a
transparent colour to ensure that it is indeed transparent and not just has
the default solid background.
Closes#13340.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Default constructing a wxRegion created an object that unexpectedly passed
IsOk() test in wxOSX. This was completely unexpected so don't do this and
leave default constructed wxRegion invalid, as in the other ports.
Update DoCombine() to be able to deal with the case of an invalid source
region in a way consistent with the other ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxTextWrapper is used for the multiline text for which it doesn't make sense
to use mnemonics so don't interpret '&' specially in the text used with it.
Doing this also allows to remove the hack used in wxDialog::CreateTextSizer()
to deal with it that was used so far.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
::AdjustWindowRectEx() doesn't seem to work correctly for wxPopupWindow and
still offsets the coordinates by the title bar height even if these windows
don't have WS_CAPTION style. Rather than try to work around this, simply use
wxWindow method instead of the Windows function as shape wxRegion offset.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We should quert for IsSupportedFormat(format, Set) before calling SetData()
with this format, not for IsSupportedFormat(Get) which is the default and was
used by the code.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Although this compiler provides underscore-less versions of all POSIX
functions, this one only exists in a version with underscore, so use it to fix
compilation with it in ANSI build.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69447 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The GtkTreeView control that should get the focus in in scrolled window;
the same is already done for wxListBox.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This class becomes completely trivial under WinCE as its functionality
(setting the window shape) can't be implemented under this platform, so just
don't compile it at all there.
This both (slightly) reduces the amount of #if checks and should make the code
(slightly) smaller.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
If a locale doesn't use AM/PM strings, strftime() can return an empty string
which does not indicate an error, so don't assert that strftime() failed in
this case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Move SetShape() implementation from wxTopLevelWindow to wxNonOwnedWindow so
that wxPopupWindow, which also inherits from the latter, could use it as well.
This makes it possible to have popup windows with irregular shapes in wxGTK as
well as in wxMSW and wxOSX.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This allows to easily do something in the derived classes when the widget is
realized, without having to deal with GTK+ signals. In particular, get rid of
another "realize" signal handler in wxTopLevelWindow and simply override this
virtual method there.
It also incidentally makes the callback code simpler as the window doesn't
need to be constantly dereferenced.
This shouldn't result in any changes to behaviour.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This avoids warnings about wxUSE_GUI not being defined in Mac tests in
wx/platform.h which are now (since r69387) done before wx/chkconf.h inclusion.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The labels were not updated (i.e. ellipsized or, on the contrary, displayed in
full) correctly after a status bar field was changed; there was even a FIXME
comment about this in the code.
Fix this by calling DoUpdateStatusText() when the field width is changed and
also update the field width after resetting the existing tooltips.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxNotificationMessage can be associated with an existing wxTaskBarIcon under
wxMSW instead of creating its own one internally and in this case the icon
must not be deleted when the notification is hidden but it was always
destroyed unconditionally by wxNotificationIconEvtHandler created by
wxAutoNotifMsgImpl.
Fix this by only creating this helper event handler if we do own the icon.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxCustomBackgroundWindow is a new class allowing to set a custom bitmap for
the background of any window. The relevant code was mostly moved from wxPanel
to which it was added only recently (before 2.9.2) making it unnecessary to
preserve compatibility.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also add wxNonOwnedWindow for wxMSW (which previously simply typedef'd it to
wxWindow) and document this class now that it provides some user-visible
functionality.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This member was only used in wxGTK-specific code but it was declared for all
platforms which was unnecessary and confusing.
Move its declaration in wxGTK-only section of the class.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is mostly important to allow using wxImage-based wxGraphicsContext
without requiring X server connection under Unix: as wxFont can't be used
without X server, we needed another way to create wxGraphicsFont in this case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Provide a way to use wxGraphicsContext to draw on wxImage.
This is implemented internally by drawing on wxGraphicsBitmap which can be now
also created from wxImage.
Add a test of the new functionality to the image sample.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775