From 156ab66d5b7bc189ef680ab29c34f5cb33c10384 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 12 Mar 2005 20:57:14 +0000 Subject: [PATCH] "As is" means the current size (or position) not the best size. Factored out AsIs size calculations to an inline so it can be experimented with further if desired. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/layout.cpp | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/common/layout.cpp b/src/common/layout.cpp index c542527219..f94d850617 100644 --- a/src/common/layout.cpp +++ b/src/common/layout.cpp @@ -48,6 +48,32 @@ IMPLEMENT_DYNAMIC_CLASS(wxLayoutConstraints, wxObject) + +inline void wxGetAsIs(wxWindowBase* win, int* w, int* h) +{ +#if 1 + // The old way. Works for me. + win->GetSize(w, h); +#endif + +#if 0 + // Vadim's change. Breaks wxPython's LayoutAnchors + win->GetBestSize(w, h); +#endif + +#if 0 + // Proposed compromise. Doesn't work. + int sw, sh, bw, bh; + win->GetSize(&sw, &sh); + win->GetBestSize(&bw, &bh); + if (w) + *w = wxMax(sw, bw); + if (h) + *h = wxMax(sh, bh); +#endif +} + + wxIndividualLayoutConstraint::wxIndividualLayoutConstraint() { myEdge = wxTop; @@ -300,7 +326,7 @@ bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constr { int x, y; int w, h; - win->GetBestSize(&w, &h); + wxGetAsIs(win, &w, &h); win->GetPosition(&x, &y); value = x + w; done = true; @@ -453,7 +479,7 @@ bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constr { int x, y; int w, h; - win->GetBestSize(&w, &h); + wxGetAsIs(win, &w, &h); win->GetPosition(&x, &y); value = h + y; done = true; @@ -621,7 +647,7 @@ bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constr if (win) { int h; - win->GetBestSize(&value, &h); + wxGetAsIs(win, &value, &h); done = true; return true; } @@ -679,7 +705,7 @@ bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constr if (win) { int w; - win->GetBestSize(&w, &value); + wxGetAsIs(win, &w, &value); done = true; return true; } -- 2.50.0