+//-----------------------------------------------------------------------------
+// InsertChild for wxFrame
+//-----------------------------------------------------------------------------
+
+/* Callback for wxFrame. This very strange beast has to be used because
+ * C++ has no virtual methods in a constructor. We have to emulate a
+ * virtual function here as wxWindows requires different ways to insert
+ * a child in container classes. */
+
+static void wxInsertChildInFrame( wxWindow* parent, wxWindow* child )
+{
+ if (wxIS_KIND_OF(child,wxToolBar) || wxIS_KIND_OF(child,wxMenuBar))
+ {
+ /* these are outside the client area */
+ wxFrame* frame = (wxFrame*) parent;
+ gtk_myfixed_put( GTK_MYFIXED(frame->m_mainWidget),
+ GTK_WIDGET(child->m_widget),
+ child->m_x,
+ child->m_y );
+ }
+ else
+ {
+ /* these are inside the client area */
+ gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow),
+ GTK_WIDGET(child->m_widget),
+ child->m_x,
+ child->m_y );
+ }
+
+ gtk_widget_set_usize( GTK_WIDGET(child->m_widget),
+ child->m_width,
+ child->m_height );
+
+ /* resize on OnInternalIdle */
+ parent->m_sizeSet = FALSE;
+
+ if (parent->m_windowStyle & wxTAB_TRAVERSAL)
+ {
+ /* we now allow a window to get the focus as long as it
+ doesn't have any children. */
+ GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS );
+ }
+}
+