merged 2.4 branch into the trunk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -45,7 +45,6 @@
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
const int wxMENU_HEIGHT = 27;
|
||||
const int wxSTATUS_HEIGHT = 25;
|
||||
const int wxPLACE_HOLDER = 0;
|
||||
|
||||
@@ -165,7 +164,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
|
||||
child->m_y,
|
||||
child->m_width,
|
||||
child->m_height );
|
||||
|
||||
|
||||
#if wxUSE_TOOLBAR_NATIVE
|
||||
// We connect to these events for recalculating the client area
|
||||
// space when the toolbar is floating
|
||||
@@ -193,7 +192,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
|
||||
child->m_width,
|
||||
child->m_height );
|
||||
}
|
||||
|
||||
|
||||
// Resize on OnInternalIdle
|
||||
parent->GtkUpdateSize();
|
||||
}
|
||||
@@ -206,6 +205,7 @@ void wxFrame::Init()
|
||||
{
|
||||
m_menuBarDetached = FALSE;
|
||||
m_toolBarDetached = FALSE;
|
||||
m_menuBarHeight = 2;
|
||||
}
|
||||
|
||||
bool wxFrame::Create( wxWindow *parent,
|
||||
@@ -219,6 +219,7 @@ bool wxFrame::Create( wxWindow *parent,
|
||||
bool rt = wxTopLevelWindow::Create(parent, id, title, pos, sizeOrig,
|
||||
style, name);
|
||||
m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame;
|
||||
|
||||
return rt;
|
||||
}
|
||||
|
||||
@@ -245,7 +246,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
|
||||
if (m_frameMenuBar)
|
||||
{
|
||||
if (!m_menuBarDetached)
|
||||
(*height) -= wxMENU_HEIGHT;
|
||||
(*height) -= m_menuBarHeight;
|
||||
else
|
||||
(*height) -= wxPLACE_HOLDER;
|
||||
}
|
||||
@@ -292,7 +293,7 @@ void wxFrame::DoSetClientSize( int width, int height )
|
||||
if (m_frameMenuBar)
|
||||
{
|
||||
if (!m_menuBarDetached)
|
||||
height += wxMENU_HEIGHT;
|
||||
height += m_menuBarHeight;
|
||||
else
|
||||
height += wxPLACE_HOLDER;
|
||||
}
|
||||
@@ -396,7 +397,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
int xx = m_miniEdge;
|
||||
int yy = m_miniEdge + m_miniTitle;
|
||||
int ww = m_width - 2*m_miniEdge;
|
||||
int hh = wxMENU_HEIGHT;
|
||||
int hh = m_menuBarHeight;
|
||||
if (m_menuBarDetached) hh = wxPLACE_HOLDER;
|
||||
m_frameMenuBar->m_x = xx;
|
||||
m_frameMenuBar->m_y = yy;
|
||||
@@ -419,7 +420,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
|
||||
if (m_frameMenuBar)
|
||||
{
|
||||
if (!m_menuBarDetached)
|
||||
yy += wxMENU_HEIGHT;
|
||||
yy += m_menuBarHeight;
|
||||
else
|
||||
yy += wxPLACE_HOLDER;
|
||||
}
|
||||
@@ -576,11 +577,34 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
|
||||
gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_detached",
|
||||
GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this );
|
||||
}
|
||||
|
||||
|
||||
m_frameMenuBar->Show( TRUE );
|
||||
}
|
||||
|
||||
// resize window in OnInternalIdle
|
||||
UpdateMenuBarSize();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_menuBarHeight = 2;
|
||||
GtkUpdateSize(); // resize window in OnInternalIdle
|
||||
}
|
||||
}
|
||||
|
||||
void wxFrame::UpdateMenuBarSize()
|
||||
{
|
||||
wxASSERT_MSG( m_frameMenuBar, _T("Updating non existant menubar?") );
|
||||
|
||||
GtkRequisition req;
|
||||
|
||||
req.width = 2;
|
||||
req.height = 2;
|
||||
|
||||
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
|
||||
(m_frameMenuBar->m_widget, &req );
|
||||
|
||||
m_menuBarHeight = req.height;
|
||||
|
||||
// resize window in OnInternalIdle
|
||||
|
||||
GtkUpdateSize();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user