-// ----------------------------------------------------------------------------
-// GTK callbacks
-// ----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// "focus" from m_window
-//-----------------------------------------------------------------------------
-
-static gint gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WXUNUSED(d), wxWindow *WXUNUSED(win) )
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    // This disables GTK's tab traversal
-    gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus" );
-    return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// "size_allocate"
-//-----------------------------------------------------------------------------
-
-static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxFrame *win )
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (!win->m_hasVMT)
-        return;
-
-    if ((win->m_width != alloc->width) || (win->m_height != alloc->height))
-    {
-/*
-        wxPrintf( "OnSize from " );
-        if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
-           wxPrintf( win->GetClassInfo()->GetClassName() );
-        wxPrintf( " %d %d %d %d\n", (int)alloc->x,
-                                (int)alloc->y,
-                                (int)alloc->width,
-                                (int)alloc->height );
-*/
-
-        win->m_width = alloc->width;
-        win->m_height = alloc->height;
-        win->m_queuedFullRedraw = TRUE;
-        win->GtkUpdateSize();
-    }
-}
-
-//-----------------------------------------------------------------------------
-// "delete_event"
-//-----------------------------------------------------------------------------
-
-static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxFrame *win )
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if ((g_openDialogs == 0) && (win->IsEnabled()))
-        win->Close();
-
-    return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// "child_attached" of menu bar
-//-----------------------------------------------------------------------------
-
-static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
-    if (!win->m_hasVMT) return;
-
-    win->m_menuBarDetached = FALSE;
-    win->GtkUpdateSize();
-}
-
-//-----------------------------------------------------------------------------
-// "child_detached" of menu bar
-//-----------------------------------------------------------------------------
-
-static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
-    if (!win->m_hasVMT) return;
-
-    win->m_menuBarDetached = TRUE;
-    win->GtkUpdateSize();
-}
-
-#if wxUSE_TOOLBAR
-//-----------------------------------------------------------------------------
-// "child_attached" of tool bar
-//-----------------------------------------------------------------------------
-
-static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
-    if (!win->m_hasVMT) return;
-
-    win->m_toolBarDetached = FALSE;
-
-    win->GtkUpdateSize();
-}
-
-//-----------------------------------------------------------------------------
-// "child_detached" of tool bar
-//-----------------------------------------------------------------------------
-
-static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (!win->m_hasVMT) return;
-
-    win->m_toolBarDetached = TRUE;
-    win->GtkUpdateSize();
-}
-#endif // wxUSE_TOOLBAR
-
-//-----------------------------------------------------------------------------
-// "configure_event"
-//-----------------------------------------------------------------------------
-
-static gint
-#if (GTK_MINOR_VERSION > 0)
-gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxFrame *win )
-#else
-gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxFrame *win )
-#endif
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    if (!win->m_hasVMT)
-        return FALSE;
-    
-#if (GTK_MINOR_VERSION > 0)
-    int x = 0;
-    int y = 0;
-    gdk_window_get_root_origin( win->m_widget->window, &x, &y );
-    win->m_x = x;
-    win->m_y = y;
-#else
-    win->m_x = event->x;
-    win->m_y = event->y;
-#endif
-
-    wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() );
-    mevent.SetEventObject( win );
-    win->GetEventHandler()->ProcessEvent( mevent );
-
-    return FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// "realize" from m_widget
-//-----------------------------------------------------------------------------
-
-/* we cannot MWM hints and icons before the widget has been realized,
-   so we do this directly after realization */
-
-static gint
-gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win )
-{
-    if (g_isIdle)
-        wxapp_install_idle_handler();
-
-    /* I haven't been able to set the position of
-       the dialog before it is shown, so I set the
-       position in "realize" */
-    gtk_widget_set_uposition( widget, win->m_x, win->m_y );
-
-    if (win->m_miniEdge > 0)
-    {
-        /* This is a mini-frame. */
-        gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)0 );
-        gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)0 );
-    }
-    else
-    {
-        /* All this is for Motif Window Manager "hints" and is supposed to be
-           recognized by other WM as well. Not tested. */
-        long decor = (long) GDK_DECOR_BORDER;
-        long func = (long) GDK_FUNC_MOVE;
-
-        if ((win->GetWindowStyle() & wxCAPTION) != 0)
-            decor |= GDK_DECOR_TITLE;
-        if ((win->GetWindowStyle() & wxSYSTEM_MENU) != 0)
-        {
-            decor |= GDK_DECOR_MENU;
-            func |= GDK_FUNC_CLOSE;
-        }
-        if ((win->GetWindowStyle() & wxMINIMIZE_BOX) != 0)
-        {
-            func |= GDK_FUNC_MINIMIZE;
-            decor |= GDK_DECOR_MINIMIZE;
-        }
-        if ((win->GetWindowStyle() & wxMAXIMIZE_BOX) != 0)
-        {
-            func |= GDK_FUNC_MAXIMIZE;
-            decor |= GDK_DECOR_MAXIMIZE;
-        }
-        if ((win->GetWindowStyle() & wxRESIZE_BORDER) != 0)
-        {
-           func |= GDK_FUNC_RESIZE;
-           decor |= GDK_DECOR_RESIZEH;
-        }
-        
-        gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)decor);
-        gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)func);
-    }
-
-    /* GTK's shrinking/growing policy */
-    if ((win->GetWindowStyle() & wxRESIZE_BORDER) == 0)
-        gtk_window_set_policy(GTK_WINDOW(win->m_widget), 0, 0, 1);
-    else
-        gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1);
-
-    /* set size hints */
-    gint flag = 0; // GDK_HINT_POS;
-    if ((win->GetMinWidth() != -1) || (win->GetMinHeight() != -1)) flag |= GDK_HINT_MIN_SIZE;
-    if ((win->GetMaxWidth() != -1) || (win->GetMaxHeight() != -1)) flag |= GDK_HINT_MAX_SIZE;
-    if (flag)
-    {
-        gdk_window_set_hints( win->m_widget->window,
-                              win->m_x, win->m_y,
-                              win->GetMinWidth(), win->GetMinHeight(),
-                              win->GetMaxWidth(), win->GetMaxHeight(),
-                              flag );
-    }
-
-    /* reset the icon */
-    wxIcon iconOld = win->GetIcon();
-    if ( iconOld != wxNullIcon )
-    {
-        wxIcon icon( iconOld );
-        win->SetIcon( wxNullIcon );
-        win->SetIcon( icon );
-    }
-
-    /* we set the focus to the child that accepts the focus. this
-       doesn't really have to be done in "realize" but why not? */
-    wxWindowList::Node *node = win->GetChildren().GetFirst();
-    while (node)
-    {
-        wxWindow *child = node->GetData();
-        if (child->AcceptsFocus())
-        {
-            child->SetFocus();
-            break;
-        }
-
-        node = node->GetNext();
-    }
-
-    return FALSE;
-}
-
-// ----------------------------------------------------------------------------
-// wxFrame itself
-// ----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// 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( wxFrame* parent, wxWindow* child )
-{
-    wxASSERT( GTK_IS_WIDGET(child->m_widget) );
-
-    if (!parent->m_insertInClientArea)
-    {
-        /* these are outside the client area */
-        wxFrame* frame = (wxFrame*) parent;
-        gtk_pizza_put( GTK_PIZZA(frame->m_mainWidget),
-                         GTK_WIDGET(child->m_widget),
-                         child->m_x,
-                         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 */
-        if (wxIS_KIND_OF(child,wxToolBar))
-        {
-            wxToolBar *toolBar = (wxToolBar*) child;
-            if (toolBar->GetWindowStyle() & wxTB_DOCKABLE)
-            {
-                gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_attached",
-                    GTK_SIGNAL_FUNC(gtk_toolbar_attached_callback), (gpointer)parent );
-
-                gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_detached",
-                    GTK_SIGNAL_FUNC(gtk_toolbar_detached_callback), (gpointer)parent );
-            }
-        }
-#endif // wxUSE_TOOLBAR
-    }
-    else
-    {
-        /* these are inside the client area */
-        gtk_pizza_put( GTK_PIZZA(parent->m_wxwindow),
-                         GTK_WIDGET(child->m_widget),
-                         child->m_x,
-                         child->m_y,
-                         child->m_width,
-                         child->m_height );
-    }
-
-    /* resize on OnInternalIdle */
-    parent->GtkUpdateSize();
-}
-