Merge branch 'aui_splitter_overlay'

Use wxOverlay to show sash feedback in wxAUI and in wxSplitterWindow to
implement non-live resizing in ports where it didn't work before (wxGTK3
with Wayland, wxOSX).

See #24193.
This commit is contained in:
Vadim Zeitlin 2024-02-13 21:23:47 +01:00
commit d3731c86ed
16 changed files with 416 additions and 569 deletions

View file

@ -228,6 +228,8 @@ public:
@param window The associated window, may be null (this parameter was
added in wxWidgets 3.3.0)
@note As of wxWidgets 3.3.0 this function always returns false.
@since 3.1.4
*/
static bool AlwaysUsesLiveResize(const wxWindow* window);

View file

@ -27,6 +27,25 @@ public:
example, when the window content has been changed and repainted.
*/
void Reset();
/**
Sets or unsets constant opacity of the overlay window.
If @a alpha is `-1`, use per-pixel alpha blending, otherwise use the
given alpha value for all pixels.
@note Drawing on the overlay window is opaque by default under wxMSW.
You have to call SetOpacity(-1) before initializing the overlay and use
a graphics context to do the actual drawing if you want per-pixel alpha
blending. Or, assuming that SetOpacity(-1) wasn't called, explicitly set
the alpha value (at any time) to change the overlay window's opacity.
@note This is currently only implemented for wxMSW and does nothing in
the other ports.
@since 3.3.0
*/
void SetOpacity(int alpha);
};

View file

@ -142,20 +142,6 @@ public:
*/
virtual ~wxSplitterWindow();
/**
Returns true if splitter always behaves as if wxSP_LIVE_UPDATE were
specified.
This function returns true if non-live update mode is not supported and
live update is always used, even if wxSP_LIVE_UPDATE was not explicitly
specified.
@see wxClientDC::CanBeUsedForDrawing()
@since 3.3.0
*/
bool AlwaysUsesLiveUpdate() const;
/**
Creation function, for two-step construction.
See wxSplitterWindow() for details.