Apply TABLE ALIGN to the wrapper that positions the table instead of
using it as the default alignment for TD/TH content. Leave cell text
alignment controlled by row/cell alignment, with the existing TH default.
Add a parser layout regression test and sample markup for the centered
table case.
Fixes#21853.
Closes#26672.
The sample used <Alt+F> for the Get menu info command. However,
this conflicted with the shortcut used to invoke the File menu.
Fix this by using a different shortcut for the Get menu info.
The old-but-still-supported MSVS 2015 has problem parsing Unicode
literals outside the BMP when using the '\U' escape. Use raw octet
syntax to work around this.
Enable color font option for Direct2D text drawing on Windows 8.1 and
newer.
Closes#19275.
Closes#26657.
Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
Don't mirror coordinates passed to GDI functions in RTL layout as they
already mirror them internally, resulting in incorrect coordinates being
used. As a consequence, wxDC::LogicalToDevice() now always returns
unmirrored coordinates, even in RTL layout, which is consistent with
wxGTK3 and wxQt.
Also fix scaling even in LTR layout by using ::ScaleWindowExtEx().
See #26398.
- Update wxRibbonPanel to accept wxBitmapBundle for minimised icons.
- Modify wxRibbonToolBar to utilize wxBitmapBundle for tool icons.
- Change wxRibbonAUIArtProvider and wxRibbonMSWArtProvider to handle
wxBitmapBundle for drawing operations.
- Adjust wxRibbonGallery to support wxBitmapBundle for gallery items.
- Implement DPI change handling in wxRibbonBar, wxRibbonPage,
wxRibbonPanel, and wxRibbonToolBar to recalculate sizes and redraw
with the correct bitmap for the current DPI.
- Ensure all relevant methods and event handlers are updated to work
with wxBitmapBundle instead of wxBitmap.
Closes#26117.
Use sizer to position the buttons on the new pages instead of hardcoding
the buttons positions which, unsurprisingly, didn't work well and
resulted in buttons overlapping each other in high DPI.
Using wxScrolled<> on the wxFrame meant that the status
bar moved when scrolling, so use give the frame a
wxScrolledCanvas child.
Also, wxDC::FloodFill() doesn't seem to work well with a
scrolling window. (Maybe because the center point isn't
necessarily visible?) Using DrawRectangle(), etc works
better.
Add wxScrolled<> API to enable autoscroll when
wxScrolled<> does not have mouse capture. The
intent is that autoscroll-without-capture can be
enabled on DragEnter and disabled on DragLeave.
Implement this function as a trivial wrapper for wglGetProcAddress(),
glXGetProcAddressARB() or eglGetProcAddress() depending on the platform
(currently not implemented for macOS).
Account for the known bug in some Windows OpenGL drivers by checking for
manifestly invalid return values and handling them as null.
Use the new function in wxGL code itself and in the pyramid sample.
Closes#9215.
Closes#26209.
Support auto-scrolling both orientations simultaneously and make
auto-scroll region configurable.
Also allow changing auto-scroll dir without ending drag operation and
starting another one.
Closes#25978.
Calling ClearBackground() followed by a Refresh() doesn't make any sense
because ClearBackground() either a no-op (e.g. wxGTK) or just redundant
under (wxOSX and wxQt) or will be overwritten in wxMSW.
This was not only useless, because the controls were repositioned by the
sizers later anyhow, but also actively harmful in at least one case,
when creating a control with wxTE_MULTILINE and wxTE_NO_VSCROLL styles
with too small height prevented the text from being appended to it.
Closes#26177.
Using "%lu" for size_t resulted in an assertion failure under Win64.
Also remove casts of size_t to "unsigned int", even if this worked, it
is ugly and using "%zu" is simpler.
And remove even more useless casts of int to long too.
Mimic the low level OpenGL APIs by allowing to pass -1 to
SetSwapInterval() to request adaptive VSync and implement this for GLX
and WGL.
Change return type of SetSwapInterval() to allow returning a value
indicating that enabling adaptive VSync failed but standard VSync could
still be set.
Allow setting the swap interval value or not setting it at all instead
of always forcing it to 0.
The changes of 3dde6bdeb0 (Disable swap interval in GLX wxGLCanvas
implementation too, 2023-12-25) are not always desirable, so allow to
customize the behaviour.
Implement this for Unix (GLX and EGL) backends for now and allow testing
using these functions in the cube sample.
See #24163, #24165.
Show generic wxTreeCtrl in the sample and improve its colours under MSW,
in both light and dark mode (although the latter could/should still be
improved to be made more similar to the native control).
See #26123.
Refactor wxBitmapBundleImplSVG: reduce code duplication by adding
wxBitmapBundleLunaSVG and wxBitmapBundleNanoSVG that implement
DoRasterize().
Allow to use SVG size in wxBitmapBundle::FromSVG() by default.
See #26116.