X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2d1df0fc585f03cca4b194d1f9159b49a5711da6..14619f10b0bdb630206607abd0ce0319d45e095a:/samples/docview/docview.cpp?ds=sidebyside diff --git a/samples/docview/docview.cpp b/samples/docview/docview.cpp index 3f0b6c747b..c8d4adcf73 100644 --- a/samples/docview/docview.cpp +++ b/samples/docview/docview.cpp @@ -7,7 +7,7 @@ // RCS-ID: $Id$ // Copyright: (c) 1998 Julian Smart // (c) 2008 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /* @@ -55,12 +55,13 @@ #include "view.h" #include "wx/cmdline.h" +#include "wx/config.h" #ifdef __WXMAC__ #include "wx/filename.h" #endif -#if !defined(__WXMSW__) && !defined(__WXPM__) +#ifndef wxHAS_IMAGES_IN_RESOURCES #include "doc.xpm" #include "chart.xpm" #include "notepad.xpm" @@ -148,7 +149,12 @@ bool MyApp::OnInit() if ( !wxApp::OnInit() ) return false; - SetAppName("DocView Sample"); + ::wxInitAllImageHandlers(); + + // Fill in the application information fields before creating wxConfig. + SetVendorName("wxWidgets"); + SetAppName("wx_docview_sample"); + SetAppDisplayName("wxWidgets DocView Sample"); //// Create a document manager wxDocManager *docManager = new wxDocManager; @@ -157,7 +163,7 @@ bool MyApp::OnInit() new wxDocTemplate(docManager, "Drawing", "*.drw", "", "drw", "Drawing Doc", "Drawing View", CLASSINFO(DrawingDocument), CLASSINFO(DrawingView)); -#ifdef __WXMAC__ +#if defined( __WXMAC__ ) && wxOSX_USE_CARBON wxFileName::MacRegisterDefaultTypeAndCreator("drw" , 'WXMB' , 'WXMA'); #endif @@ -173,9 +179,13 @@ bool MyApp::OnInit() new wxDocTemplate(docManager, "Text", "*.txt;*.text", "", "txt;text", "Text Doc", "Text View", CLASSINFO(TextEditDocument), CLASSINFO(TextEditView)); -#ifdef __WXMAC__ +#if defined( __WXMAC__ ) && wxOSX_USE_CARBON wxFileName::MacRegisterDefaultTypeAndCreator("txt" , 'TEXT' , 'WXMA'); #endif + // Create a template relating image documents to their views + new wxDocTemplate(docManager, "Image", "*.png;*.jpg", "", "png;jpg", + "Image Doc", "Image View", + CLASSINFO(ImageDocument), CLASSINFO(ImageView)); } // create the main frame window @@ -211,26 +221,34 @@ bool MyApp::OnInit() // A nice touch: a history of files visited. Use this menu. docManager->FileHistoryUseMenu(menuFile); +#if wxUSE_CONFIG + docManager->FileHistoryLoad(*wxConfig::Get()); +#endif // wxUSE_CONFIG + if ( m_mode == Mode_Single ) { m_canvas = new MyCanvas(NULL, frame); m_menuEdit = CreateDrawingEditMenu(); + docManager->CreateNewDocument(); } CreateMenuBarForFrame(frame, menuFile, m_menuEdit); frame->SetIcon(wxICON(doc)); - frame->Centre(wxBOTH); - frame->Show(true); + frame->Centre(); + frame->Show(); - SetTopWindow(frame); return true; } int MyApp::OnExit() { - delete wxDocManager::GetDocumentManager(); + wxDocManager * const manager = wxDocManager::GetDocumentManager(); +#if wxUSE_CONFIG + manager->FileHistorySave(*wxConfig::Get()); +#endif // wxUSE_CONFIG + delete manager; return wxApp::OnExit(); } @@ -240,6 +258,7 @@ void MyApp::AppendDocumentFileCommands(wxMenu *menu, bool supportsPrinting) menu->Append(wxID_CLOSE); menu->Append(wxID_SAVE); menu->Append(wxID_SAVEAS); + menu->Append(wxID_REVERT, _("Re&vert...")); if ( supportsPrinting ) { @@ -277,10 +296,11 @@ void MyApp::CreateMenuBarForFrame(wxFrame *frame, wxMenu *file, wxMenu *edit) frame->SetMenuBar(menubar); } -wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas) +wxFrame *MyApp::CreateChildFrame(wxView *view, bool isCanvas) { // create a child frame of appropriate class for the current mode wxFrame *subframe; + wxDocument *doc = view->GetDocument(); #if wxUSE_MDI_ARCHITECTURE if ( GetMode() == Mode_MDI ) { @@ -309,7 +329,7 @@ wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas) wxSize(300, 300) ); - subframe->Centre(wxBOTH); + subframe->Centre(); } wxMenu *menuFile = new wxMenu; @@ -366,15 +386,24 @@ void MyApp::OnAbout(wxCommandEvent& WXUNUSED(event)) wxFAIL_MSG( "unknown mode "); } +#ifdef __VISUALC6__ + const int docsCount = + wxDocManager::GetDocumentManager()->GetDocuments().GetCount(); +#else + const int docsCount = + wxDocManager::GetDocumentManager()->GetDocumentsVector().size(); +#endif + wxLogMessage ( "This is the wxWidgets Document/View Sample\n" "running in %s mode.\n" + "%d open documents.\n" "\n" "Authors: Julian Smart, Vadim Zeitlin\n" "\n" "Usage: docview [--{mdi,sdi,single}]", - modeName + modeName, + docsCount ); } -