diff --git a/include/wx/aui/tabart.h b/include/wx/aui/tabart.h index 12621771a6..4a449678ac 100644 --- a/include/wx/aui/tabart.h +++ b/include/wx/aui/tabart.h @@ -103,6 +103,9 @@ public: virtual int GetBorderWidth( wxWindow* wnd) = 0; + virtual int GetAdditionalBorderSpace( + wxWindow* wnd) = 0; + virtual int GetBestTabCtrlSize( wxWindow* wnd, const wxAuiNotebookPageArray& pages, @@ -162,6 +165,9 @@ public: int GetBorderWidth( wxWindow* wnd); + int GetAdditionalBorderSpace( + wxWindow* wnd); + wxSize GetTabSize( wxDC& dc, wxWindow* wnd, @@ -258,6 +264,9 @@ public: int GetBorderWidth( wxWindow* wnd); + int GetAdditionalBorderSpace( + wxWindow* wnd); + wxSize GetTabSize( wxDC& dc, wxWindow* wnd, diff --git a/include/wx/aui/tabartgtk.h b/include/wx/aui/tabartgtk.h index b094082d81..37b8587f1c 100644 --- a/include/wx/aui/tabartgtk.h +++ b/include/wx/aui/tabartgtk.h @@ -48,6 +48,7 @@ public: int GetBestTabCtrlSize(wxWindow* wnd, const wxAuiNotebookPageArray& pages, const wxSize& required_bmp_size); int GetBorderWidth(wxWindow* wnd); + int GetAdditionalBorderSpace(wxWindow* wnd); virtual wxSize GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption, const wxBitmap& bitmap, bool active, int close_button_state, int* x_extent); diff --git a/src/aui/auibook.cpp b/src/aui/auibook.cpp index 402724309b..30691c1c03 100644 --- a/src/aui/auibook.cpp +++ b/src/aui/auibook.cpp @@ -1544,9 +1544,9 @@ public: for (i = 0; i < page_count; ++i) { wxAuiNotebookPage& page = pages.Item(i); - int border_width = m_tabs->GetArtProvider()->GetBorderWidth(page.window); + int border_space = m_tabs->GetArtProvider()->GetAdditionalBorderSpace(page.window); - int height = m_rect.height - m_tabCtrlHeight - border_width; + int height = m_rect.height - m_tabCtrlHeight - border_space; if ( height < 0 ) { // avoid passing negative height to wxWindow::SetSize(), this @@ -1556,16 +1556,16 @@ public: if (m_tabs->GetFlags() & wxAUI_NB_BOTTOM) { - page.window->SetSize(m_rect.x + 2 * border_width, - m_rect.y + 2 * border_width, - m_rect.width - 4 * border_width, + page.window->SetSize(m_rect.x + border_space, + m_rect.y + border_space, + m_rect.width - 2 * border_space, height); } else //TODO: if (GetFlags() & wxAUI_NB_TOP) { - page.window->SetSize(m_rect.x + 2 * border_width, + page.window->SetSize(m_rect.x + border_space, m_rect.y + m_tabCtrlHeight, - m_rect.width - 4 * border_width, + m_rect.width - 2 * border_space, height); } // TODO: else if (GetFlags() & wxAUI_NB_LEFT){} diff --git a/src/aui/tabart.cpp b/src/aui/tabart.cpp index 62c6c5f9dd..9a30baf76c 100644 --- a/src/aui/tabart.cpp +++ b/src/aui/tabart.cpp @@ -610,6 +610,11 @@ int wxAuiGenericTabArt::GetBorderWidth(wxWindow* wnd) return 1; } +int wxAuiGenericTabArt::GetAdditionalBorderSpace(wxWindow* WXUNUSED(wnd)) +{ + return 0; +} + wxSize wxAuiGenericTabArt::GetTabSize(wxDC& dc, wxWindow* WXUNUSED(wnd), const wxString& caption, @@ -1137,6 +1142,11 @@ int wxAuiSimpleTabArt::GetBorderWidth(wxWindow* wnd) return 1; } +int wxAuiSimpleTabArt::GetAdditionalBorderSpace(wxWindow* WXUNUSED(wnd)) +{ + return 0; +} + wxSize wxAuiSimpleTabArt::GetTabSize(wxDC& dc, wxWindow* WXUNUSED(wnd), const wxString& caption, diff --git a/src/aui/tabartgtk.cpp b/src/aui/tabartgtk.cpp index 28bfaa6aaf..e57ca3dd3f 100644 --- a/src/aui/tabartgtk.cpp +++ b/src/aui/tabartgtk.cpp @@ -487,6 +487,11 @@ int wxAuiGtkTabArt::GetBorderWidth(wxWindow* wnd) GTK_NOTEBOOK (wxGTKPrivate::GetNotebookWidget())->tab_vborder); } +int wxAuiGtkTabArt::GetAdditionalBorderSpace(wxWindow* wnd) +{ + return 2 * GetBorderWidth(wnd); +} + wxSize wxAuiGtkTabArt::GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption,