From 63c5efa344d45069b5f6d92078ab4149780ed4dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Mon, 31 May 2004 22:10:37 +0000 Subject: [PATCH] allow classes derived from wxTopLevelWidnow to use other GTK widget than GtkWindow git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/toplevel.cpp | 33 +++++++++++++++++++-------------- src/gtk1/toplevel.cpp | 33 +++++++++++++++++++-------------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 04bb0b4ca0..b91b944750 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -345,22 +345,27 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, m_insertCallback = (wxInsertChildFunction) wxInsertChildInTopLevelWindow; - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - - if (style & wxFRAME_TOOL_WINDOW) - win_type = GTK_WINDOW_POPUP; - - if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) + // NB: m_widget may be !=NULL if it was created by derived class' Create, + // e.g. in wxTaskBarIconAreaGTK + if (m_widget == NULL) { - // there is no more GTK_WINDOW_DIALOG in 2.0 -#ifdef __WXGTK20__ - win_type = GTK_WINDOW_TOPLEVEL; -#else - win_type = GTK_WINDOW_DIALOG; -#endif - } + GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - m_widget = gtk_window_new( win_type ); + if (style & wxFRAME_TOOL_WINDOW) + win_type = GTK_WINDOW_POPUP; + + if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) + { + // there is no more GTK_WINDOW_DIALOG in 2.0 +#ifdef __WXGTK20__ + win_type = GTK_WINDOW_TOPLEVEL; +#else + win_type = GTK_WINDOW_DIALOG; +#endif + } + + m_widget = gtk_window_new( win_type ); + } if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) && (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) || diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp index 04bb0b4ca0..b91b944750 100644 --- a/src/gtk1/toplevel.cpp +++ b/src/gtk1/toplevel.cpp @@ -345,22 +345,27 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, m_insertCallback = (wxInsertChildFunction) wxInsertChildInTopLevelWindow; - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - - if (style & wxFRAME_TOOL_WINDOW) - win_type = GTK_WINDOW_POPUP; - - if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) + // NB: m_widget may be !=NULL if it was created by derived class' Create, + // e.g. in wxTaskBarIconAreaGTK + if (m_widget == NULL) { - // there is no more GTK_WINDOW_DIALOG in 2.0 -#ifdef __WXGTK20__ - win_type = GTK_WINDOW_TOPLEVEL; -#else - win_type = GTK_WINDOW_DIALOG; -#endif - } + GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - m_widget = gtk_window_new( win_type ); + if (style & wxFRAME_TOOL_WINDOW) + win_type = GTK_WINDOW_POPUP; + + if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) + { + // there is no more GTK_WINDOW_DIALOG in 2.0 +#ifdef __WXGTK20__ + win_type = GTK_WINDOW_TOPLEVEL; +#else + win_type = GTK_WINDOW_DIALOG; +#endif + } + + m_widget = gtk_window_new( win_type ); + } if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) && (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||