Commit Graph

203 Commits

Author SHA1 Message Date
Maarten Bent
f74d756ca5 Use DPI Aware wxGetSystemMetrics
If no wxWindow is known, use wxTheApp->GetTopWindow().
Also use a wxWindow for all wxSystemSettings::GetMetric calls.
2019-07-15 00:00:18 +02:00
Paul Cornett
7c3ce912e0 Use ctor-initializer rather than assignment for non-POD class members 2019-02-25 10:23:35 -08:00
Paul Cornett
b5028f267d Remove unused variables, unused assignments 2019-02-25 09:12:43 -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
Graham Dawes
95b3486dc0 Fix crash in wxAuiNotebook::DoGetBestSize 2019-01-07 10:38:16 +00: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
Vadim Zeitlin
d3eb5b38aa Don't crash when drawing 0-sized wxAuiTabContainer in debug build
Attempting to create a bitmap with 0 width or height results in an
assertion failure, which is fatal, as it happens in wxEVT_PAINT handler
and so quickly results in reentering it and asserting again and
recursive assert failures terminate the application.

Just avoid doing it, there is nothing to paint anyhow if the associated
rectangle is empty.

See https://github.com/wxWidgets/wxWidgets/pull/1085
2018-12-23 17:05:09 +01:00
Sebastian Walderich
ab1fd56977 Implement wxAuiNotebook::HitTest()
Check if point is on window or a certain tab.

Closes https://github.com/wxWidgets/wxWidgets/pull/1059
2018-12-09 15:52:30 +01:00
Vadim Zeitlin
b5944a0730 Fix wxAUI build with wxUSE_MDI==0
Include wx/frame.h explicitly as it's not included by wx/aui/tabmdi.h in
this case.

Closes #18291.
2018-12-08 00:47:03 +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
Daniel Kulp
26f0e816ca Send wxEVT_AUINOTEBOOK_PAGE_CHANGED after changing the page
For consistency with the other similar events and because it is more
useful for the code handling it, send this event when the new page is
already shown instead of doing it before showing it.

Closes https://github.com/wxWidgets/wxWidgets/pull/1007
2018-11-03 22:56:15 +01:00
Simon Rozman
770e0bcd16 Improve high DPI support in wxAui
Window initial/minimum/maximum sizes are now treated as logical pixels.

Furthermore, many margins and paddings are now converted using
wxWindow::FromDIP() to allow their growth in accord with screen DPI.
This places buttons on toolbars more apart on high DPI screens providing
space for easier touch operations.

Closes https://github.com/wxWidgets/wxWidgets/pull/933
2018-09-17 22:54:29 +02:00
Vadim Zeitlin
dca84c823c Optimize away an unnecessary extra wxAuiNotebook::DoSizing() call
There is no need to call DoSizing() again if it has just been called
from UpdateTabCtrlHeight().
2018-05-13 02:49:07 +02:00
Vadim Zeitlin
24e06054fc Remove wxAuiMDIChildFrame::DoShow()
This method is confusing as it's not used for implementing Show(), which
is the usual naming convention when both Foo() and DoFoo() members
exist, and gives no clear indication about what does it really do.

Just call wxWindow::Show() directly instead.

Also create the wxAuiMDIChildFrame window hidden from the beginning,
instead of creating it in a visible state and then hiding it.
2018-05-13 02:45:40 +02:00
Vadim Zeitlin
ceee16c01a Remove sizing hacks from wxAuiMDIChildFrame
There doesn't seem to be any reason for overriding DoSetSize() and
DoMoveWindow(), so just stop doing it.

Notice that this was already changed for wxGTK many years ago in
a94476deb9 and there is no reason to use
different code wxGTK and other ports.
2018-05-13 02:44:18 +02:00
Jens Göpfert
7e530e23e1 Update selection in wxAuiNotebook correctly after tab move
Update the selected state of the tab with the index corresponding to the old
index of the tab which was moved.

Closes #16605.
2017-04-18 03:36:16 +02:00
Vadim Zeitlin
b1fcf100ff Fix user-visible with AUI tab selection after dragging
Selection at wxAuiNotebook level was not updated, resulting in all attempts to
select the tab at the same index as the tab that was dragged elsewhere being
ignored, e.g. after dragging the first tab to the second position in the AUI
sample, the first tab couldn't be selected again.

Fix this by always changing the selection in OnTabEndDrag(). This might not be
the best thing to do as the selection is also changed later in the code and
the fact that the code returns without sending the event is probably a bug
too, but for now at least fix the user-visible problem.

Closes #15071.
2016-04-23 18:51:49 +02:00
Paul Kulchenko
223c5cda2b Show as many tabs in wxAuiNotebook as possible
Currently, when a tab is closed in wxAuiNotebook, the tabs are not moved right
to use free space (on the right side of he rightmost tab), which requires
clicking "left" button to make tabs visible.

This commit changes the behaviour to keep as many tabs shown as possible.

Closes #17233.
2015-11-08 19:09:27 +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
Tim Kosse
954557e23c Call wxWindow::Navigate when handling the tab key in wxAuiTabCtrl. This fixes tabbing on wxGTK where it was not possible to tab out of the wxAuiNotebook anymore.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-06 14:57:02 +00:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +00:00
Paul Cornett
f2e9e3b4b7 avoid setting negative window size, see #15976
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-13 16:47:17 +00:00
Vadim Zeitlin
a49d3f4161 Fix tons of warnings in wxMSW after deprecating wxPen/wxBrush int styles &c.
Replacement of FUTURE_WXWIN_COMPATIBILITY_3_0 with WXWIN_COMPATIBILITY_3_0 in
r75532 resulted in tons of warnings as all code using wxSOLID and similar
constants now uses the deprecated methods taking int instead of the preferred
ones taking wx{Pen,Brush}Style (and similarly for wxFont{Style,Weight,Family}).

Fix all of them but this also would seem to mean that this change might not be
such a good idea at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-04 22:20:36 +00:00
Vadim Zeitlin
ee3dd6dd5f Fix bug with not selecting wxAuiNotebook page when its child was focused.
The code in OnChildFocusNotebook() handler only worked correctly if the page
itself was focused but not if the focus was given to one of its children --
which should still make the page itself current.

Closes #15471.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74769 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-06 12:27:04 +00:00
Stefan Csomor
ead8d60c3d using dc Create for bitmap, for retina support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-25 14:57:14 +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
1ebfe6c58a Create new tab at the correct location in wxAuiNotebook.
Create the new tab in wxAuiTabCtrl that was double clicked and not near the
last selected tab which could have been in another wxAuiTabCtrl.

Closes #14995.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-10 16:13:42 +00:00
Vadim Zeitlin
5160f2929d No changes, just avoid unused variable in wxUSE_TOOLTIPS==0 build.
Move the declaration of a variable only used for tooltip setting inside "#if
wxUSE_TOOLTIPS" test.

Closes #14927.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-28 16:02:07 +00:00
Vadim Zeitlin
ab67e8874d Fix wrong tab order in wxAuiNotebook after dragging.
Update the tab index correctly to keep tabs list and windows list in sync.

Closes #10848.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73263 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-23 11:33:50 +00:00
Vadim Zeitlin
1e30d94eff Fix border size computation in wxAuiTabArt.
Space was reserved for the borders even when it wasn't filled, resulting in
visual artefacts. Fix this by virtualizing the function returning the
additional space needed for the borders and only overriding it to return non
zero in wxAuiGtkTabArt.

Closes #14710.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72720 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-22 21:46:46 +00:00
Vadim Zeitlin
9fa99f045e Improve wxAuiNotebook appearance when using some GTK themes.
Let wxAuiNotebook render the border itself, instead of doing it in dock art
class. This allows the notebook to do it correctly for the current theme.

Closes #14710.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72641 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-08 12:09:13 +00:00
Paul Cornett
7d1214cd72 silence warnings about shadowed variables with GCC -Wshadow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-04 15:55:06 +00:00
Vadim Zeitlin
b576c83a30 No changes, just remove unneeded variable initialziation in wxAUI.
Initialize the variables to the correct values when defining them instead of
initializing them as 0 first and then assigning them the real value.

Closes #14652.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:15:48 +00:00
Vadim Zeitlin
345c78ca5f Use wxDynamicCast() instead of IsKindOf() checks.
wxDynamicCast() is less verbose (due to the absence of "CLASSINFO") and more
compatible with the standard dynamic_cast<>, so prefer to use it when possible.

See #14356.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-01 11:01:18 +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
Jouk Jansen
d4df01f140 Allow for compilation with wxUSE_TOOLTIPS=0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71521 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-21 08:39:03 +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
Vadim Zeitlin
20ebd9ffbf Allow closing wxAuiTabCtrl pages without switching to them.
Clicking on the page "x" close button switched to the page before doing
anything else which was unusual as other tabbed controls don't behave like
this.

Handle clicks on the close button specially and avoid switching to the page
which is about to be closed anyhow.

Closes #14150.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-29 12:08:05 +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
b98eb28a50 Return NULL from wxAuiNotebook::GetCurrentPage() if there is no selection.
Make it behave as wxBookCtrlBase::GetCurrentPage() and just silently return
NULL instead of asserting if there is no selection.

Closes #13932.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-06 13:28:42 +00:00
Stefan Csomor
8c7fb50829 revert to using Update()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70487 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-31 17:37:31 +00:00
Stefan Csomor
10effff832 attempt to isolate which Update() calls are necessary at all, as they cause performance issues under OSX
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-30 16:30:59 +00:00
Paul Cornett
0b3b8742c5 restore call to GetTabSize removed in r69880, it is needed to set x_extent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-25 00:57:27 +00:00
Paul Cornett
36307fdf51 remove unused variables
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-01 08:16:42 +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
Vadim Zeitlin
2e92ad1b30 Replace remaining occurrences of _T() with wxT().
Use wxT() everywhere for consistency and to fix compilation with Sun CC for
which _T() is not defined as it clashes with a symbol with the same name in
standard headers.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-27 21:10:33 +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