#include <gtk/gtk.h>
+#if wxUSE_LIBHILDON
+ #include <hildon-widgets/hildon-window.h>
+#endif // wxUSE_LIBHILDON
+
+#if wxUSE_LIBHILDON2
+ #include <hildon/hildon.h>
+#endif // wxUSE_LIBHILDON2
+
// ----------------------------------------------------------------------------
// event tables
// ----------------------------------------------------------------------------
-IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
-
// ============================================================================
// implementation
// ============================================================================
wxFrame::~wxFrame()
{
- m_isBeingDeleted = true;
+ SendDestroyEvent();
+
DeleteAllBars();
}
{
GtkRequisition req;
gtk_widget_size_request(m_frameMenuBar->m_widget, &req);
+#if !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
*height -= req.height;
+#endif
}
#endif // wxUSE_MENUS_NATIVE
wxAcceleratorEntry* entry = (wxAcceleratorEntry*) accelEntries.Item(i)->GetData();
entries[i] = (*entry);
delete entry;
-
+
}
wxAcceleratorTable table(n, entries);
return true;
}
-void wxFrame::OnInternalIdle()
+bool wxFrame::SendIdleEvents(wxIdleEvent& event)
{
- wxFrameBase::OnInternalIdle();
+ bool needMore = wxFrameBase::SendIdleEvents(event);
-#if wxUSE_MENUS_NATIVE
- if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle();
-#endif // wxUSE_MENUS_NATIVE
+#if wxUSE_MENUS
+ if (m_frameMenuBar && m_frameMenuBar->SendIdleEvents(event))
+ needMore = true;
+#endif
#if wxUSE_TOOLBAR
- if (m_frameToolBar) m_frameToolBar->OnInternalIdle();
+ if (m_frameToolBar && m_frameToolBar->SendIdleEvents(event))
+ needMore = true;
#endif
#if wxUSE_STATUSBAR
- if (m_frameStatusBar)
- {
- m_frameStatusBar->OnInternalIdle();
-
- // There may be controls in the status bar that
- // need to be updated
- for ( wxWindowList::compatibility_iterator node = m_frameStatusBar->GetChildren().GetFirst();
- node;
- node = node->GetNext() )
- {
- wxWindow *child = node->GetData();
- child->OnInternalIdle();
- }
- }
+ if (m_frameStatusBar && m_frameStatusBar->SendIdleEvents(event))
+ needMore = true;
#endif
+
+ return needMore;
}
// ----------------------------------------------------------------------------
if ( m_frameMenuBar )
{
- m_frameMenuBar->UnsetInvokingWindow( this );
-
- gtk_widget_ref( m_frameMenuBar->m_widget );
+#if wxUSE_LIBHILDON || wxUSE_LIBHILDON2
+ hildon_window_set_menu(HILDON_WINDOW(m_widget), NULL);
+#else // !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2
+ g_object_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();
if (m_frameMenuBar)
{
- m_frameMenuBar->SetInvokingWindow( this );
-
+#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->SetParent(this);
// menubar goes into top of vbox (m_mainWidget)
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;
{
// Vertical toolbar and m_wxwindow go into an hbox, inside the
// vbox (m_mainWidget). hbox is created on demand.
- GtkWidget* hbox = m_wxwindow->parent;
+ GtkWidget* hbox = gtk_widget_get_parent(m_wxwindow);
if (!GTK_IS_HBOX(hbox))
{
hbox = gtk_hbox_new(false, 0);