-#include "wx/dialog.h"
-#include "wx/control.h"
-#include "wx/app.h"
-#include "wx/menu.h"
-#include "wx/toolbar.h"
-#include "wx/statusbr.h"
-#include "wx/dcclient.h"
-
-#include "glib.h"
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
-#include "wx/gtk/win_gtk.h"
-
-//-----------------------------------------------------------------------------
-// constants
-//-----------------------------------------------------------------------------
-
-const int wxMENU_HEIGHT = 27;
-const int wxSTATUS_HEIGHT = 25;
-const int wxPLACE_HOLDER = 0;
-
-//-----------------------------------------------------------------------------
-// idle system
-//-----------------------------------------------------------------------------
-
-extern void wxapp_install_idle_handler();
-extern bool g_isIdle;
-
-//-----------------------------------------------------------------------------
-// data
-//-----------------------------------------------------------------------------
-
-extern wxList wxPendingDelete;
-
-//-----------------------------------------------------------------------------
-// debug
-//-----------------------------------------------------------------------------
-
-#ifdef __WXDEBUG__
-
-extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window );
-
-#endif
-
-//-----------------------------------------------------------------------------
-// "size_allocate"
-//-----------------------------------------------------------------------------
-
-static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return;
-
-/*
- printf( "OnFrameResize from " );
- if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
- printf( win->GetClassInfo()->GetClassName() );
- printf( ".\n" );
-*/
-
- if ((win->m_width != alloc->width) || (win->m_height != alloc->height))
- {
- win->m_sizeSet = FALSE;
- win->m_width = alloc->width;
- win->m_height = alloc->height;
- }
-}
-
-//-----------------------------------------------------------------------------
-// "delete_event"
-//-----------------------------------------------------------------------------
-
-static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
-/*
- printf( "OnDelete from " );
- if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
- printf( win->GetClassInfo()->GetClassName() );
- printf( ".\n" );
-*/
-
- win->Close();
-
- return TRUE;
-}
-
-//-----------------------------------------------------------------------------
-// "child_attached" of menu bar
-//-----------------------------------------------------------------------------
-
-static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return;
-
- win->m_menuBarDetached = FALSE;
- win->m_sizeSet = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// "child_detached" of menu bar
-//-----------------------------------------------------------------------------
-
-static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return;
-
- win->m_menuBarDetached = TRUE;
- win->m_sizeSet = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// "child_attached" of tool bar
-//-----------------------------------------------------------------------------
-
-static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return;
-
- win->m_toolBarDetached = FALSE;
- win->m_sizeSet = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// "child_detached" of tool bar
-//-----------------------------------------------------------------------------
-
-static void gtk_toolbar_detached_callback( GtkWidget *widget, GtkWidget *WXUNUSED(child), wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return;
-
- win->m_toolBarDetached = TRUE;
- win->m_sizeSet = FALSE;
-}
-
-//-----------------------------------------------------------------------------
-// "configure_event"
-//-----------------------------------------------------------------------------
-
-static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxFrame *win )
-{
- if (g_isIdle) wxapp_install_idle_handler();
-
- if (!win->HasVMT()) return FALSE;
-
- win->m_x = event->x;
- win->m_y = event->y;
-
- 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();
-
- /* all this is for Motif Window Manager "hints" and is supposed to be
- recognized by other WM as well. not tested. */
- long decor = (long) 0;
- long func = (long) GDK_FUNC_MOVE|GDK_FUNC_CLOSE;
-
- if ((win->m_windowStyle & wxCAPTION) != 0)
- decor |= GDK_DECOR_TITLE;
- if ((win->m_windowStyle & wxSYSTEM_MENU) != 0)
- {
- decor |= GDK_DECOR_MENU;
- func |= GDK_FUNC_CLOSE;
- }
- if ((win->m_windowStyle & wxMINIMIZE_BOX) != 0)
- {
- func |= GDK_FUNC_MINIMIZE;
- decor |= GDK_DECOR_MINIMIZE;
- decor |= GDK_DECOR_BORDER;
- }
- if ((win->m_windowStyle & wxMAXIMIZE_BOX) != 0)
- {
- func |= GDK_FUNC_MAXIMIZE;
- decor |= GDK_DECOR_MAXIMIZE;
- decor |= GDK_DECOR_BORDER;
- }
- if ((win->m_windowStyle & wxRESIZE_BORDER) != 0)
- {
- func |= GDK_FUNC_RESIZE;
- decor |= GDK_DECOR_RESIZEH;
- decor |= GDK_DECOR_BORDER;
- }