X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/343e14b3e25f258bead6ae11bdc0adee6bcbe04e..300aaa8f77daee5cd740c8c4cce63f40c6bfae4b:/src/gtk1/frame.cpp diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 8816caaa2b..43d5e07887 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -246,7 +246,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *ev /* we cannot MWM hints and icons before the widget has been realized, so we do this directly after realization */ -static gint +static void gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget), wxFrame *win ) { if (g_isIdle) @@ -321,8 +321,30 @@ gtk_frame_realized_callback( GtkWidget * WXUNUSED(widget), wxFrame *win ) node = node->GetNext(); } +} - return FALSE; +//----------------------------------------------------------------------------- +// "map_event" from m_widget +//----------------------------------------------------------------------------- + +static void +gtk_frame_map_callback( GtkWidget * WXUNUSED(widget), + GdkEvent * WXUNUSED(event), + wxFrame *win ) +{ + win->m_isIconized = FALSE; +} + +//----------------------------------------------------------------------------- +// "unmap_event" from m_widget +//----------------------------------------------------------------------------- + +static void +gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget), + GdkEvent * WXUNUSED(event), + wxFrame *win ) +{ + win->m_isIconized = TRUE; } // ---------------------------------------------------------------------------- @@ -398,6 +420,8 @@ void wxFrame::Init() m_menuBarDetached = FALSE; m_toolBarDetached = FALSE; m_insertInClientArea = TRUE; + m_isIconized = FALSE; + m_fsIsShowing = FALSE; } bool wxFrame::Create( wxWindow *parent, @@ -411,7 +435,6 @@ bool wxFrame::Create( wxWindow *parent, wxTopLevelWindows.Append( this ); m_needParent = FALSE; - m_fsIsShowing = FALSE; if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) @@ -491,6 +514,16 @@ bool wxFrame::Create( wxWindow *parent, gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", GTK_SIGNAL_FUNC(gtk_frame_configure_callback), (gpointer)this ); + /* map and unmap for iconized state */ + gtk_signal_connect( GTK_OBJECT(m_widget), "map_event", + GTK_SIGNAL_FUNC(gtk_frame_map_callback), (gpointer)this ); + gtk_signal_connect( GTK_OBJECT(m_widget), "unmap_event", + GTK_SIGNAL_FUNC(gtk_frame_unmap_callback), (gpointer)this ); + + /* the only way to get the window size is to connect to this event */ + gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", + GTK_SIGNAL_FUNC(gtk_frame_configure_callback), (gpointer)this ); + /* disable native tab traversal */ gtk_signal_connect( GTK_OBJECT(m_widget), "focus", GTK_SIGNAL_FUNC(gtk_frame_focus_callback), (gpointer)this ); @@ -1101,20 +1134,24 @@ void wxFrame::SetIcon( const wxIcon &icon ) } // ---------------------------------------------------------------------------- -// frame state: maximized/iconized/normal (TODO) +// frame state: maximized/iconized/normal // ---------------------------------------------------------------------------- void wxFrame::Maximize(bool WXUNUSED(maximize)) { + wxFAIL_MSG( _T("not implemented") ); } bool wxFrame::IsMaximized() const { + wxFAIL_MSG( _T("not implemented") ); + return FALSE; } void wxFrame::Restore() { + wxFAIL_MSG( _T("not implemented") ); } void wxFrame::Iconize( bool iconize ) @@ -1129,5 +1166,5 @@ void wxFrame::Iconize( bool iconize ) bool wxFrame::IsIconized() const { - return FALSE; + return m_isIconized; }