-//-----------------------------------------------------------------------------
-// "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 )
-{
- /* 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 & wxMINIMIZE) == 0)
- func |= GDK_FUNC_MINIMIZE;
- if ((win->m_windowStyle & wxMAXIMIZE) == 0)
- func |= GDK_FUNC_MAXIMIZE; */
- if ((win->m_windowStyle & wxSYSTEM_MENU) == 0)
- decor |= GDK_DECOR_MENU;
- if ((win->m_windowStyle & wxMINIMIZE_BOX) == 0)
- decor |= GDK_DECOR_MINIMIZE;
- if ((win->m_windowStyle & wxMAXIMIZE_BOX) == 0)
- 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 );
- }
-
- if (!win->m_sizeSet)
- {
- /* by calling GtkOnSize here, we don't have to call
- either after showing the frame, which would entail
- much ugly flicker or from within the size_allocate
- handler, because GTK 1.1.X forbids that. */
-
- win->GtkOnSize( win->m_x, win->m_y, win->m_width, win->m_height );
- }
-
- return FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// 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))
- {
- /* actually, menubars are never inserted here, but this
- may change one day */
-
- /* 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 );
-
- /* 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->m_windowStyle & 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 );
- }
- }
- }
- 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;
-}
-
-//-----------------------------------------------------------------------------
-// wxFrame
-//-----------------------------------------------------------------------------
-
-BEGIN_EVENT_TABLE(wxFrame, wxWindow)
- EVT_SIZE(wxFrame::OnSize)
- EVT_CLOSE(wxFrame::OnCloseWindow)
- EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow)
-
-wxFrame::wxFrame()
-{
- m_frameMenuBar = (wxMenuBar *) NULL;
- m_frameStatusBar = (wxStatusBar *) NULL;
- m_frameToolBar = (wxToolBar *) NULL;
- m_sizeSet = FALSE;
- m_miniEdge = 0;
- m_miniTitle = 0;
- m_mainWidget = (GtkWidget*) NULL;
- m_menuBarDetached = FALSE;
- m_toolBarDetached = FALSE;
- m_insertCallback = wxInsertChildInFrame;
-}