]> git.saurik.com Git - wxWidgets.git/commitdiff
Fixed resizing problem with GTK 1.2.3 notebooks.
authorRobert Roebling <robert@roebling.de>
Sat, 23 Oct 1999 10:40:04 +0000 (10:40 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 23 Oct 1999 10:40:04 +0000 (10:40 +0000)
  Added wxSizer test to controls sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/controls/controls.cpp
src/gtk/notebook.cpp
src/gtk1/notebook.cpp

index e38e0b2eb5559867370160d269a2ea7581f55c67..c08dff38078fb96f7abf8f4ee68dfbfc5c6214d4 100644 (file)
@@ -554,6 +554,8 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
 
 // --------------- TEST CODE ----------------------
 
+  // layout constraints
+
   panel = new wxPanel(m_notebook);
   panel->SetAutoLayout( true );
 
@@ -576,7 +578,22 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
   wxButton *pMyButton2 = new wxButton(panel, -1, "Test Button 2" );
   pMyButton2->SetConstraints( c );
 
-  m_notebook->AddPage(panel, "test layout");
+  m_notebook->AddPage(panel, "wxLayoutConstraint");
+
+  // sizer
+
+  panel = new wxPanel(m_notebook);
+  panel->SetAutoLayout( true );
+
+  wxBoxSizer *sizer = new wxBoxSizer( wxHORIZONTAL );
+  
+  sizer->Add( new wxButton(panel, -1, "Test Button" ), 3, wxALL, 10 );
+  sizer->Add( 20,20, 1 );
+  sizer->Add( new wxButton(panel, -1, "Test Button 2" ), 3, wxGROW|wxALL, 10 );
+  
+  panel->SetSizer( sizer );
+
+  m_notebook->AddPage(panel, "wxSizer");
 
 // --------------- TEST CODE ----------------------
 
index da7f735b6bb83116d07eb49d7c3be9b43586e253..5d9d65d088bb8b090646691d27a4709db0ce6af1 100644 (file)
@@ -124,21 +124,30 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
 
     win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 
+    /* GTK 1.2 up to version 1.2.5 is broken so that we have to call allocate
+       here in order to make repositioning after resizing to take effect. */
+    if ((gtk_major_version == 1) &&
+        (gtk_minor_version == 2) &&
+       (gtk_micro_version < 6) &&
+        (win->m_wxwindow) && 
+       (GTK_WIDGET_REALIZED(win->m_wxwindow)))
+    {
+        gtk_widget_size_allocate( win->m_wxwindow, alloc );
+    }
 }
 
 //-----------------------------------------------------------------------------
 // "realize" from m_widget
 //-----------------------------------------------------------------------------
 
-/* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize
-   here in order to take repositioning before showing to take effect. */
-
 static gint
 gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
 {
     if (g_isIdle)
         wxapp_install_idle_handler();
 
+    /* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize
+       here in order to make repositioning before showing to take effect. */
     gtk_widget_queue_resize( win->m_widget );
 
     return FALSE;
index da7f735b6bb83116d07eb49d7c3be9b43586e253..5d9d65d088bb8b090646691d27a4709db0ce6af1 100644 (file)
@@ -124,21 +124,30 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
 
     win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 
+    /* GTK 1.2 up to version 1.2.5 is broken so that we have to call allocate
+       here in order to make repositioning after resizing to take effect. */
+    if ((gtk_major_version == 1) &&
+        (gtk_minor_version == 2) &&
+       (gtk_micro_version < 6) &&
+        (win->m_wxwindow) && 
+       (GTK_WIDGET_REALIZED(win->m_wxwindow)))
+    {
+        gtk_widget_size_allocate( win->m_wxwindow, alloc );
+    }
 }
 
 //-----------------------------------------------------------------------------
 // "realize" from m_widget
 //-----------------------------------------------------------------------------
 
-/* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize
-   here in order to take repositioning before showing to take effect. */
-
 static gint
 gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win )
 {
     if (g_isIdle)
         wxapp_install_idle_handler();
 
+    /* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize
+       here in order to make repositioning before showing to take effect. */
     gtk_widget_queue_resize( win->m_widget );
 
     return FALSE;