X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/489468feaa08b8f504735eecca522fb8d0f825d2..aa926768a9329b4eb4804c89de8da2061549708d:/src/osx/carbon/mdi.cpp diff --git a/src/osx/carbon/mdi.cpp b/src/osx/carbon/mdi.cpp index ca02c69c0d..f236d572a4 100644 --- a/src/osx/carbon/mdi.cpp +++ b/src/osx/carbon/mdi.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/mac/carbon/mdi.cpp +// Name: src/osx/carbon/mdi.cpp // Purpose: MDI classes // Author: Stefan Csomor // Modified by: @@ -22,8 +22,8 @@ #include "wx/statusbr.h" #endif -#include "wx/mac/private.h" -#include "wx/mac/uma.h" +#include "wx/osx/private.h" +#include "wx/osx/uma.h" IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) @@ -34,10 +34,6 @@ BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) END_EVENT_TABLE() -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - #define TRACE_MDI "mdi" static const int IDM_WINDOWTILEHOR = 4001; @@ -50,7 +46,7 @@ static const int IDM_WINDOWTILEVERT = 4005; void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate ) { -#if 1 // TODO REMOVE +#if wxOSX_USE_CARBON // TODO REMOVE if ( inWindowRef ) { // bool isHighlighted = IsWindowHighlited( inWindowRef ) ; @@ -74,6 +70,10 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate ) SetPort( port ) ; #endif } +#elif defined(wxOSX_USE_COCOA) + wxUnusedVar(inActivate); + wxUnusedVar(inWindowRef); +// TODO: implement me! #endif } @@ -83,9 +83,6 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate ) void wxMDIParentFrame::Init() { - m_clientWindow = NULL; - m_currentChild = NULL; - m_windowMenu = (wxMenu*) NULL; m_parentFrameActive = true; m_shouldBeShown = false; } @@ -102,7 +99,7 @@ bool wxMDIParentFrame::Create(wxWindow *parent, // "Window" menu if ( style & wxFRAME_NO_WINDOW_MENU ) { - m_windowMenu = (wxMenu *)NULL; + m_windowMenu = NULL; style -= wxFRAME_NO_WINDOW_MENU ; } else // normal case: we have the window menu, so construct it @@ -123,8 +120,10 @@ bool wxMDIParentFrame::Create(wxWindow *parent, m_parentFrameActive = true; m_clientWindow = OnCreateClient(); + if ( !m_clientWindow || !m_clientWindow->CreateClient(this, style) ) + return false; - return m_clientWindow != NULL; + return true; } wxMDIParentFrame::~wxMDIParentFrame() @@ -133,8 +132,6 @@ wxMDIParentFrame::~wxMDIParentFrame() // already deleted by DestroyChildren() m_clientWindow = NULL ; - - delete m_windowMenu; } void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) @@ -218,7 +215,7 @@ void wxMDIParentFrame::MacActivate(long timestamp, bool activating) { wxLogTrace(TRACE_MDI, wxT("child had been scheduled for deactivation, rehighlighting")); - UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->MacGetWindowRef(), true); + UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->GetWXWindow(), true); wxLogTrace(TRACE_MDI, wxT("finished highliting child")); @@ -252,7 +249,9 @@ void wxMDIParentFrame::MacActivate(long timestamp, bool activating) else // schedule ourselves for deactivation { if (s_macDeactivateWindow) + { wxLogTrace(TRACE_MDI, wxT("window=%p SHOULD have been deactivated, oh well!"), s_macDeactivateWindow); + } wxLogTrace(TRACE_MDI, wxT("Scheduling delayed MDI Parent deactivation")); s_macDeactivateWindow = this; @@ -265,19 +264,6 @@ void wxMDIParentFrame::OnActivate(wxActivateEvent& event) event.Skip(); } -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - return m_currentChild ; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow( this ); -} - // Responds to colour changes, and passes event on to children. void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) { @@ -287,32 +273,6 @@ void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) wxFrame::OnSysColourChanged(event); } -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile(wxOrientation WXUNUSED(orient)) -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - bool wxMDIParentFrame::ShouldBeVisible() const { for ( wxWindowList::compatibility_iterator node = GetChildren().GetFirst(); @@ -363,10 +323,6 @@ bool wxMDIParentFrame::Show( bool show ) // Child frame // ---------------------------------------------------------------------------- -wxMDIChildFrame::wxMDIChildFrame() -{ - Init() ; -} void wxMDIChildFrame::Init() { } @@ -379,17 +335,15 @@ bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, long style, const wxString& name) { + m_mdiParent = parent; + SetName(name); if ( id == wxID_ANY ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; + id = (int)NewControlId(); - if (parent) - parent->AddChild(this); + wxNonOwnedWindow::Create( parent, id, pos , size , MacRemoveBordersFromStyle(style) , name ) ; - MacCreateRealWindow( pos , size , MacRemoveBordersFromStyle(style) , name ) ; SetTitle( title ); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_APPWORKSPACE)); @@ -402,11 +356,6 @@ wxMDIChildFrame::~wxMDIChildFrame() DestroyChildren(); } -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - return wxFrame::SetMenuBar( menu_bar ) ; -} - void wxMDIChildFrame::MacActivate(long timestamp, bool activating) { wxLogTrace(TRACE_MDI, wxT("MDI child=%p MacActivate(0x%08lx,%s)"),this, timestamp, activating ? wxT("ACTIV") : wxT("deact")); @@ -420,7 +369,7 @@ void wxMDIChildFrame::MacActivate(long timestamp, bool activating) { wxLogTrace(TRACE_MDI, wxT("parent had been scheduled for deactivation, rehighlighting")); - UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->MacGetWindowRef(), true); + UMAHighlightAndActivateWindow((WindowRef)s_macDeactivateWindow->GetWXWindow(), true); wxLogTrace(TRACE_MDI, wxT("finished highliting parent")); @@ -455,7 +404,9 @@ void wxMDIChildFrame::MacActivate(long timestamp, bool activating) else // schedule ourselves for deactivation { if (s_macDeactivateWindow) + { wxLogTrace(TRACE_MDI, wxT("window=%p SHOULD have been deactivated, oh well!"), s_macDeactivateWindow); + } wxLogTrace(TRACE_MDI, wxT("Scheduling delayed deactivation")); s_macDeactivateWindow = this; @@ -464,16 +415,6 @@ void wxMDIChildFrame::MacActivate(long timestamp, bool activating) } // MDI operations -void wxMDIChildFrame::Maximize() -{ - wxFrame::Maximize() ; -} - -void wxMDIChildFrame::Restore() -{ - wxFrame::Restore() ; -} - void wxMDIChildFrame::Activate() { Raise (); @@ -483,10 +424,6 @@ void wxMDIChildFrame::Activate() // wxMDIClientWindow //----------------------------------------------------------------------------- -wxMDIClientWindow::wxMDIClientWindow() -{ -} - wxMDIClientWindow::~wxMDIClientWindow() { DestroyChildren(); @@ -500,15 +437,9 @@ bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) return true; } -// Get size *available for subwindows* i.e. excluding menu bar. void wxMDIClientWindow::DoGetClientSize(int *x, int *y) const { wxDisplaySize( x , y ) ; } -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& WXUNUSED(event)) -{ -} - #endif // wxUSE_MDI