]> 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 f5f5b12e7324d23f21c43fa0c9e3e56239c11255..b91b944750fc2eb70e8e13aa2e8749b8129c6714 100644 (file)
@@ -265,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 )
@@ -327,14 +327,8 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
     // always create a frame of some reasonable, even if arbitrary, size (at
     // least for MSW compatibility)
     wxSize size = sizeOrig;
-    if ( size.x == -1 || size.y == -1 )
-    {
-        wxSize sizeDpy = wxGetDisplaySize();
-        if ( size.x == -1 )
-            size.x = sizeDpy.x / 3;
-        if ( size.y == -1 )
-            size.y = sizeDpy.y / 5;
-    }
+    size.x = WidthDefault(size.x);
+    size.y = HeightDefault(size.y);
 
     wxTopLevelWindows.Append( this );
 
@@ -351,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)) ||
@@ -653,16 +652,15 @@ void wxTopLevelWindowGTK::DoSetSize( int x, int y, int width, int height, int si
         maxWidth = GetMaxWidth(),
         maxHeight = GetMaxHeight();
 
-    if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA)
-    {
-        // GPE's window manager doesn't like size hints
-        // at all, esp. when the user has to use the
-        // virtual keyboard.
-        minWidth = -1;
-        minHeight = -1;
-        maxWidth = -1;
-        maxHeight = -1;
-    }
+#ifdef __WXGPE__
+    // GPE's window manager doesn't like size hints
+    // at all, esp. when the user has to use the
+    // virtual keyboard.
+    minWidth = -1;
+    minHeight = -1;
+    maxWidth = -1;
+    maxHeight = -1;
+#endif
     
     if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
     if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
@@ -745,16 +743,15 @@ void wxTopLevelWindowGTK::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
         maxWidth = GetMaxWidth(),
         maxHeight = GetMaxHeight();
 
-    if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA)
-    {
-        // GPE's window manager doesn't like size hints
-        // at all, esp. when the user has to use the
-        // virtual keyboard.
-        minWidth = -1;
-        minHeight = -1;
-        maxWidth = -1;
-        maxHeight = -1;
-    }
+#ifdef __WXGPE__
+    // GPE's window manager doesn't like size hints
+    // at all, esp. when the user has to use the
+    // virtual keyboard.
+    minWidth = -1;
+    minHeight = -1;
+    maxWidth = -1;
+    maxHeight = -1;
+#endif
     
     if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
     if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;