X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e41a1b1cbb37808d2bbd532b0d2a4bd49924c81a..c315587c21ed44e54fbb3c1b36f0f70f78314081:/src/gtk/frame.cpp diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index dfec0ddbaa..bcb72003fe 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -20,6 +20,14 @@ #include +#if wxUSE_LIBHILDON + #include +#endif // wxUSE_LIBHILDON + +#if wxUSE_LIBHILDON2 + #include +#endif // wxUSE_LIBHILDON2 + // ---------------------------------------------------------------------------- // event tables // ---------------------------------------------------------------------------- @@ -52,7 +60,8 @@ bool wxFrame::Create( wxWindow *parent, wxFrame::~wxFrame() { - m_isBeingDeleted = true; + SendDestroyEvent(); + DeleteAllBars(); } @@ -74,7 +83,9 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const { GtkRequisition req; gtk_widget_size_request(m_frameMenuBar->m_widget, &req); +#if !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 *height -= req.height; +#endif } #endif // wxUSE_MENUS_NATIVE @@ -110,7 +121,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const *height = 0; } -#if wxUSE_MENUS +#if wxUSE_MENUS && wxUSE_ACCEL // Helper for wxCreateAcceleratorTableForMenuBar static void wxAddAccelerators(wxList& accelEntries, wxMenu* menu) { @@ -158,7 +169,7 @@ static wxAcceleratorTable wxCreateAcceleratorTableForMenuBar(wxMenuBar* menuBar) wxAcceleratorEntry* entry = (wxAcceleratorEntry*) accelEntries.Item(i)->GetData(); entries[i] = (*entry); delete entry; - + } wxAcceleratorTable table(n, entries); @@ -166,21 +177,21 @@ static wxAcceleratorTable wxCreateAcceleratorTableForMenuBar(wxMenuBar* menuBar) return table; } -#endif +#endif // wxUSE_MENUS && wxUSE_ACCEL bool wxFrame::ShowFullScreen(bool show, long style) { if (!wxFrameBase::ShowFullScreen(show, style)) return false; -#if wxUSE_MENUS +#if wxUSE_MENUS && wxUSE_ACCEL if (show && GetMenuBar()) { wxAcceleratorTable table(wxCreateAcceleratorTableForMenuBar(GetMenuBar())); if (table.IsOk()) SetAcceleratorTable(table); } -#endif +#endif // wxUSE_MENUS && wxUSE_ACCEL wxWindow* const bar[] = { #if wxUSE_MENUS @@ -267,11 +278,15 @@ void wxFrame::DetachMenuBar() if ( m_frameMenuBar ) { +#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 + hildon_window_set_menu(HILDON_WINDOW(m_widget), NULL); +#else // !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 m_frameMenuBar->UnsetInvokingWindow( this ); gtk_widget_ref( m_frameMenuBar->m_widget ); gtk_container_remove( GTK_CONTAINER(m_mainWidget), m_frameMenuBar->m_widget ); +#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2 /!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 } wxFrameBase::DetachMenuBar(); @@ -286,6 +301,10 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) if (m_frameMenuBar) { +#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 + hildon_window_set_menu(HILDON_WINDOW(m_widget), + GTK_MENU(m_frameMenuBar->m_menubar)); +#else // !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 m_frameMenuBar->SetInvokingWindow( this ); m_frameMenuBar->SetParent(this); @@ -309,6 +328,7 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) gtk_widget_set_size_request(menuBar->m_widget, -1, -1); gtk_widget_show( m_frameMenuBar->m_widget ); +#endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2/!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 } // make sure next size_allocate causes a wxSizeEvent m_oldClientWidth = 0;