X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/341287bf49066e5dd84e971bd508ee3919ff4b46..574c0bbfbd2096f7ee0d10ad7222bb012e6f5ad7:/src/generic/laywin.cpp diff --git a/src/generic/laywin.cpp b/src/generic/laywin.cpp index 2d27635bd9..c7d54c931d 100644 --- a/src/generic/laywin.cpp +++ b/src/generic/laywin.cpp @@ -48,16 +48,13 @@ wxSashLayoutWindow::wxSashLayoutWindow(wxWindow *parent, wxWindowID id, const wx m_alignment = wxLAYOUT_TOP; } -// These are the functions that wxWin will call to ascertain the window +// This is the function that wxLayoutAlgorithm calls to ascertain the window // dimensions. void wxSashLayoutWindow::OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event) { // int flags = event.GetFlags(); int requestedLength = event.GetRequestedLength(); - // This code won't be in the final thing, it's just so we don't have to give it - // real windows: mock up some dimensions. - event.SetOrientation(m_orientation); event.SetAlignment(m_alignment); @@ -69,7 +66,6 @@ void wxSashLayoutWindow::OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event) // Called by parent to allow window to take a bit out of the // client rectangle, and size itself if not in wxLAYOUT_QUERY mode. -// Will eventually be an event. void wxSashLayoutWindow::OnCalculateLayout(wxCalculateLayoutEvent& event) { @@ -168,17 +164,19 @@ void wxSashLayoutWindow::OnCalculateLayout(wxCalculateLayoutEvent& event) // Lays out windows for an MDI frame. The MDI client area gets what's left // over. -bool wxLayoutAlgorithm::LayoutMDIFrame(wxMDIParentFrame* frame) +bool wxLayoutAlgorithm::LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* r) { int cw, ch; frame->GetClientSize(& cw, & ch); wxRect rect(0, 0, cw, ch); + if (r) + rect = * r; wxCalculateLayoutEvent event; event.SetRect(rect); - wxNode* node = frame->GetChildren()->First(); + wxNode* node = frame->GetChildren().First(); while (node) { wxWindow* win = (wxWindow*) node->Data(); @@ -212,7 +210,7 @@ bool wxLayoutAlgorithm::LayoutFrame(wxFrame* frame, wxWindow* mainWindow) wxCalculateLayoutEvent event; event.SetRect(rect); - wxNode* node = frame->GetChildren()->First(); + wxNode* node = frame->GetChildren().First(); while (node) { wxWindow* win = (wxWindow*) node->Data(); @@ -228,7 +226,8 @@ bool wxLayoutAlgorithm::LayoutFrame(wxFrame* frame, wxWindow* mainWindow) rect = event.GetRect(); - mainWindow->SetSize(rect.x, rect.y, rect.width, rect.height); + if (mainWindow) + mainWindow->SetSize(rect.x, rect.y, rect.width, rect.height); return TRUE; }