]> git.saurik.com Git - wxWidgets.git/commitdiff
Since wxPanel is now AutoLayout aware, removed indirect auto layouting
authorRobin Dunn <robin@alldunn.com>
Wed, 20 Oct 1999 18:30:47 +0000 (18:30 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 20 Oct 1999 18:30:47 +0000 (18:30 +0000)
of child windows from wxNotebook and wxSplitter, as per Robert's
request.

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

docs/latex/wx/window.tex
src/generic/splitter.cpp
src/gtk/notebook.cpp
src/gtk1/notebook.cpp
src/msw/notebook.cpp

index 6e0125566d9eb03aa306f381f68d124d694b8d1e..9de0127e49a7a8148a7524639220c95f361057b0 100644 (file)
@@ -1720,8 +1720,10 @@ from within wxWindow::OnSize functions.}
 \wxheading{Remarks}
 
 Note that this function is actually disabled for wxWindow. It has
-effect for wxDialog, wxFrame, wxPanel and wxScrolledWindow as well as indirectly for
-children of wxNotebook and wxSplitterWindow.
+effect for wxDialog, wxFrame, wxPanel and wxScrolledWindow.  Windows
+of other types that need to invoke the Layout algorithm should provide
+an EVT_SIZE handler and call
+\helpref{wxWindow::Layout}{wxwindowlayout} from within it.
 
 \wxheading{See also}
 
index 2df6674596197fa925d2d713edb27e3c36288d98..793fe9f91465334d358368203dee95d6fa06d904 100644 (file)
@@ -185,7 +185,7 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
            {
                DrawSashTracker(x, y);
            }
-           
+
             m_oldX = x;
             m_oldY = y;
             return;
@@ -279,7 +279,7 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
         }
 #endif // __WXGTK__
     }
-    else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING)) 
+    else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING))
     {
         // Obtain window size. We are only interested in the dimension the sash
         // splits up
@@ -433,7 +433,7 @@ void wxSplitterWindow::DrawBorders(wxDC& dc)
 
     if ( GetWindowStyleFlag() & wxSP_3D )
     {
-               
+
         dc.SetPen(*m_facePen);
         dc.SetBrush(*m_faceBrush);
         dc.DrawRectangle(1, 1 , w-1, m_borderSize-2 ); //high
@@ -618,9 +618,7 @@ void wxSplitterWindow::SizeWindows()
     if ( m_windowOne && !m_windowTwo )
     {
         m_windowOne->SetSize(m_borderSize, m_borderSize, w - 2*m_borderSize, h - 2*m_borderSize);
-       
-       if (m_windowOne->GetAutoLayout())
-           m_windowOne->Layout();
+
     }
     else if ( m_windowOne && m_windowTwo )
     {
@@ -638,11 +636,7 @@ void wxSplitterWindow::SizeWindows()
 
             m_windowOne->SetSize(x1, y1, w1, h1);
             m_windowTwo->SetSize(x2, y2, w2, h2);
-       
-           if (m_windowOne->GetAutoLayout())
-               m_windowOne->Layout();
-           if (m_windowTwo->GetAutoLayout())
-               m_windowTwo->Layout();
+
         }
         else
         {
@@ -650,11 +644,7 @@ void wxSplitterWindow::SizeWindows()
                 w - 2*m_borderSize, m_sashPosition - m_borderSize);
             m_windowTwo->SetSize(m_borderSize, m_sashPosition + m_sashSize,
                 w - 2*m_borderSize, h - 2*m_borderSize - m_sashSize - (m_sashPosition - m_borderSize));
-               
-           if (m_windowOne->GetAutoLayout())
-               m_windowOne->Layout();
-           if (m_windowTwo->GetAutoLayout())
-               m_windowTwo->Layout();
+
         }
     }
     wxClientDC dc(this);
index f1a03228afb6624552354806795bc824e9797895..da7f735b6bb83116d07eb49d7c3be9b43586e253 100644 (file)
@@ -82,7 +82,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
                                               gint page,
                                               wxNotebook *notebook )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     int old = notebook->GetSelection();
@@ -90,7 +90,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
     wxNotebookEvent event1( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING,
                             notebook->GetId(), page, old );
     event1.SetEventObject( notebook );
-    
+
     if ((notebook->GetEventHandler()->ProcessEvent( event1 )) &&
         !event1.IsAllowed() )
     {
@@ -111,7 +111,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
 
 static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     if ((win->m_x == alloc->x) &&
@@ -121,18 +121,16 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
     {
         return;
     }
-    
+
     win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 
-    if (win->GetAutoLayout())
-        win->Layout();
 }
 
 //-----------------------------------------------------------------------------
 // "realize" from m_widget
 //-----------------------------------------------------------------------------
 
-/* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize 
+/* 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
@@ -188,7 +186,7 @@ wxNotebook::wxNotebook( wxWindow *parent, wxWindowID id,
 wxNotebook::~wxNotebook()
 {
     /* don't generate change page events any more */
-    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), 
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
       GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this );
 
     DeleteAllPages();
@@ -234,7 +232,7 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
                             GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this );
-                           
+
     Show( TRUE );
 
     return TRUE;
@@ -262,9 +260,9 @@ int wxNotebook::GetSelection() const
     if (g_list_length(pages) == 0) return -1;
 
     GtkNotebook *notebook = GTK_NOTEBOOK(m_widget);
-    
+
     if (notebook->cur_page == NULL) return m_lastSelection;
-    
+
     return g_list_index( pages, (gpointer)(notebook->cur_page) );
 }
 
@@ -305,9 +303,9 @@ wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const
     wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, wxT("invalid notebook") );
 
     wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, wxT("invalid notebook index") );
-    
+
     wxNode *node = m_pages.Nth( page );
-    
+
     return (wxNotebookPage *) node->Data();
 }
 
@@ -318,7 +316,7 @@ int wxNotebook::SetSelection( int page )
     wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, wxT("invalid notebook index") );
 
     int selOld = GetSelection();
-    
+
     gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), page );
 
     return selOld;
@@ -353,7 +351,7 @@ bool wxNotebook::SetPageText( int page, const wxString &text )
     nb_page->m_text = text;
 
     gtk_label_set( nb_page->m_label, nb_page->m_text.mbc_str() );
-   
+
     return TRUE;
 }
 
@@ -475,10 +473,10 @@ bool wxNotebook::DeletePage( int page )
     /* GTK sets GtkNotebook.cur_page to NULL before sending
        the switvh page event */
     m_lastSelection = GetSelection();
-    
+
     nb_page->m_client->Destroy();
     m_pages.DeleteObject( nb_page );
-    
+
     m_lastSelection = -1;
 
     return TRUE;
@@ -487,7 +485,7 @@ bool wxNotebook::DeletePage( int page )
 bool wxNotebook::RemovePage( int page )
 {
     wxNotebookPage* nb_page = GetNotebookPage(page);
-    
+
     if (!nb_page) return FALSE;
 
     gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page );
@@ -505,19 +503,19 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
     wxCHECK_MSG( win->GetParent() == this, FALSE,
                wxT("Can't add a page whose parent is not the notebook!") );
 
-    /* don't receive switch page during addition */           
-    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), 
+    /* don't receive switch page during addition */
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
       GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this );
-      
+
     GtkNotebook *notebook = GTK_NOTEBOOK(m_widget);
 
     wxNotebookPage *page = new wxNotebookPage();
-    
+
     if (position < 0)
         m_pages.Append( page );
     else
         m_pages.Insert( m_pages.Nth( position ), page );
-    
+
     page->m_client = win;
 
     page->m_box = gtk_hbox_new( FALSE, 0 );
@@ -528,14 +526,14 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
 
     if (position < 0)
         gtk_notebook_append_page( notebook, win->m_widget, page->m_box );
-    else 
+    else
         gtk_notebook_insert_page( notebook, win->m_widget, page->m_box, position );
 
     page->m_page = (GtkNotebookPage*) g_list_last(notebook->children)->data;
 
     /* set the label image */
     page->m_image = imageId;
-    
+
     if (imageId != -1)
     {
         wxASSERT( m_imageList != NULL );
@@ -558,7 +556,7 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
     /* set the label text */
     page->m_text = text;
     if (page->m_text.IsEmpty()) page->m_text = wxT("");
-    
+
     page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) );
     gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 );
 
index f1a03228afb6624552354806795bc824e9797895..da7f735b6bb83116d07eb49d7c3be9b43586e253 100644 (file)
@@ -82,7 +82,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
                                               gint page,
                                               wxNotebook *notebook )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     int old = notebook->GetSelection();
@@ -90,7 +90,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
     wxNotebookEvent event1( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING,
                             notebook->GetId(), page, old );
     event1.SetEventObject( notebook );
-    
+
     if ((notebook->GetEventHandler()->ProcessEvent( event1 )) &&
         !event1.IsAllowed() )
     {
@@ -111,7 +111,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
 
 static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     if ((win->m_x == alloc->x) &&
@@ -121,18 +121,16 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
     {
         return;
     }
-    
+
     win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
 
-    if (win->GetAutoLayout())
-        win->Layout();
 }
 
 //-----------------------------------------------------------------------------
 // "realize" from m_widget
 //-----------------------------------------------------------------------------
 
-/* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize 
+/* 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
@@ -188,7 +186,7 @@ wxNotebook::wxNotebook( wxWindow *parent, wxWindowID id,
 wxNotebook::~wxNotebook()
 {
     /* don't generate change page events any more */
-    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), 
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
       GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this );
 
     DeleteAllPages();
@@ -234,7 +232,7 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id,
 
     gtk_signal_connect( GTK_OBJECT(m_widget), "realize",
                             GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this );
-                           
+
     Show( TRUE );
 
     return TRUE;
@@ -262,9 +260,9 @@ int wxNotebook::GetSelection() const
     if (g_list_length(pages) == 0) return -1;
 
     GtkNotebook *notebook = GTK_NOTEBOOK(m_widget);
-    
+
     if (notebook->cur_page == NULL) return m_lastSelection;
-    
+
     return g_list_index( pages, (gpointer)(notebook->cur_page) );
 }
 
@@ -305,9 +303,9 @@ wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const
     wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, wxT("invalid notebook") );
 
     wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, wxT("invalid notebook index") );
-    
+
     wxNode *node = m_pages.Nth( page );
-    
+
     return (wxNotebookPage *) node->Data();
 }
 
@@ -318,7 +316,7 @@ int wxNotebook::SetSelection( int page )
     wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, wxT("invalid notebook index") );
 
     int selOld = GetSelection();
-    
+
     gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), page );
 
     return selOld;
@@ -353,7 +351,7 @@ bool wxNotebook::SetPageText( int page, const wxString &text )
     nb_page->m_text = text;
 
     gtk_label_set( nb_page->m_label, nb_page->m_text.mbc_str() );
-   
+
     return TRUE;
 }
 
@@ -475,10 +473,10 @@ bool wxNotebook::DeletePage( int page )
     /* GTK sets GtkNotebook.cur_page to NULL before sending
        the switvh page event */
     m_lastSelection = GetSelection();
-    
+
     nb_page->m_client->Destroy();
     m_pages.DeleteObject( nb_page );
-    
+
     m_lastSelection = -1;
 
     return TRUE;
@@ -487,7 +485,7 @@ bool wxNotebook::DeletePage( int page )
 bool wxNotebook::RemovePage( int page )
 {
     wxNotebookPage* nb_page = GetNotebookPage(page);
-    
+
     if (!nb_page) return FALSE;
 
     gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page );
@@ -505,19 +503,19 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
     wxCHECK_MSG( win->GetParent() == this, FALSE,
                wxT("Can't add a page whose parent is not the notebook!") );
 
-    /* don't receive switch page during addition */           
-    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), 
+    /* don't receive switch page during addition */
+    gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
       GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this );
-      
+
     GtkNotebook *notebook = GTK_NOTEBOOK(m_widget);
 
     wxNotebookPage *page = new wxNotebookPage();
-    
+
     if (position < 0)
         m_pages.Append( page );
     else
         m_pages.Insert( m_pages.Nth( position ), page );
-    
+
     page->m_client = win;
 
     page->m_box = gtk_hbox_new( FALSE, 0 );
@@ -528,14 +526,14 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
 
     if (position < 0)
         gtk_notebook_append_page( notebook, win->m_widget, page->m_box );
-    else 
+    else
         gtk_notebook_insert_page( notebook, win->m_widget, page->m_box, position );
 
     page->m_page = (GtkNotebookPage*) g_list_last(notebook->children)->data;
 
     /* set the label image */
     page->m_image = imageId;
-    
+
     if (imageId != -1)
     {
         wxASSERT( m_imageList != NULL );
@@ -558,7 +556,7 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
     /* set the label text */
     page->m_text = text;
     if (page->m_text.IsEmpty()) page->m_text = wxT("");
-    
+
     page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) );
     gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 );
 
index f8d4ed27d1877dd88c3227913994b5e0ddb1439e..4dd386361cc1a6403872bc416837dfdc1f87aa5e 100644 (file)
@@ -414,8 +414,6 @@ bool wxNotebook::InsertPage(int nPage,
   GetSize((int *)&rc.right, (int *)&rc.bottom);
   TabCtrl_AdjustRect(m_hwnd, FALSE, &rc);
   pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
-  if ( pPage->GetAutoLayout() )
-      pPage->Layout();
 
 
   // some page should be selected: either this one or the first one if there is
@@ -448,8 +446,6 @@ void wxNotebook::OnSize(wxSizeEvent& event)
   for ( size_t nPage = 0; nPage < nCount; nPage++ ) {
     wxNotebookPage *pPage = m_aPages[nPage];
     pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);
-    if ( pPage->GetAutoLayout() )
-      pPage->Layout();
   }
 
   event.Skip();