// event tables
// ----------------------------------------------------------------------------
-#ifdef __WXUNIVERSAL__
- IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow)
-#else
- IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxFrameGTK)
- IMPLEMENT_DYNAMIC_CLASS(wxFrameGTK, wxWindow)
+#ifndef __WXUNIVERSAL__
+ IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow)
#endif
// ----------------------------------------------------------------------------
return TRUE;
}
-#if wxUSE_MENUS
+#if wxUSE_MENUS_NATIVE
+
//-----------------------------------------------------------------------------
// "child_attached" of menu bar
//-----------------------------------------------------------------------------
win->m_menuBarDetached = TRUE;
win->GtkUpdateSize();
}
-#endif // wxUSE_MENUS
+
+#endif // wxUSE_MENUS_NATIVE
#if wxUSE_TOOLBAR
//-----------------------------------------------------------------------------
// menu/tool/status bar stuff
// ----------------------------------------------------------------------------
-#if wxUSE_MENUS
+#if wxUSE_MENUS_NATIVE
-void wxFrameGTK::SetMenuBar( wxMenuBar *menuBar )
+void wxFrameGTK::DetachMenuBar()
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
- if (menuBar == m_frameMenuBar)
- return;
-
- if (m_frameMenuBar)
+ if ( m_frameMenuBar )
{
m_frameMenuBar->UnsetInvokingWindow( this );
gtk_widget_unparent( m_frameMenuBar->m_widget );
}
- m_frameMenuBar = menuBar;
+ wxFrameBase::DetachMenuBar();
+}
+
+void wxFrameGTK::AttachMenuBar( wxMenuBar *menuBar )
+{
+ wxFrameBase::AttachMenuBar(menuBar);
if (m_frameMenuBar)
{
m_sizeSet = FALSE;
}
-#endif // wxUSE_MENUS
+#endif // wxUSE_MENUS_NATIVE
#if wxUSE_TOOLBAR
{
if (iconize)
{
- XIconifyWindow( GDK_WINDOW_XDISPLAY( m_widget->window ),
- GDK_WINDOW_XWINDOW( m_widget->window ),
- DefaultScreen( GDK_DISPLAY() ) );
+ GdkWindow *window = m_widget->window;
+
+ // you should do it later, for example from OnCreate() handler
+ wxCHECK_RET( window, _T("frame not created yet - can't iconize") );
+
+ XIconifyWindow( GDK_WINDOW_XDISPLAY( window ),
+ GDK_WINDOW_XWINDOW( window ),
+ DefaultScreen( GDK_DISPLAY() ) );
}
}