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:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user