X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=9befa24c35cbc67c036c3e0d36df8b51d6adf6a5;hp=7053981728305fe5e96dbc6e354efe34840b4c7a;hb=52e0918dbbadcf53d4f4a9d1ec1748f854a4e4bf;hpb=ed6d29bce60de67791eaab35833c32c86c481af3 diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 7053981..9befa24 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -1063,36 +1063,40 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) // Create new documents -ProjectionFileDocument* -CTSimApp::newProjectionDoc() -{ - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".pj"); - ProjectionFileDocument* newDoc = dynamic_cast(m_pDocTemplProjection->CreateDocument (fname)); +wxDocument* +CTSimApp::newDocumentHelper (wxDocTemplate* tmpl) { + wxDocument* newDoc = tmpl->CreateDocument (_T("")); if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplProjection->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplProjection); + newDoc->SetDocumentTemplate (tmpl); newDoc->OnNewDocument(); - newDoc->SetFilename(fname); + wxString fname = newDoc->GetFilename(); + fname += _T("."); + fname += tmpl->GetDefaultExtension(); + newDoc->SetDocumentName(fname); + newDoc->SetTitle(fname); + newDoc->SetFilename(fname, true); } return newDoc; } +ProjectionFileDocument* +CTSimApp::newProjectionDoc() +{ + ProjectionFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplProjection)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); + return newDoc; +} + ImageFileDocument* CTSimApp::newImageDoc() { - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".if"); - ImageFileDocument* newDoc = dynamic_cast(m_pDocTemplImage->CreateDocument (fname)); - if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplImage->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplImage); - newDoc->OnNewDocument(); - newDoc->SetFilename(fname); - } + ImageFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplImage)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); return newDoc; } @@ -1100,16 +1104,10 @@ CTSimApp::newImageDoc() PlotFileDocument* CTSimApp::newPlotDoc() { - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".plt"); - PlotFileDocument* newDoc = dynamic_cast(m_pDocTemplPlot->CreateDocument (fname)); - if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplPlot->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplPlot); - newDoc->OnNewDocument(); - newDoc->SetFilename(fname); - } + PlotFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplPlot)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); return newDoc; } @@ -1118,17 +1116,10 @@ CTSimApp::newPlotDoc() TextFileDocument* CTSimApp::newTextDoc() { - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".txt"); - - TextFileDocument* newDoc = dynamic_cast(m_pDocTemplText->CreateDocument (fname)); - if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplText->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplText); - newDoc->OnNewDocument(); - newDoc->SetFilename (fname); - } + TextFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplText)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); return newDoc; } @@ -1137,16 +1128,10 @@ CTSimApp::newTextDoc() PhantomFileDocument* CTSimApp::newPhantomDoc() { - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".phm"); - PhantomFileDocument* newDoc = dynamic_cast(m_pDocTemplPhantom->CreateDocument (fname)); - if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplPhantom->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplPhantom); - newDoc->OnNewDocument(); - newDoc->SetFilename(fname); - } + PhantomFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplPhantom)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); return newDoc; } @@ -1156,16 +1141,10 @@ CTSimApp::newPhantomDoc() Graph3dFileDocument* CTSimApp::newGraph3dDoc() { - wxString fname; - m_docManager->MakeDefaultName(fname); - fname += _T(".g3d"); - Graph3dFileDocument* newDoc = dynamic_cast(m_pDocTemplGraph3d->CreateDocument (fname)); - if (newDoc) { - newDoc->SetDocumentName (m_pDocTemplGraph3d->GetDocumentName()); - newDoc->SetDocumentTemplate (m_pDocTemplGraph3d); - newDoc->OnNewDocument(); - newDoc->SetFilename(fname); - } + Graph3dFileDocument* newDoc = dynamic_cast + (newDocumentHelper(m_pDocTemplGraph3d)); + if (newDoc) + newDoc->getView()->getFrame()->SetTitle(newDoc->GetDocumentName()); return newDoc; }