-#include "wx/dialog.h"
-#include "wx/control.h"
-#include "wx/app.h"
-#include "wx/gtk/win_gtk.h"
-
-const wxMENU_HEIGHT = 28;
-const wxSTATUS_HEIGHT = 25;
-
-extern wxList wxTopLevelWindows;
-extern wxList wxPendingDelete;
-
-//-----------------------------------------------------------------------------
-// wxFrame
-//-----------------------------------------------------------------------------
-
-//-----------------------------------------------------------------------------
-// size
-
-void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxFrame *win )
-{
- if (!win->HasVMT()) return;
-
-/*
- printf( "OnFrameResize from " );
- if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
- printf( win->GetClassInfo()->GetClassName() );
- printf( ".\n" );
-*/
-
- win->GtkOnSize( alloc->width, alloc->height );
-};
-
-//-----------------------------------------------------------------------------
-// delete
-
-bool gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxFrame *win )
-{
-/*
- printf( "OnDelete from " );
- if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
- printf( win->GetClassInfo()->GetClassName() );
- printf( ".\n" );
-*/
-
- win->Close();
-
- return TRUE;
-};
-
-//-----------------------------------------------------------------------------
-
-BEGIN_EVENT_TABLE(wxFrame, wxWindow)
- EVT_CLOSE(wxFrame::OnCloseWindow)
- EVT_SIZE(wxFrame::OnSize)
-END_EVENT_TABLE()
-
-IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow)
-
-wxFrame::wxFrame(void)
-{
- m_doingOnSize = FALSE;
- m_frameMenuBar = NULL;
- m_frameStatusBar = NULL;
- m_sizeSet = FALSE;
- wxTopLevelWindows.Insert( this );
-};
-
-wxFrame::wxFrame( wxWindow *parent, const wxWindowID id, const wxString &title,
- const wxPoint &pos, const wxSize &size,
- const long style, const wxString &name )
-{
- m_sizeSet = FALSE;
- Create( parent, id, title, pos, size, style, name );
- wxTopLevelWindows.Insert( this );
-};
-
-bool wxFrame::Create( wxWindow *parent, const wxWindowID id, const wxString &title,
- const wxPoint &pos, const wxSize &size,
- const long style, const wxString &name )
-{
- m_needParent = FALSE;
- m_mainWindow = NULL;
- m_wxwindow = NULL;
-
- PreCreation( parent, id, pos, size, style, name );
-
- m_doingOnSize = FALSE;
-
- m_title = title;
-
- m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL );
- if ((size.x != -1) && (size.y != -1))
- gtk_widget_set_usize( m_widget, m_width, m_height );
- if ((pos.x != -1) && (pos.y != -1))
- gtk_widget_set_uposition( m_widget, m_x, m_y );
-
- gtk_window_set_title( GTK_WINDOW(m_widget), title );
- GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
-
- gtk_widget_set( m_widget, "GtkWindow::allow_shrink", TRUE, NULL);
-
- gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event",
- GTK_SIGNAL_FUNC(gtk_frame_delete_callback), (gpointer)this );
-
- m_mainWindow = gtk_myfixed_new();
- gtk_widget_show( m_mainWindow );
- GTK_WIDGET_UNSET_FLAGS( m_mainWindow, GTK_CAN_FOCUS );
-
- gtk_container_add( GTK_CONTAINER(m_widget), m_mainWindow );
- gtk_widget_set_uposition( m_mainWindow, 0, 0 );
-
- m_wxwindow = gtk_myfixed_new();
- gtk_widget_show( m_wxwindow );
- GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
-
- gtk_container_add( GTK_CONTAINER(m_mainWindow), m_wxwindow );
-
- m_frameMenuBar = NULL;
- m_frameStatusBar = NULL;
-
- gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
- GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this );
-
- PostCreation();
-
- gtk_widget_realize( m_mainWindow );
-
- return TRUE;
-};
-
-wxFrame::~wxFrame(void)
-{
- if (m_frameMenuBar) delete m_frameMenuBar;
- if (m_frameStatusBar) delete m_frameStatusBar;
-
-// if (m_mainWindow) gtk_widget_destroy( m_mainWindow );
-
- wxTopLevelWindows.DeleteObject( this );
- if (wxTopLevelWindows.Number() == 0) wxTheApp->ExitMainLoop();
-};
-
-bool wxFrame::Show( const bool show )
-{
- if (show)
- {
- wxSizeEvent event( wxSize(m_width,m_height), GetId() );
- m_sizeSet = FALSE;
- ProcessEvent( event );
- };
- return wxWindow::Show( show );
-};
-
-void wxFrame::Enable( const bool enable )