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
This commit is contained in:
Vadim Zeitlin
2012-10-08 12:09:13 +00:00
parent 1bcef6701b
commit 9fa99f045e
6 changed files with 128 additions and 9 deletions

View File

@@ -1543,7 +1543,10 @@ public:
for (i = 0; i < page_count; ++i)
{
int height = m_rect.height - m_tabCtrlHeight;
wxAuiNotebookPage& page = pages.Item(i);
int border_width = m_tabs->GetArtProvider()->GetBorderWidth(page.window);
int height = m_rect.height - m_tabCtrlHeight - border_width;
if ( height < 0 )
{
// avoid passing negative height to wxWindow::SetSize(), this
@@ -1551,15 +1554,19 @@ public:
height = 0;
}
wxAuiNotebookPage& page = pages.Item(i);
if (m_tabs->GetFlags() & wxAUI_NB_BOTTOM)
{
page.window->SetSize(m_rect.x, m_rect.y, m_rect.width, height);
page.window->SetSize(m_rect.x + 2 * border_width,
m_rect.y + 2 * border_width,
m_rect.width - 4 * border_width,
height);
}
else //TODO: if (GetFlags() & wxAUI_NB_TOP)
{
page.window->SetSize(m_rect.x, m_rect.y + m_tabCtrlHeight,
m_rect.width, height);
page.window->SetSize(m_rect.x + 2 * border_width,
m_rect.y + m_tabCtrlHeight,
m_rect.width - 4 * border_width,
height);
}
// TODO: else if (GetFlags() & wxAUI_NB_LEFT){}
// TODO: else if (GetFlags() & wxAUI_NB_RIGHT){}