Did the unmap/map trick for wxFrame::IsIconized().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2000-09-13 11:45:43 +00:00
parent 8088e4c628
commit 43f5c4930f
2 changed files with 66 additions and 8 deletions

View File

@ -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,26 @@ 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), wxFrame *win )
{
win->m_isIconized = FALSE;
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget), wxFrame *win )
{
win->m_isIconized = TRUE;
}
// ----------------------------------------------------------------------------
@ -398,6 +416,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 +431,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 +510,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 );
@ -1129,5 +1158,5 @@ void wxFrame::Iconize( bool iconize )
bool wxFrame::IsIconized() const
{
return FALSE;
return m_isIconized;
}

View File

@ -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,26 @@ 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), wxFrame *win )
{
win->m_isIconized = FALSE;
}
//-----------------------------------------------------------------------------
// "unmap_event" from m_widget
//-----------------------------------------------------------------------------
static void
gtk_frame_unmap_callback( GtkWidget * WXUNUSED(widget), wxFrame *win )
{
win->m_isIconized = TRUE;
}
// ----------------------------------------------------------------------------
@ -398,6 +416,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 +431,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 +510,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 );
@ -1129,5 +1158,5 @@ void wxFrame::Iconize( bool iconize )
bool wxFrame::IsIconized() const
{
return FALSE;
return m_isIconized;
}