[Git][wxwidgets/wxwidgets][master] 37 commits: Add wxAuiDefaultDockArt::GetPaneButtonBitmap()

0 views
Skip to first unread message

Vadim Zeitlin (@_VZ_)

unread,
9:59 AM (9 hours ago) 9:59 AM
to wx-commi...@googlegroups.com

Vadim Zeitlin pushed to branch master at wxWidgets / wxWidgets

Commits:

  • db07faf2
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Add wxAuiDefaultDockArt::GetPaneButtonBitmap()
    
    Add a helper function for accessing pane icons to avoid having to make
    the new wxBitmapBundle-valued member fields protected and leave them
    private to e.g. allow their initialization on demand only.
    
    No real changes.
    
  • fb234956
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Revert "add wxCheckBox to toolbar samples"
    
    This reverts commit f6f1f05edcecd9ea64f3a1836bb8e76beacb14d1 because
    it's not really useful for demonstrating any capabilities and it makes
    samples windows too wide.
    
  • 1bb9635f
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Simplify wxAuiToolBarItem initialization
    
    Initialize members in their declarations, use (defaulted) assignment
    operator instead of reimplementing it in Assign() and remove redundant
    assignments to new wxAuiToolBarItem fields in wxAuiToolBar::AddXXX().
    
    No real changes.
    
  • f1e97288
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Change initial values of some wxAuiToolBarItem fields
    
    Don't set m_dropDown and m_sticky to true initially, this didn't make
    much sense because most items don't have drop downs and are not sticky.
    
    Also change the default m_minSize value from (0,0) to (-1,-1) as the
    code in wxAuiToolBar always effectively initialized it with it.
    
    This is a backwards-incompatible change, formally, but as application
    code shouldn't ever create wxAuiToolBarItem objects (because it can't do
    anything useful with them) but only receive them from wxAuiToolBar, and
    because this commit doesn't change the values of the fields of these
    objects, it shouldn't have any consequences in practice.
    
  • b4f23213
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Simplify tool size calculation code in wxAuiGenericToolBarArt
    
    Call GetTextExtent() only once and store its result instead of calling
    it from 3 different places.
    
    Also rely on GetTextExtent() returning (0,0) for the empty string and
    remove checks for the label being empty.
    
  • ca993997
    by Vadim Zeitlin at 2025-11-28T17:23:17+01:00
    Check that wxAUI_TB_HORZ_LAYOUT isn't used with wxAUI_TB_VERTICAL
    
    Combining these styles doesn't make sense, so assert if this happens to
    point out probably mistake in the code creating toolbar.
    
  • 9b278b1c
    by Vadim Zeitlin at 2025-11-29T23:10:34+01:00
    Document wxAuiGenericToolBarArt and wxAuiMSWToolBarArt too
    
    This will provide a way to document functions overridden in them to
    behave differently from the base implementation in wxAuiToolBarArt, if
    nothing else.
    
  • 6b0b8edc
    by Vadim Zeitlin at 2025-11-29T23:13:24+01:00
    Add support for rendering text vertically to wxAuiToolBar
    
    This will actually allow to use text for vertical toolbar items.
    
    This commit is best viewed ignoring whitespace-only changes.
    
  • f084a3e4
    by Vadim Zeitlin at 2025-11-30T00:07:23+01:00
    Add wxAUI_TB_VERT_TEXT_{DOWN,UP} styles
    
    These styles provide a simple way to specify that the text should be
    shown and set its direction when using vertical toolbars.
    
  • c3e0e791
    by Vadim Zeitlin at 2025-11-30T01:46:34+01:00
    Add support for drawing "minimized" button in AUI panes
    
    The button is not functional yet.
    
  • 7d87a3fc
    by Vadim Zeitlin at 2025-11-30T01:49:04+01:00
    Don't forcible reset item min size to (1,1) in wxAUI
    
    This had been already done once back in 5c62cb6c7d (wxAUI: maintain
    minimum size of panes across dock/undock., 2006-07-05) before being
    added back in dec588bd6e (reverted an earlier patch that was causing
    problems, 2006-07-08) but it's not clear at all what kind of problems
    not doing this was causing, while it's very clear that doing this
    results in problems due to the window minimum size not being respected.
    
    Try (un?)reverting this one more time: if we run into problems due to
    this commit and have to undo it, hopefully these problems will at least
    be documented in a comment and/or commit message this time.
    
  • fb1eef05
    by Vadim Zeitlin at 2025-11-30T01:51:22+01:00
    Use best size normally in wxAuiToolBar
    
    This class used min size instead of best size and updating min size when
    its best size changed, probably due to the fact that min size was
    getting reset by wxAuiManager all the time due to the code removed in
    the parent commit.
    
    But as this code has been removed now, we can also simplify wxAuiToolBar
    and not touch its min size any more.
    
  • 023a984f
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Add initial support for minimized panes to wxAUI
    
    Show buttons allowing to hide or restore the pane in the special
    minimized panes toolbars and allow configuring where such toolbars can
    be created.
    
  • 9ce02a81
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Synchronize minimizable pane button position with its state
    
    If the pane is floated, remove the button if it was shown in a dock for
    the panes that can be minimized, and if it is docked again, show it
    again but in the dock corresponding to the new frame position.
    
  • 438ddc01
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Don't leave empty docking toolbars on the screen
    
    If a docking toolbar becomes empty, e.g. due to moving all panes that
    would be docked in it to another side of the window, remove it as it
    becomes useless.
    
  • a80fcbf3
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Remove closed panes from docking toolbars
    
    If a pane is closed, remove it from the docking toolbar too.
    
    This also takes care of not using dangling pointer if the pane being
    closed is being destroyed as well.
    
  • c2b87898
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Show text only optionally for minimized panes
    
    By default, show only their icons and provide ShowTextForMinPanes() to
    enable showing their titles as well.
    
  • ba0d5e7d
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Ensure that closed panes are not shown in docking toolbars later
    
    After the changes of the previous commit, closed panes were not shown in
    the docking toolbars immediately after closing them, but could still be
    shown in them if the toolbar was created later.
    
    Fix this by remembering that the pane was closed in its state field and
    skipping over closed panes when adding panes to the dock later.
    
  • 2f6165fc
    by Vadim Zeitlin at 2025-12-01T19:50:15+01:00
    Show pane title as tooltip for its button when minimized
    
    This should add some clarity, as icons are not always enough and the
    text may not be shown.
    
  • 469b7678
    by Vadim Zeitlin at 2025-12-01T19:51:12+01:00
    Allow minimized pane icon to be different from the normal one
    
    Add wxAuiPaneInfo::IconMin() which can be used to set the icon to shown
    when the pane is minimized.
    
    This is useful especially in the case when normal icon is not set at
    all, as the minimized pane button really must have an icon.
    
    Show it in the sample using some completely random items (which is not
    ideal, but there are no good looking standard icons that would make
    sense here).
    
  • f1dc5743
    by Vadim Zeitlin at 2025-12-03T00:46:18+01:00
    Add wxAUI_TB_ROTATE_ICON_WITH_TEXT style
    
    Don't always rotate icons in the vertical toolbars to match the text
    orientation, this has unexpectedly turned out to be very controversial,
    so don't do this by default and require the use of a special style to do
    it.
    
  • b571c19b
    by Vadim Zeitlin at 2025-12-03T00:48:25+01:00
    Remove duplicated comment for wxAUI_ORIENTATION_MASK
    
    This comment was for wxAUI_TB_TEXT and didn't make sense here.
    
    Leave wxAUI_ORIENTATION_MASK itself just in case anything relies on it
    being here.
    
  • 17164775
    by Vadim Zeitlin at 2025-12-03T00:54:05+01:00
    Make minimized pane docking toolbars more configurable
    
    Allow showing either icons or text or both of them in them and also
    allow to optionally rotate the icons to match the text orientation.
    
  • 4088d595
    by Vadim Zeitlin at 2025-12-03T19:28:14+01:00
    Remove unnecessary override of wxAuiMinDock::DoSetSize()
    
    This is a leftover from debugging toolbar resizing.
    
  • 3f414269
    by Vadim Zeitlin at 2025-12-03T19:35:56+01:00
    Refactor: extract code in wxAuiManager::GetContainingDockSize()
    
    No real changes, this is just a pure refactoring extracting the code for
    finding the size of the containing dock into a reusable function.
    
  • 2ee23a92
    by Vadim Zeitlin at 2025-12-03T19:36:38+01:00
    Remove unnecessary call to Show() when restoring minimized pane
    
    wxAuiManager::Update() will show the window after a call to
    wxAuiPaneInfo::Show() anyhow, so this isn't really necessary and might
    just result in flicker due to showing the window at a wrong location.
    
  • e3dbff6b
    by Vadim Zeitlin at 2025-12-03T19:40:57+01:00
    Preserve size of the minimized panes
    
    Remember the size of the dock containing them, so that it is recreated
    with the same size when restoring them later.
    
  • 76de5661
    by Vadim Zeitlin at 2025-12-08T18:17:38+01:00
    Informally deprecate wxGLApp
    
    It is not really needed for anything and while there is no good reason
    to remove it (breaking code which depends on it by inheriting from this
    class), mention that it shouldn't be used in the new code and stop
    overriding GetXVisualInfo() in it when not using GTK 2, as it's the only
    port which actually needs it.
    
  • 0b574c23
    by Vadim Zeitlin at 2025-12-10T15:37:06+01:00
    Add make_unique fallback implementation
    
    Define it ourselves if the standard library doesn't provide it (as is
    the case for the still supported g++ 4.8).
    
  • d9df7db1
    by Vadim Zeitlin at 2025-12-10T15:37:06+01:00
    Allow choosing between GLX and EGL during run-time
    
    The same library binary can now be used to use either GLX or EGL for
    wxGLCanvas implementation instead of the choice being done at build time
    (by either always using EGL if it is enabled or always using GLX
    otherwise).
    
    New wxGLCanvas::PreferGLX() function (available only if wxHAS_GLX is
    defined) can be used to request using GLX even if EGL is available,
    otherwise EGL is used by default, just as before.
    
    Additionally new "opengl.egl" system option can be used to the same
    effect, mostly to allow users to set "wx_opengl_egl" environment
    variable to 0 to use GLX if possible, i.e. with X11 and not Wayland.
    
  • 4817bb59
    by Vadim Zeitlin at 2025-12-10T15:38:46+01:00
    Remove redundant eglBindAPI() call
    
    Since the changes of a88a56b9fe (Fix OpenGL ES creation in EGL-based
    wxGLCanvas implementation, 2025-12-06) this call is not needed any more,
    as we'll call eglBindAPI() with the correct API to use when we know it
    later.
    
  • e9647b5c
    by Vadim Zeitlin at 2025-12-10T15:43:45+01:00
    Document wxGLCanvas::GetGLXVersion()
    
    This function has been available since more or less always and is now
    used in the OpenGL cube sample, so it seems like it ought to be public.
    
  • 946ae2e8
    by Vadim Zeitlin at 2025-12-10T16:23:08+01:00
    Add wxGLCanvas::GetEGLVersion() to wxGTK and wxX11
    
    Provide this function if only for consistency with GetGLXVersion().
    
  • 242dacdb
    by Vadim Zeitlin at 2025-12-10T16:23:08+01:00
    Make wxGLContextX11 ctor code a bit shorter and more clear
    
    It wasn't obvious why did we duplicate identical code for attributes
    initialization before, so stop duplicating it and write a comment
    explaining what's going on here and why we can't just initialize the
    various variables from the provided or fallback attributes directly.
    
    No real changes.
    
  • 08855051
    by Vadim Zeitlin at 2025-12-16T15:31:35+01:00
    Merge branch 'aui-minimize'
    
    Add support for minimizing panes to wxAUI.
    
    See #26009.
    
  • 36709380
    by Vadim Zeitlin at 2025-12-16T15:32:35+01:00
    Merge branch 'runtime-egl'
    
    Make it possible to choose during run-time between using GLX and EGL.
    
    See #26023.
    
  • 7b8195f5
    by Vadim Zeitlin at 2025-12-16T15:33:36+01:00
    Don't hang handling wxEVT_CHAR_HOOK while IME is used in wxMSW
    
    Not skipping the event in wxEVT_CHAR_HOOK event handler could completely
    freeze the program due to IME getting in some broken state. Avoid this
    by ensuring we always let the message hook it installs have the keyboard
    messages when it is active.
    
    See #26027.
    
    Closes #22473.
    

47 changed files:

The diff was not included because it is too large.
Reply all
Reply to author
Forward
0 new messages