Commit Graph

79 Commits

Author SHA1 Message Date
Vadim Zeitlin
391080e77d Use wxBitmapBundle for AUI tab pages bitmaps
Take wxBitmapBundle instead of just wxBitmap in various public functions
and select the bitmap appropriate for the current DPI scaling when we
need to use it.

Note that this removes wxAuiScaleBitmap() which used custom scaling
logic that might be better than the generic approach used by
wxBitmapBundle, and so could result in a temporary regression in the
icons appearance in high DPI, but they will hopefully be replaced with
SVG versions soon, so that this shouldn't matter.
2021-11-14 00:50:24 +01:00
Vadim Zeitlin
8dcedf56d7 Add wxWindow parameter to wxAuiTabArt::SetSizingInfo()
We need a valid window pointer to use the correct DPI scaling factor for
anything sizing-related, but this function didn't have any, so add one
to it now.

Unfortunately we need to have a default value for the new parameter for
backwards-compatibility purposes, but document that this parameter is
not really optional and must always be specified.

Also add wxWindow parameter to wxAuiTabContainer::SetRect(), which needs
it in order to pass it to this function.

Currently this window is only used for converting logical pixels to
physical ones, but it will also be used for selecting the correct bitmap
size in the upcoming commits.
2021-11-13 23:20:21 +00:00
Vadim Zeitlin
3d278ee75f Avoid warnings about operations on different enums in C++20 mode
Arithmetic operations on the elements of different enums are deprecated
in C++20 and the latest compiler versions warn about them.

While individual warnings could be fixed in wxWidgets itself (although
it would be quite an effort to do it for all ~500 of them), it wouldn't
help with the same warnings in the applications using wx, so prefer to
do it by explicitly defining the operations on the enums that can be
combined with each other by using wxALLOW_COMBINING_ENUMS() macro,
except for a single warning in wxTar code where it's easier to just not
use an anum at all.
2021-04-25 18:59:20 +02:00
Paul Kulchenko
1c754fe71c Make wxAuiNotebook wxAuiTabCtrl-related methods public
Allow retrieving the active tab control or tab at the given position.

Closes #16262.
2019-12-07 15:13:06 +01:00
Paul Cornett
1229ceb440 Remove unnecessary copy ctor/operator= definitions 2019-02-17 23:09:49 -08:00
Vadim Zeitlin
8fbca5cb70 Remove all trailing spaces
No real changes, just clean up sources by removing trailing spaces from
all the non-generated files.

This should hopefully avoid future commits mixing significant changes
with insignificant whitespace ones.
2019-01-30 17:35:54 +01:00
Sebastian Walderich
e9cbbede00 Implement wxAuiNotebook::GetBestSize()
Compute the best size of the notebook, taking into account all the
different layout possibilities, and add a test checking that this works
as expected.

Closes https://github.com/wxWidgets/wxWidgets/pull/1085
2018-12-23 17:05:09 +01:00
Daniel Kulp
727a100a6a Handle wxEVT_SYS_COLOUR_CHANGED in wxAUI classes
Update the colours used when the system theme changes.

This is especially important to use the colour scheme compatible with
macOS 10.14+ dark mode.

Note that this commit is best viewed with "git diff --color-moved".

Closes https://github.com/wxWidgets/wxWidgets/pull/916
2018-12-03 19:48:32 +01:00
Tobias Taschner
1a8bcd4d88 Add support for mouse hover state to wxAuiTabArt
This allows wxAuiNotebook to support drawing its tabs differently depending on
whether the mouse is hovering above them or not.

See https://github.com/wxWidgets/wxWidgets/pull/105
2015-10-04 00:27:22 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Paul Cornett
8b4ae731d3 use wxOVERRIDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-30 00:02:23 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
005b12d8be Make wxBookCtrlBase::GetPage() virtual to fix it for wxAuiNotebook.
wxAuiNotebook doesn't store its page in the base class m_pages array, so
calling GetPage() on it via a wxBookCtrl pointer resulted in a crash.

Make GetPage() virtual to allow overriding it at wxAuiNotebook level.

Closes #13768.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-30 23:41:27 +00:00
Vadim Zeitlin
dbec0fc8d8 Remove redundant wxAuiNotebook methods already present in wxBookCtrlBase.
wxAuiNotebook already inherits perfectly workable AdvanceSelection() and
GetCurrentPage() methods from wxBookCtrlBase, no need to reimplement them in
it.

See #14309.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-25 09:48:26 +00:00
Vadim Zeitlin
11527fc9f0 Added support for page tooltips to wxAuiNotebook.
Allow setting tooltips for the tabs of the individual pages of wxAuiNotebook.

Closes #14216.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-16 12:12:26 +00:00
Vadim Zeitlin
c52f18dfc8 Override DoThaw() in wxAuiNotebook correctly.
Don't "override" Thaw() in wxAuiNotebook as it's not virtual any more.
Override DoThaw() instead.

Also use wxBookCtrlBase instead of wxControl as the base class.

Closes #14179.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-02 18:26:03 +00:00
Paul Cornett
25d7cf54f0 build fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-25 19:15:54 +00:00
Vadim Zeitlin
4758baf5eb Refactor wxAUI: extract wxAuiTabArt in a separate file.
No real changes, just extract wxAuiTabArt into its own file. Also rename
wxAuiDefaultTabArt to wxAuiSimpleTabArt in preparation for having other tab
art classes as the default one.

See #14098.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-25 17:55:59 +00:00
Vadim Zeitlin
3b7e7e2497 Resolve ambiguity between two wxAuiNotebook overloads.
wxAuiNotebook-specific InsertPage() and the version inherited from
wxBookCtrlBase were ambiguous if used with default values for their 2 last
arguments. Resolve this by removing defaults from the inherited version.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70304 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-09 18:48:34 +00:00
Vadim Zeitlin
9a29fe70bc Change variables naming convention in wxAUI code.
Use the standard wxWidgets camelCase convention instead of the
old_one_using_underscores for all the private variables.

Closes #13476.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-30 14:20:03 +00:00
Steve Lamerton
873ff54b1f Derive wxAuiNotebook from wxBookCtrlBase. Document wxAuiNotebookEvent which now derives from wxBookCtrlEvent. Update the notebook sample to add wxAuiNotebook as an option.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 10:29:00 +00:00
Vadim Zeitlin
9023040798 Replace wxControlContainer-related macros with wxNavigationEnabled<>.
Simply inherit classes which need to provide TAB navigation among their
children from wxNavigationEnabled<> and remove the now unnecessary
WX_DECLARE_CONTROL_CONTAINER() macros.

Also remove WX_INIT_CONTROL_CONTAINER(), WX_DELEGATE_TO_CONTROL_CONTAINER()
and WX_EVENT_TABLE_CONTROL_CONTAINER() which are not needed neither any more.

And remove the event tables which became empty after removing the last macro.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-24 22:19:33 +00:00
Vadim Zeitlin
2bd82d72f5 Cancel dragging in wxAuiNotebook on capture loss.
Don't leave the display and internal variables in inconsistent state when the
mouse capture is lost while a notebook page is being dragged (as can happen
if Alt-Tab is pressed under Windows, for example).

Closes #9976.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67737 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-14 14:17:52 +00:00
Vadim Zeitlin
ceb9b8db81 Allow customizing AUI tab colours in wxAuiTabArt.
Add wxAuiTabArt::SetColour() and SetActiveColour() methods and provide trivial
default implementation of them in wxAuiDefaultTabArt to allow customizing the
tab colours.

Closes #11411.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-10 15:36:03 +00:00
Vadim Zeitlin
4026f044ee Ensure that wxAuiNotebook::SetArtProvider() always does set it.
It used to only set the provider if the height of the tabs defined by the new
provider was different from the one used by the old one, otherwise the call
was optimized away. Fix this by explicitly setting the art provider for all
tabs in SetArtProvider() itself if UpdateTabCtrlHeight() didn't do it.

Closes #9738.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-23 23:33:46 +00:00
Julian Smart
64178c3602 Speed up adding pages during freezing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 14:07:43 +00:00
Vadim Zeitlin
9b11752c4f require semicolon after wxDECLARE/DEFINE_EVENT() (closes #10456)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-07 18:59:25 +00:00
Vadim Zeitlin
3c77890141 add more flexible and safer template Connect() overloads (#10000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00
Benjamin Williams
45ca0e7750 fix mouse capture lost assert when dialog shown in tab change event handler
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 13:58:08 +00:00
Vadim Zeitlin
c058cafa56 don't use DECLARE_EVENT_TYPE() to avoid confusing people about its unused value parameter, declare the event type constants directly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-27 13:21:39 +00:00
Julian Smart
dc797d8e1b More border rationalisation. GetDefaultBorder is now mostly defined in base class files.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-13 12:10:34 +00:00
Robin Dunn
4309ed1748 fix events and eventTypes for wxPython
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-03 03:02:25 +00:00
Julian Smart
134198f1b7 Applied patch [ 1747059 ] wxAUIDefaultTabArt wxAUI_NB_BOTTOM
Langhammer


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-21 10:51:47 +00:00
Julian Smart
5bf3f27fc9 Avoid clash with control container event handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48159 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-18 11:34:45 +00:00
Julian Smart
c7bfb76a2c A number of focus handling improvements:
Left clicking on a window only focuses the window if not processed.
wxControlContainer::SetFocus moved to wxControlContainerBase so that a container now focuses the first child even on wxGTK.
wxAuiBook is now a container, need for correct navigation on wxGTK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-18 10:54:31 +00:00
Julian Smart
a0c2e4a050 Added AdvanceSelection, ShowWindowMenu and keyboard handling
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-16 16:12:45 +00:00
Julian Smart
98d9f577ea Replaced tabs with spaces
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-02 07:49:23 +00:00
Benjamin Williams
d16619f8d0 in wxAuiNotebook, prevent unwanted page selection changes during tab drags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47057 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-01 15:39:22 +00:00
Benjamin Williams
69f5e42053 added middle-click close to wxAuiNotebook
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-27 17:38:29 +00:00
Julian Smart
fc17828ab2 Added font setting and ability to determine AUI notebook height for a given page height
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-21 15:07:51 +00:00
Vadim Zeitlin
849c353a39 added SetSelectionToPage/Window() to simplify code and fix more problems with passing possibly negative indices to SetSelection()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-30 16:48:43 +00:00
Vadim Zeitlin
a56a1234a5 removed wxABI_TESTS, they're irrelvant in 2.9
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-31 03:40:59 +00:00
Robin Dunn
0eaf8cd16c Add GetAuiManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44103 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-06 08:53:33 +00:00
Benjamin Williams
d606b6e977 added wxAuiNotebook::Split(); hooked up wxAuiMDIParentFrame::Tile() to it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-28 15:25:59 +00:00
Julian Smart
c3e016e45e Added wxAuiNotebook::GetPageText, GetPageBitmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-28 14:55:05 +00:00
Benjamin Williams
793d436530 wxAuiNotebook minor tab art interface cleanups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-26 17:05:43 +00:00
Robin Dunn
72d5e8d917 better comments
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-11 04:18:35 +00:00
Benjamin Williams
ca0d44071c tab ctrl height api fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43388 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-13 07:03:51 +00:00
Benjamin Williams
9fbb7d80f8 tab sizing and split sizing fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-12 20:32:40 +00:00
Benjamin Williams
003cf4efd2 minor tab theme touch-ups
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-09 22:14:31 +00:00