X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fctsim.cpp;h=d24d9797cc0a69dc7a70ee6a90927cf21ee7b9b1;hb=5f4aaf9a5ecff050f19a405bd274353a1b935163;hp=bbb3d4b7c2a7eeb036c3baf4f62fad1c3fa7c6a3;hpb=af2b058715fb690c708734708ac178490371b3ad;p=ctsim.git diff --git a/src/ctsim.cpp b/src/ctsim.cpp index bbb3d4b..d24d979 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.48 2001/01/27 01:57:29 kevin Exp $ +** $Id: ctsim.cpp,v 1.56 2001/01/28 22:45:54 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -70,7 +70,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.48 2001/01/27 01:57:29 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.56 2001/01/28 22:45:54 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -101,10 +101,10 @@ CTSimApp::OnInit() #ifdef HAVE_SETPRIORITY setpriority (PRIO_PROCESS, 0, 15); // set to low scheduling priority #endif - + m_pConfig = new wxConfig("ctsim"); wxConfigBase::Set(m_pConfig); - + g_bRunningWXWindows = true; // process options while (1) { @@ -157,7 +157,7 @@ CTSimApp::OnInit() m_pFrame->Centre(wxBOTH); m_pFrame->Show(true); SetTopWindow (m_pFrame); - + for (int i = optind + 1; i <= argc; i++) { wxString filename = argv [i - 1]; m_docManager->CreateDocument (filename, wxDOC_SILENT); @@ -165,14 +165,7 @@ CTSimApp::OnInit() if (m_pConfig) m_docManager->FileHistoryLoad(*m_pConfig); - -#ifdef CTSIM_WINHELP - if (! m_pFrame->getWinHelpController().Initialize("ctsim")) - ::wxMessageBox ("Cannot initialize the help system", "Error"); -#endif - if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim")) - ::wxMessageBox ("Cannot initialize the help system", "Error"); - + #ifdef CTSIM_MDI TextFileDocument* pLogDoc = newTextDoc(); if (pLogDoc) { @@ -184,12 +177,20 @@ CTSimApp::OnInit() m_pFrame->GetClientSize(&xSize, &ySize); int yLogSize = ySize / 3; pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize); + pLogDoc->getView()->getFrame()->Show (true); } else #else m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY); #endif wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog)); - + +#ifdef CTSIM_WINHELP + if (! m_pFrame->getWinHelpController().Initialize("ctsim")) + *m_pLog << "Cannot initialize the Windows Help system" << "\n"; +#endif + if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim")) + *m_pLog << "Cannot initialize the HTML Help system" << "\n"; + return true; } @@ -305,12 +306,12 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const // history of files visited theApp->getDocManager()->FileHistoryAddFilesToMenu(file_menu); theApp->getDocManager()->FileHistoryUseMenu(file_menu); - + #ifndef CTSIM_MDI m_pWindowMenu = new wxMenu; m_pWindowMenu->UpdateUI (this); #endif - + wxMenu* help_menu = new wxMenu; help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); @@ -337,7 +338,7 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false); } #endif - + m_iDefaultPhantomID = Phantom::PHM_HERMAN; m_iDefaultFilterID = SignalFilter::FILTER_BANDLIMIT; m_iDefaultFilterDomainID = SignalFilter::DOMAIN_FREQUENCY; @@ -361,15 +362,16 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const #else wxAcceleratorTable accelTable (4, accelEntries); #endif - + SetAcceleratorTable (accelTable); } MainFrame::~MainFrame() { - if (theApp->getConfig()) - theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); - delete theApp->getDocManager(); + if (theApp->getConfig()) + theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); + delete theApp->getDocManager(); + } void @@ -392,9 +394,9 @@ MainFrame::OnSize (wxSizeEvent& event) } sizeClient.x -= sizeLog.x; sizeClient.y -= sizeLog.y; -// m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y); -// GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y); -// GetClientWindow()->Refresh(); + // m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y); + // GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y); + // GetClientWindow()->Refresh(); #if CTSIM_MDI wxDocMDIParentFrame::OnSize (event); #else @@ -440,7 +442,7 @@ MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event)) << ", inputScale=" << m_dDefaultFilterInputScale << ", outputScale=" << m_dDefaultFilterOutputScale; *theApp->getLog() << os.str().c_str() << "\n"; wxString filename = "untitled.if"; - ImageFileDocument* pFilterDoc = dynamic_cast(theApp->getDocManager()->CreateDocument ("untitled.if", wxDOC_SILENT)); + ImageFileDocument* pFilterDoc = theApp->newImageDoc(); if (! pFilterDoc) { sys_error (ERR_SEVERE, "Unable to create filter image"); return; @@ -453,6 +455,8 @@ MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event)) pFilterDoc->Modify (true); pFilterDoc->UpdateAllViews(); pFilterDoc->GetFirstView()->OnUpdate (NULL, NULL); + pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize); + pFilterDoc->getView()->getFrame()->Show(true); } } @@ -490,7 +494,7 @@ MainFrame::OnHelpContents (wxCommandEvent& event) void MainFrame::OnHelpSecondary (wxCommandEvent& event) { - m_htmlHelp.DisplayContents(); + m_htmlHelp.DisplayContents(); } #endif @@ -504,7 +508,7 @@ MainFrame::showHelp (int commandID) #endif switch (commandID) { - + case MAINMENU_HELP_CONTENTS: #ifdef CTSIM_WINHELP m_winHelp.DisplayContents (); @@ -512,7 +516,7 @@ MainFrame::showHelp (int commandID) m_htmlHelp.DisplayContents (); #endif break; - + case MAINMENU_HELP_TOPICS: #ifdef CTSIM_WINHELP m_winHelp.DisplaySection (introduction); @@ -520,7 +524,7 @@ MainFrame::showHelp (int commandID) m_htmlHelp.DisplayIndex(); #endif break; - + default: *theApp->getLog() << "Unknown help command # " << commandID << "\n"; break; @@ -564,9 +568,9 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent) void MainFrame::OnMRUFile (wxCommandEvent& event) { - wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetId() - wxID_FILE1)); - if (fileName != "") - theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT); + wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetId() - wxID_FILE1)); + if (fileName != "") + theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT); } #endif @@ -768,67 +772,59 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) ProjectionFileDocument* CTSimApp::newProjectionDoc() { - wxString strFilename (getUntitledFilename()); - strFilename += ".pj"; - - ProjectionFileDocument* newDoc = dynamic_cast(m_pDocTemplProjection->CreateDocument (strFilename)); + ProjectionFileDocument* newDoc = dynamic_cast(m_pDocTemplProjection->CreateDocument ("")); if (newDoc) { ProjectionFileView* pView = newDoc->getView(); if (pView) { wxFrame* pFrame = pView->getFrame(); if (pFrame) { - pFrame->SetSize(0,0); + pFrame->SetSize (0,0); pFrame->Show (false); } } newDoc->OnNewDocument(); -// newDoc->SetFilename(strFilename, true); } - + return newDoc; } ImageFileDocument* CTSimApp::newImageDoc() { - wxString strFilename (getUntitledFilename()); - strFilename += ".pj"; - - ImageFileDocument* newDoc = dynamic_cast(m_pDocTemplImage->CreateDocument (strFilename)); + ImageFileDocument* newDoc = dynamic_cast(m_pDocTemplImage->CreateDocument ("")); if (newDoc) { ImageFileView* pView = newDoc->getView(); if (pView) { wxFrame* pFrame = pView->getFrame(); if (pFrame) { - pFrame->SetSize(0,0); + pFrame->SetSize (0,0); pFrame->Show (false); } } newDoc->OnNewDocument(); -// newDoc->SetFilename(strFilename, true); } - + return newDoc; } PlotFileDocument* CTSimApp::newPlotDoc() { - wxString strFilename (getUntitledFilename()); - strFilename += ".plt"; - - PlotFileDocument* newDoc = dynamic_cast(m_pDocTemplPlot->CreateDocument (strFilename)); + PlotFileDocument* newDoc = dynamic_cast(m_pDocTemplPlot->CreateDocument ("")); if (newDoc) { PlotFileView* pView = newDoc->getView(); if (pView) { wxFrame* pFrame = pView->getFrame(); - if (pFrame) - pFrame->SetSize(0,0); + if (pFrame) { + wxSize size; + m_pFrame->GetClientSize (&size.x, &size.y); + pFrame->SetSize (size.x / 2, size.y / 2); + pFrame->Show (false); + } } newDoc->OnNewDocument(); -// newDoc->SetFilename(strFilename, true); } - + return newDoc; } @@ -838,19 +834,22 @@ CTSimApp::newTextDoc() { wxString strFilename (getUntitledFilename()); strFilename += ".txt"; - - TextFileDocument* newDoc = dynamic_cast(m_pDocTemplText->CreateDocument (strFilename)); + + TextFileDocument* newDoc = dynamic_cast(m_pDocTemplText->CreateDocument ("")); if (newDoc) { TextFileView* pView = newDoc->getView(); if (pView) { wxFrame* pFrame = pView->getFrame(); - if (pFrame) - pFrame->SetSize(0,0); + if (pFrame) { + wxSize size; + m_pFrame->GetClientSize (&size.x, &size.y);; + pFrame->SetSize (size.x / 2, size.y / 2); + pFrame->Show (false); + } } newDoc->OnNewDocument(); -// newDoc->SetFilename(strFilename, true); } - + return newDoc; } @@ -858,20 +857,16 @@ CTSimApp::newTextDoc() PhantomFileDocument* CTSimApp::newPhantomDoc() { - wxString strFilename (getUntitledFilename()); - strFilename += ".phm"; - - PhantomFileDocument* newDoc = dynamic_cast(m_pDocTemplPhantom->CreateDocument (strFilename)); + PhantomFileDocument* newDoc = dynamic_cast(m_pDocTemplPhantom->CreateDocument ("")); if (newDoc) { PhantomFileView* pView = newDoc->getView(); if (pView) { wxFrame* pFrame = pView->getFrame(); if (pFrame) - pFrame->SetSize(0,0); + pFrame->SetSize (0,0); } newDoc->OnNewDocument(); -// newDoc->SetFilename(strFilename, true); } - + return newDoc; }