X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..a7489b367d3dcf925dcd93d1b57370998d15d653:/src/common/docview.cpp diff --git a/src/common/docview.cpp b/src/common/docview.cpp index e22c78dd14..6f5aac75d9 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -36,6 +36,10 @@ #include "wx/filedlg.h" #endif +#ifdef __WXGTK__ +#include "wx/mdi.h" +#endif + #include "wx/msgdlg.h" #include "wx/choicdlg.h" #include "wx/docview.h" @@ -43,12 +47,6 @@ #include "wx/generic/prntdlgg.h" #include "wx/generic/printps.h" -/* -#ifdef __WINDOWS__ -#include "wx/mdi.h" -#endif -*/ - #include #include @@ -488,28 +486,7 @@ void wxView::OnChangeFilename(void) wxString name; GetDocument()->GetPrintableName(name); - // If the frame is an MDI child, just set the title - // to the name. - // Otherwise, append the document name to the name of the application -#ifdef __WINDOWS__ - if (GetFrame()->IsKindOf(CLASSINFO(wxMDIChildFrame))) -#else - if (FALSE) -#endif - { - GetFrame()->SetTitle(name); - } - else - { - if (wxTheApp->GetAppName() != "") - { - char buf[400]; - sprintf(buf, "%s - %s", (const char *)wxTheApp->GetAppName(), (const char *)name); - GetFrame()->SetTitle(buf); - } - else - GetFrame()->SetTitle(name); - } + GetFrame()->SetTitle(name); } } @@ -753,7 +730,7 @@ void wxDocManager::OnPrint(wxCommandEvent& WXUNUSED(event)) { // TODO: trouble about this is that it pulls in the postscript // code unecessarily -#ifdef __WINDOWS__ +#ifdef __WXMSW__ if ( wxTheApp->GetPrintMode() == wxPRINT_WINDOWS ) { wxWindowsPrinter printer; @@ -779,7 +756,7 @@ void wxDocManager::OnPrintSetup(wxCommandEvent& WXUNUSED(event)) wxPrintData data; -#ifdef __WINDOWS__ +#ifdef __WXMSW__ if ( wxTheApp->GetPrintMode() == wxPRINT_WINDOWS ) { wxPrintDialog printerDialog(parentWin, & data); @@ -806,12 +783,12 @@ void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event)) { // Pass two printout objects: for preview, and possible printing. wxPrintPreviewBase *preview = NULL; -#ifdef __WINDOWS__ +#ifdef __WXMSW__ if ( wxTheApp->GetPrintMode() == wxPRINT_WINDOWS ) preview = new wxWindowsPrintPreview(printout, view->OnCreatePrintout()); else #endif - preview = new wxPostScriptPrintPreview(printout, view->OnCreatePrintout()); + preview = new wxPostScriptPrintPreview(printout, view->OnCreatePrintout()); wxPreviewFrame *frame = new wxPreviewFrame(preview, (wxFrame *)wxTheApp->GetTopWindow(), "Print Preview", wxPoint(100, 100), wxSize(600, 650)); @@ -839,6 +816,30 @@ void wxDocManager::OnRedo(wxCommandEvent& WXUNUSED(event)) doc->GetCommandProcessor()->Redo(); } +wxView *wxDocManager::GetCurrentView(void) const +{ + if (m_currentView) + return m_currentView; + if (m_docs.Number() == 1) + { + wxDocument* doc = (wxDocument*) m_docs.First()->Data(); + return doc->GetFirstView(); + } + return NULL; +} + +// Extend event processing to search the view's event table +bool wxDocManager::ProcessEvent(wxEvent& event) +{ + wxView* view = GetCurrentView(); + if (view) + { + if (view->ProcessEvent(event)) + return TRUE; + } + return wxEvtHandler::ProcessEvent(event); +} + wxDocument *wxDocManager::CreateDocument(const wxString& path, long flags) { wxDocTemplate **templates = new wxDocTemplate *[m_templates.Number()]; @@ -1126,7 +1127,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, int noTemplates, wxString& path, long WXUNUSED(flags), bool WXUNUSED(save)) { // We can only have multiple filters in Windows -#ifdef __WINDOWS__ +#ifdef __WXMSW__ char *descrBuf = new char[1000]; descrBuf[0] = 0; int i; @@ -1307,9 +1308,9 @@ BEGIN_EVENT_TABLE(wxDocChildFrame, wxFrame) EVT_ACTIVATE(wxDocChildFrame::OnActivate) END_EVENT_TABLE() -wxDocChildFrame::wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, const wxString& title, - const wxPoint& pos, const wxSize& size, const long style, const wxString& name): - wxFrame(frame, -1, title, pos, size, style, name) +wxDocChildFrame::wxDocChildFrame(wxDocument *doc, wxView *view, wxFrame *frame, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, long style, const wxString& name): + wxFrame(frame, id, title, pos, size, style, name) { m_childDocument = doc; m_childView = view; @@ -1339,18 +1340,6 @@ bool wxDocChildFrame::ProcessEvent(wxEvent& event) return TRUE; } -/* -// Intercept menu commands -void wxDocChildFrame::OldOnMenuCommand(int id) -{ - if (m_childView) - m_childView->Activate(TRUE); - - if (GetParent()) - ((wxFrame *)GetParent())->OldOnMenuCommand(id); -} -*/ - void wxDocChildFrame::OnActivate(wxActivateEvent& event) { wxFrame::OnActivate(event); @@ -1385,12 +1374,12 @@ bool wxDocChildFrame::OnClose(void) BEGIN_EVENT_TABLE(wxDocParentFrame, wxFrame) EVT_MENU(wxID_EXIT, wxDocParentFrame::OnExit) - EVT_MENU_RANGE(wxID_FILE1, wxID_FILE2, wxDocParentFrame::OnMRUFile) + EVT_MENU_RANGE(wxID_FILE1, wxID_FILE9, wxDocParentFrame::OnMRUFile) END_EVENT_TABLE() -wxDocParentFrame::wxDocParentFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, - const wxPoint& pos, const wxSize& size, const long style, const wxString& name): - wxFrame(frame, -1, title, pos, size, style, name) +wxDocParentFrame::wxDocParentFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, long style, const wxString& name): + wxFrame(frame, id, title, pos, size, style, name) { m_docManager = manager; } @@ -1417,40 +1406,6 @@ bool wxDocParentFrame::ProcessEvent(wxEvent& event) return TRUE; } -/* -// Intercept menu commands -void wxDocParentFrame::OldOnMenuCommand(int id) -{ - switch (id) - { - case wxID_EXIT: - { - Close(); - break; - } - case wxID_FILE1: - case wxID_FILE2: - case wxID_FILE3: - case wxID_FILE4: - case wxID_FILE5: - case wxID_FILE6: - case wxID_FILE7: - case wxID_FILE8: - case wxID_FILE9: - { - wxString f(m_docManager->GetHistoryFile(id-wxID_FILE1)); - if (f != "") - (void)m_docManager->CreateDocument(f, wxDOC_SILENT); - break; - } - default: - { - m_docManager->OldOnMenuCommand(id); - } - } -} -*/ - // Define the behaviour for the frame closing // - must delete all frames except for the main one. bool wxDocParentFrame::OnClose(void)