+//-----------------------------------------------------------------------------
+// "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();
+
+ /* 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_ALL;
+ long func = (long) GDK_FUNC_ALL;
+
+ if ((win->m_windowStyle & wxCAPTION) == 0)
+ decor |= GDK_DECOR_TITLE;
+ if ((win->m_windowStyle & wxSYSTEM_MENU) == 0)
+ decor |= GDK_DECOR_MENU;
+ if ((win->m_windowStyle & wxMINIMIZE_BOX) == 0)
+ {
+ func |= GDK_FUNC_MINIMIZE;
+ decor |= GDK_DECOR_MINIMIZE;
+ }
+ if ((win->m_windowStyle & wxMAXIMIZE_BOX) == 0)
+ {
+ func |= GDK_FUNC_MAXIMIZE;
+ decor |= GDK_DECOR_MAXIMIZE;
+ }
+ if ((win->m_windowStyle & wxRESIZE_BORDER) == 0)
+ func |= GDK_FUNC_RESIZE;
+
+ 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->m_windowStyle & 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 */
+ if (win->m_icon != wxNullIcon)
+ {
+ wxIcon icon( win->m_icon );
+ win->m_icon = 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? */
+ wxNode *node = win->m_children.First();
+ while (node)
+ {
+ wxWindow *child = (wxWindow*) node->Data();
+ if (child->AcceptsFocus())
+ {
+ child->SetFocus();
+ break;
+ }
+
+ node = node->Next();
+ }
+
+ return FALSE;
+}
+