]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/docview.cpp
check that wxTheApp != NULL in wxLog::GetActiveTarget
[wxWidgets.git] / src / common / docview.cpp
index e22c78dd1421d27ef19b9fc53c6299415d674080..6f5aac75d989faa0d3fa610d527b1cc515c08fa0 100644 (file)
 #include "wx/filedlg.h"
 #endif
 
+#ifdef __WXGTK__
+#include "wx/mdi.h"
+#endif
+
 #include "wx/msgdlg.h"
 #include "wx/choicdlg.h"
 #include "wx/docview.h"
 #include "wx/generic/prntdlgg.h"
 #include "wx/generic/printps.h"
 
-/*
-#ifdef __WINDOWS__
-#include "wx/mdi.h"
-#endif
-*/
-
 #include <stdio.h>
 #include <string.h>
 
@@ -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)