From 3aa5d53272727835f297450e153ed79dc132e48a Mon Sep 17 00:00:00 2001 From: Ron Lee Date: Sun, 10 Mar 2002 11:19:16 +0000 Subject: [PATCH] added optional parameter to SetSizer, to allow replacing a window's sizer without deleting the existing one. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/window.tex | 11 +++++++---- include/wx/window.h | 2 +- src/common/wincmn.cpp | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex index af3fa74832..9fbd49fbcf 100644 --- a/docs/latex/wx/window.tex +++ b/docs/latex/wx/window.tex @@ -2483,17 +2483,20 @@ The resizing increments are only significant under Motif or Xt. \membersection{wxWindow::SetSizer}\label{wxwindowsetsizer} -\func{void}{SetSizer}{\param{wxSizer* }{sizer}} +\func{void}{SetSizer}{\param{wxSizer* }{sizer}, \param{bool }{deleteOld=TRUE}} Sets the window to have the given layout sizer. The window will then own the object, and will take care of its deletion. If an existing layout constraints object is already owned by the -window, it will be deleted. +window, it will be deleted if the deleteOld parameter is TRUE. \wxheading{Parameters} -\docparam{sizer}{The sizer to set. Pass NULL to disassociate and delete the window's -sizer.} +\docparam{sizer}{The sizer to set. Pass NULL to disassociate and conditionally delete +the window's sizer. See below.} + +\docparam{deleteOld}{If TRUE (the default), this will delete any prexisting sizer. +Pass FALSE if you wish to handle deleting the old sizer yourself.} \wxheading{Remarks} diff --git a/include/wx/window.h b/include/wx/window.h index 40538ca5a6..1b7071d626 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -739,7 +739,7 @@ public: virtual bool Layout(); // sizers - void SetSizer( wxSizer *sizer ); + void SetSizer(wxSizer *sizer, bool deleteOld = TRUE ); wxSizer *GetSizer() const { return m_windowSizer; } // Track if this window is a member of a sizer diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp index f738746d00..2641125c24 100644 --- a/src/common/wincmn.cpp +++ b/src/common/wincmn.cpp @@ -1185,9 +1185,9 @@ void wxWindowBase::DeleteRelatedConstraints() } #endif -void wxWindowBase::SetSizer(wxSizer *sizer) +void wxWindowBase::SetSizer(wxSizer *sizer, bool deleteOld) { - if (m_windowSizer) delete m_windowSizer; + if (m_windowSizer && deleteOld) delete m_windowSizer; m_windowSizer = sizer; } -- 2.45.2