wxPoint pt = GetClientAreaOrigin();
width += pt.x;
height += pt.y;
+#if wxUSE_TOOLBAR
+ if ( width )
+ {
+ wxToolBar *toolbar = GetToolBar();
+ if ( toolbar && toolbar->HasFlag(wxTB_RIGHT) )
+ {
+ width -= toolbar->GetClientSize().x;
+ }
+ if ( toolbar && toolbar->HasFlag( wxTB_BOTTOM ) )
+ {
+ height -= toolbar->GetClientSize().y;
+ }
+ }
+#endif
wxTopLevelWindow::DoSetClientSize(width, height);
}
*y -= toolbar->GetClientSize().y;
}
}
+ if ( x )
+ {
+ wxToolBar *toolbar = GetToolBar();
+ if ( toolbar && toolbar->HasFlag(wxTB_RIGHT) )
+ {
+ *x -= toolbar->GetClientSize().x;
+ }
+ }
#endif
#if wxUSE_STATUSBAR
// adjust client area height to take the status bar into account
wxToolBar *toolbar = GetToolBar();
if( toolbar && toolbar->HasFlag( wxTB_BOTTOM ) )
h += toolbar->GetClientRect().height;
+ if( toolbar && toolbar->HasFlag( wxTB_RIGHT ) )
+ w += toolbar->GetClientRect().width;
#endif
int sw, sh;
m_frameStatusBar->GetSize(&sw, &sh);
x = 0;
y = height - th;
}
+ else if( toolbar->HasFlag(wxTB_RIGHT) )
+ {
+ x = width - tw;
+ y = 0;
+ }
#if defined(WINCE_WITH_COMMANDBAR)
// We're using a commandbar - so we have to allow for it.
if (GetMenuBar() && GetMenuBar()->GetCommandBar())
if( tx < 0 && ( -tx == tw ) )
tx = 0;
}
+ else if( toolbar->HasFlag(wxTB_RIGHT) )
+ {
+ if( ty < 0 && ( -ty == th ) )
+ ty = 0;
+ if( tx < 0 && ( -tx == tw ) )
+ tx = width - tw;
+ }
int desiredW = tw;
int desiredH = th;
- if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL )
+ if ( toolbar->IsVertical() )
{
desiredH = height;
}
bool heightChanging wxDUMMY_INITIALIZE(true);
bool widthChanging wxDUMMY_INITIALIZE(true);
- if ( toolbar->GetWindowStyleFlag() & wxTB_VERTICAL )
+ if ( toolbar->IsVertical() )
{
// It's OK if the current height is greater than what can be shown.
heightChanging = (desiredH > th) ;
{
pt.x += w;
}
- else if( !( toolbar->GetWindowStyleFlag() & wxTB_BOTTOM ) )
+ else if( ( toolbar->GetWindowStyleFlag() & wxTB_TOP ) )
{
pt.y += h;
}