]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/toplevel.cpp
Tests for wxTE_PROCESS_TAB again in line with other ports
[wxWidgets.git] / src / gtk1 / toplevel.cpp
index 75371738e9bff27bc767d503b6196121d08fd663..b91b944750fc2eb70e8e13aa2e8749b8129c6714 100644 (file)
@@ -30,7 +30,6 @@
 
 #include "wx/log.h"
 #include "wx/dialog.h"
-#include "wx/msgdlg.h"
 #include "wx/control.h"
 #include "wx/app.h"
 #include "wx/dcclient.h"
@@ -266,7 +265,7 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
 
 /* Callback for wxTopLevelWindowGTK. This very strange beast has to be used because
  * C++ has no virtual methods in a constructor. We have to emulate a
- * virtual function here as wxWindows requires different ways to insert
+ * virtual function here as wxWidgets requires different ways to insert
  * a child in container classes. */
 
 static void wxInsertChildInTopLevelWindow( wxTopLevelWindowGTK* parent, wxWindow* child )
@@ -346,22 +345,27 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
 
     m_insertCallback = (wxInsertChildFunction) wxInsertChildInTopLevelWindow;
 
-    GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
+    // NB: m_widget may be !=NULL if it was created by derived class' Create,
+    //     e.g. in wxTaskBarIconAreaGTK
+    if (m_widget == NULL)
+    {
+        GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
 
-    if (style & wxFRAME_TOOL_WINDOW)
-        win_type = GTK_WINDOW_POPUP;
+        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
+        if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
+        {
+            // there is no more GTK_WINDOW_DIALOG in 2.0
 #ifdef __WXGTK20__
-        win_type = GTK_WINDOW_TOPLEVEL;
+            win_type = GTK_WINDOW_TOPLEVEL;
 #else
-        win_type = GTK_WINDOW_DIALOG;
+            win_type = GTK_WINDOW_DIALOG;
 #endif
-    }
+        }
 
-    m_widget = gtk_window_new( win_type );
+        m_widget = gtk_window_new( win_type );
+    }
 
     if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) &&
                      (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||
@@ -580,7 +584,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
 
 bool wxTopLevelWindowGTK::Show( bool show )
 {
-    wxCHECK_VALID_WIDGET(FALSE);
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
 
     if (show && !m_sizeSet)
     {
@@ -602,8 +606,8 @@ void wxTopLevelWindowGTK::DoMoveWindow(int WXUNUSED(x), int WXUNUSED(y), int WXU
 
 void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags )
 {
-    wxCHECK_VALID_WIDGET_RET();
-    
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
+
     // this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow
     wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
 
@@ -689,8 +693,8 @@ void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int si
 
 void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
 {
-    wxCHECK_VALID_WIDGET_RET();
-    
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
+
     wxWindow::DoGetClientSize( width, height );
     if (height)
     {
@@ -705,7 +709,7 @@ void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
 
 void wxTopLevelWindowGTK::DoSetClientSize( int width, int height )
 {
-    wxCHECK_VALID_WIDGET_RET();
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
 
     DoSetSize(-1, -1,
               width + m_miniEdge*2, height  + m_miniEdge*2 + m_miniTitle, 0);
@@ -861,8 +865,8 @@ void wxTopLevelWindowGTK::OnInternalIdle()
 
 void wxTopLevelWindowGTK::SetTitle( const wxString &title )
 {
-    wxCHECK_VALID_WIDGET_RET();
-    
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
+
     m_title = title;
     gtk_window_set_title( GTK_WINDOW(m_widget), wxGTK_CONV( title ) );
 }
@@ -889,7 +893,7 @@ void wxTopLevelWindowGTK::SetIcon( const wxIcon &icon )
 
 void wxTopLevelWindowGTK::SetIcons( const wxIconBundle &icons )
 {
-    wxCHECK_VALID_WIDGET_RET();
+    wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
     GdkWindow* window = m_widget->window;
 
     wxTopLevelWindowBase::SetIcons( icons );