X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bb64b8bdd51dfcf47b938b648cc8a4e048aff3ea..967d3d97839afc098999cee27e0c8c70fa42294c:/src/mac/carbon/mdi.cpp diff --git a/src/mac/carbon/mdi.cpp b/src/mac/carbon/mdi.cpp index ee4db9c392..ef630d2fc8 100644 --- a/src/mac/carbon/mdi.cpp +++ b/src/mac/carbon/mdi.cpp @@ -1,20 +1,21 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp +// Name: src/mac/carbon/mdi.cpp // Purpose: MDI classes // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 // RCS-ID: $Id$ // Copyright: (c) Stefan Csomor -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #include "wx/wxprec.h" #if wxUSE_MDI +#include "wx/mdi.h" + #ifndef WX_PRECOMP - #include "wx/mdi.h" #include "wx/log.h" #include "wx/menu.h" #include "wx/settings.h" @@ -31,30 +32,21 @@ IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) + EVT_ACTIVATE(wxMDIParentFrame::OnActivate) + EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) END_EVENT_TABLE() BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) + EVT_SCROLL(wxMDIClientWindow::OnScroll) END_EVENT_TABLE() static const wxChar *TRACE_MDI = _T("mdi"); -static const int IDM_WINDOWTILE = 4001; static const int IDM_WINDOWTILEHOR = 4001; static const int IDM_WINDOWCASCADE = 4002; static const int IDM_WINDOWICONS = 4003; static const int IDM_WINDOWNEXT = 4004; static const int IDM_WINDOWTILEVERT = 4005; -static const int IDM_WINDOWPREV = 4006; - -// This range gives a maximum of 500 MDI children. Should be enough :-) -static const int wxFIRST_MDI_CHILD = 4100; -static const int wxLAST_MDI_CHILD = 4600; - -// Status border dimensions -static const int wxTHICK_LINE_BORDER = 3; // ---------------------------------------------------------------------------- // Parent frame @@ -131,6 +123,9 @@ void wxMDIParentFrame::GetRectForTopLevelChildren(int *x, int *y, int *w, int *h void wxMDIParentFrame::AddChild(wxWindowBase *child) { + // moved this to front, so that we don't run into unset m_parent problems later + wxFrame::AddChild(child); + if ( !m_currentChild ) { m_currentChild = wxDynamicCast(child, wxMDIChildFrame); @@ -142,8 +137,6 @@ void wxMDIParentFrame::AddChild(wxWindowBase *child) m_shouldBeShown = true; } } - - wxFrame::AddChild(child); } void wxMDIParentFrame::RemoveChild(wxWindowBase *child) @@ -302,7 +295,7 @@ bool wxMDIParentFrame::ShouldBeVisible() const if ( win->IsShown() && !wxDynamicCast(win, wxMDIChildFrame) #if wxUSE_STATUSBAR - && win != GetStatusBar() + && win != (wxWindow*) GetStatusBar() #endif && win != GetClientWindow() ) { @@ -350,19 +343,19 @@ void wxMDIChildFrame::Init() } bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) + wxWindowID id, + const wxString& title, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name) { SetName(name); - if ( id > -1 ) - m_windowId = id; - else + if ( id == wxID_ANY ) m_windowId = (int)NewControlId(); + else + m_windowId = id; if (parent) parent->AddChild(this); @@ -373,7 +366,7 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, wxModelessWindows.Append(this); - return false; + return true; } wxMDIChildFrame::~wxMDIChildFrame() @@ -492,4 +485,3 @@ void wxMDIClientWindow::OnScroll(wxScrollEvent& event) } #endif // wxUSE_MDI -