// RCS-ID: $Id$
// Copyright: (c) 1998 Julian Smart
// (c) 2008 Vadim Zeitlin
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/*
#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"
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;
#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
// 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();
}
menu->Append(wxID_CLOSE);
menu->Append(wxID_SAVE);
menu->Append(wxID_SAVEAS);
+ menu->Append(wxID_REVERT, _("Re&vert..."));
if ( supportsPrinting )
{
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 )
{
wxSize(300, 300)
);
- subframe->Centre(wxBOTH);
+ subframe->Centre();
}
wxMenu *menuFile = new wxMenu;
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
);
}
-