-//-----------------------------------------------------------------------------
-// "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();
-
- if ((win->m_miniEdge > 0) || (win->HasFlag(wxSIMPLE_BORDER)))
- {
- /* This is a mini-frame or a borderless 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);
-
- /* 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;
-}