** 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.83 2001/02/21 00:09:31 kevin Exp $
+** $Id: ctsim.cpp,v 1.88 2001/02/22 15:00:20 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
#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
#include "docs.h"
#include "views.h"
#include "dialogs.h"
+#include "tips.h"
+#include "backgroundmgr.h"
#if defined(HAVE_CONFIG_H)
#include "config.h"
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.83 2001/02/21 00:09:31 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.88 2001/02/22 15:00:20 kevin Exp $";
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;
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
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
{
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;
}
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)
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");
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);
}
+void
+MainFrame::OnLogEvent (wxCommandEvent& event)
+{
+ *theApp->getLog() << event.GetString();
+}
+
+void
+MainFrame::OnHelpTips (wxCommandEvent& event)
+{
+ theApp->ShowTips();
+}
+
void
MainFrame::OnHelpContents (wxCommandEvent& event)
{
#endif
break;
- case IDH_QUICKSTART:
-#ifdef CTSIM_WINHELP
- m_winHelp.DisplaySection (commandID);
-#else
- m_htmlHelp.Display (_T("Quick Start"));
-#endif
- break;
-
- case IDH_DLG_PROJECTIONS:
-#ifdef CTSIM_WINHELP
- m_winHelp.DisplaySection (commandID);
-#else
- m_htmlHelp.DisplaySection (_T("IDH_DLG_PROJECTIONS"));
-#endif
- break;
default:
#ifdef CTSIM_WINHELP
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());
}
}
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();