X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=0d459ad784a6d8c0458043bce3c6b2aac274f543;hp=6207a0ff5ac987517f6070daa949a7b4cd4fb692;hb=df521cfe14a9e0b47bdcd98d1f67d03acf242162;hpb=d061f33eb1cbb70b365b1dc5b4c773c410cd6bf1 diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 6207a0f..0d459ad 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -7,9 +7,9 @@ ** Date Started: July 2000 ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.84 2001/02/21 00:34:12 kevin Exp $ +** $Id: ctsim.cpp,v 1.89 2001/02/25 10:52:55 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 @@ -29,13 +29,8 @@ #define strdup _strdup #endif -// For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - #ifndef WX_PRECOMP #include "wx/wx.h" #endif @@ -57,6 +52,8 @@ #include "docs.h" #include "views.h" #include "dialogs.h" +#include "tips.h" +#include "backgroundmgr.h" #if defined(HAVE_CONFIG_H) #include "config.h" @@ -72,7 +69,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.84 2001/02/21 00:34:12 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.89 2001/02/25 10:52:55 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -85,7 +82,8 @@ struct option CTSimApp::ctsimOptions[] = IMPLEMENT_APP(CTSimApp) CTSimApp::CTSimApp() -: m_bAdvancedOptions(false), m_bSetModifyNewDocs(true), +: m_bAdvancedOptions(false), m_bSetModifyNewDocs(true), m_bVerboseLogging(false), m_bShowStartupTips(true), + m_iCurrentTip(0), m_bUseBackgroundTasks(false), m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_pConfig(0) { theApp = this; @@ -228,10 +226,21 @@ CTSimApp::OnInit() m_pFrame->AddPendingEvent(closeEvent); } + if (getStartupTips()) + ShowTips(); + m_pBackgroundMgr = new BackgroundManager; return true; } +void +CTSimApp::ShowTips() +{ + CTSimTipProvider tipProvider (m_iCurrentTip); + setStartupTips (::wxShowTip (m_pFrame, &tipProvider, getStartupTips())); + m_iCurrentTip = tipProvider.GetCurrentTip(); +} + #include "./ctsim.xpm" void @@ -276,6 +285,10 @@ CTSimApp::openConfig() wxConfigBase::Set(m_pConfig); m_pConfig->Read ("AdvancedOptions", &m_bAdvancedOptions); m_pConfig->Read ("SetModifyNewDocs", &m_bSetModifyNewDocs); + m_pConfig->Read ("VerboseLogging", &m_bVerboseLogging); + m_pConfig->Read ("StartupTips", &m_bShowStartupTips); + m_pConfig->Read ("CurrentTip", &m_iCurrentTip); + m_pConfig->Read ("UseBackgroundTasks", &m_bUseBackgroundTasks); } void @@ -283,6 +296,11 @@ CTSimApp::closeConfig() { m_pConfig->Write ("AdvancedOptions", m_bAdvancedOptions); m_pConfig->Write ("SetModifyNewDocs", m_bSetModifyNewDocs); + m_pConfig->Write ("VerboseLogging", m_bVerboseLogging); + m_pConfig->Write ("StartupTips", m_bShowStartupTips); + m_pConfig->Write ("CurrentTip", m_iCurrentTip); + m_pConfig->Write ("UseBackgroundTasks", m_bUseBackgroundTasks); + delete m_pConfig; } @@ -314,7 +332,9 @@ BEGIN_EVENT_TABLE(MainFrame, wxDocParentFrame) EVT_MENU(MAINMENU_FILE_PREFERENCES, MainFrame::OnPreferences) EVT_MENU(MAINMENU_HELP_ABOUT, MainFrame::OnAbout) EVT_MENU(MAINMENU_HELP_CONTENTS, MainFrame::OnHelpContents) +EVT_MENU(MAINMENU_HELP_TIPS, MainFrame::OnHelpTips) EVT_MENU(IDH_QUICKSTART, MainFrame::OnHelpButton) +EVT_MENU(MAINMENU_LOG_EVENT, MainFrame::OnLogEvent) EVT_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton) EVT_BUTTON(IDH_DLG_PROJECTIONS, MainFrame::OnHelpButton) EVT_BUTTON(IDH_DLG_RECONSTRUCTION, MainFrame::OnHelpButton) @@ -393,7 +413,7 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxMenu* help_menu = new wxMenu; help_menu->Append (MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - + help_menu->Append (MAINMENU_HELP_TIPS, "&Tips"); help_menu->Append (IDH_QUICKSTART, "&Quick Start"); #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) help_menu->Append (MAINMENU_HELP_SECONDARY, "&Secondary Help"); @@ -494,7 +514,8 @@ MainFrame::OnCreatePhantom(wxCommandEvent& event) int dialogReturn = dialogPhantom.ShowModal(); if (dialogReturn == wxID_OK) { wxString selection (dialogPhantom.getPhantom()); - *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n"; + if (theApp->getVerboseLogging()) + *theApp->getLog() << "Selected phantom " << selection.c_str() << "\n"; wxString filename = selection + ".phm"; m_iDefaultPhantomID = Phantom::convertNameToPhantomID (selection.c_str()); theApp->getDocManager()->CreateDocument (filename, wxDOC_SILENT); @@ -535,7 +556,8 @@ MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event)) rIF.setArraySize (m_iDefaultFilterXSize, m_iDefaultFilterYSize); rIF.filterResponse (strDomain.c_str(), m_dDefaultFilterBandwidth, strFilter.c_str(), m_dDefaultFilterParam, m_dDefaultFilterInputScale, m_dDefaultFilterOutputScale); rIF.labelAdd (os.str().c_str()); - pFilterDoc->Modify (true); + if (theApp->getAskDeleteNewDocs()) + pFilterDoc->Modify (true); pFilterDoc->UpdateAllViews(); pFilterDoc->GetFirstView()->OnUpdate (NULL, NULL); pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize); @@ -562,6 +584,18 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vectorgetLog() << event.GetString(); +} + +void +MainFrame::OnHelpTips (wxCommandEvent& event) +{ + theApp->ShowTips(); +} + void MainFrame::OnHelpContents (wxCommandEvent& event) { @@ -825,10 +859,14 @@ void MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) ) { DialogPreferences dlg (this, "CTSim Preferences", theApp->getAdvancedOptions(), - theApp->getAskDeleteNewDocs()); + theApp->getAskDeleteNewDocs(), theApp->getVerboseLogging(), theApp->getStartupTips(), + theApp->getUseBackgroundTasks()); if (dlg.ShowModal() == wxID_OK) { theApp->setAdvancedOptions (dlg.getAdvancedOptions()); theApp->setAskDeleteNewDocs (dlg.getAskDeleteNewDocs()); + theApp->setVerboseLogging (dlg.getVerboseLogging()); + theApp->setStartupTips (dlg.getStartupTips()); + theApp->setUseBackgroundTasks (dlg.getUseBackgroundTasks()); } } @@ -837,7 +875,14 @@ MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) ) void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) { - wxBitmap bmp (splash); + long lFreeMem = ::wxGetFreeMemory() / (1024L * 1024L); + wxString strOSDesc = ::wxGetOsDescription(); + *theApp->getLog() << "Operation System: " << strOSDesc; + if (lFreeMem > 0) + *theApp->getLog() << ", Free Memory: " << lFreeMem << " MB"; + *theApp->getLog() << "\n"; + + wxBitmap bmp (splash); if (bmp.Ok()) { BitmapDialog dlg (&bmp, "About CTSim"); dlg.ShowModal();