wxToolBar support in wxUniv/wxFrame

(well, sort of --  with wxToolBarSimple only and it looks really weird. I don't know
 yet if it is my fault or wxTBSimple's...


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2001-11-24 23:59:44 +00:00
parent 857dab7dcd
commit 443aec6f41

View File

@@ -32,6 +32,7 @@
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/frame.h" #include "wx/frame.h"
#include "wx/statusbr.h" #include "wx/statusbr.h"
#include "wx/toolbar.h"
#endif // WX_PRECOMP #endif // WX_PRECOMP
// ============================================================================ // ============================================================================
@@ -72,6 +73,9 @@ void wxFrame::OnSize(wxSizeEvent& event)
#if wxUSE_STATUSBAR #if wxUSE_STATUSBAR
PositionStatusBar(); PositionStatusBar();
#endif // wxUSE_STATUSBAR #endif // wxUSE_STATUSBAR
#if wxUSE_TOOLBAR
PositionToolBar();
#endif // wxUSE_TOOLBAR
event.Skip(); event.Skip();
} }
@@ -93,7 +97,8 @@ void wxFrame::PositionMenuBar()
// y coord // y coord
wxCoord heightMbar = m_frameMenuBar->GetSize().y; wxCoord heightMbar = m_frameMenuBar->GetSize().y;
m_frameMenuBar->SetSize(0, m_frameMenuBar->SetSize(0,
#ifdef __WXPM__ #ifdef __WXPM__ // FIXME -- remove this, make wxOS2/Univ behave as
// the rest of the world!!!
GetClientSize().y - heightMbar, GetClientSize().y - heightMbar,
#else #else
-heightMbar, -heightMbar,
@@ -137,6 +142,43 @@ wxStatusBar* wxFrame::CreateStatusBar(int number, long style,
#endif // wxUSE_STATUSBAR #endif // wxUSE_STATUSBAR
#if wxUSE_TOOLBAR
wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
if ( wxFrameBase::CreateToolBar(style, id, name) )
{
PositionToolBar();
}
return m_frameToolBar;
}
void wxFrame::PositionToolBar()
{
if ( m_frameToolBar )
{
wxSize size = GetClientSize();
int tw, th, tx, ty;
tx = ty = 0;
m_frameToolBar->GetSize(&tw, &th);
if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL )
{
tx = -tw;
th = size.y;
}
else
{
ty = -th;
tw = size.x;
}
m_frameToolBar->SetSize(tx, ty, tw, th);
}
}
#endif // wxUSE_TOOLBAR
wxPoint wxFrame::GetClientAreaOrigin() const wxPoint wxFrame::GetClientAreaOrigin() const
{ {
wxPoint pt = wxFrameBase::GetClientAreaOrigin(); wxPoint pt = wxFrameBase::GetClientAreaOrigin();
@@ -148,6 +190,16 @@ wxPoint wxFrame::GetClientAreaOrigin() const
} }
#endif // wxUSE_MENUS #endif // wxUSE_MENUS
#if wxUSE_TOOLBAR
if ( m_frameToolBar )
{
if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL )
pt.x += m_frameToolBar->GetSize().x;
else
pt.y += m_frameToolBar->GetSize().y;
}
#endif // wxUSE_TOOLBAR
return pt; return pt;
} }
@@ -168,6 +220,16 @@ void wxFrame::DoGetClientSize(int *width, int *height) const
(*height) -= m_frameStatusBar->GetSize().y; (*height) -= m_frameStatusBar->GetSize().y;
} }
#endif // wxUSE_STATUSBAR #endif // wxUSE_STATUSBAR
#if wxUSE_TOOLBAR
if ( m_frameToolBar )
{
if ( width && (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL) )
(*width) -= m_frameToolBar->GetSize().x;
else if ( height )
(*height) -= m_frameToolBar->GetSize().y;
}
#endif // wxUSE_TOOLBAR
} }
void wxFrame::DoSetClientSize(int width, int height) void wxFrame::DoSetClientSize(int width, int height)
@@ -186,6 +248,18 @@ void wxFrame::DoSetClientSize(int width, int height)
} }
#endif // wxUSE_STATUSBAR #endif // wxUSE_STATUSBAR
#if wxUSE_TOOLBAR
if ( m_frameToolBar )
{
height += m_frameStatusBar->GetSize().y;
if ( m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL )
width += m_frameToolBar->GetSize().x;
else
height += m_frameToolBar->GetSize().y;
}
#endif // wxUSE_TOOLBAR
wxFrameBase::DoSetClientSize(width, height); wxFrameBase::DoSetClientSize(width, height);
} }