3.0.4 - Released
- * ctsim: Added "Verbose Logging" option to Preferences
+ * ctsim: Added "Verbose Logging" and "Startup Tips" options
+ to Preferences.
+
+ * ctsim: Added tips to be displayed at startup and via the help menu.
3.0.3 - Released 2/20/01
usual. There extra events are not important for viewing with typical operation of
\ctsim.}
+\twocolitem{\textbf{Show startup tips}}{This option is initially turned on in
+new installations. With this option set, \ctsim\ will display
+helpful tips when \ctsim\ is started.}
+
\end{twocollist}
\subsection{File - Open}
\subsection{Help - Contents}
This command displays the online help.
+\subsection{Help - Tips}
+This command displays a dialog with tips on using \ctsim.
+
+\subsection{Help - Quick Start}
+This command displays a recommend approach to helping new users learn to use \ctsim.
+
\subsection{Help - About}
This command shows the version number and operating environment of \ctsim.
1
ctsim.tex
18
-8
-4
+0
+0
mytitle.sty
DATA
-5243570 0 9 1 8 22 66 66 1143 653
+273679026 0 9 1 8 22 66 66 1143 653
ctsim-textui.tex
TeX
-12282 0 297 15 0 1 198 198 1275 785
+268447738 0 297 15 0 1 198 198 1275 785
ctsim-install.tex
TeX
-12282 0 34 10 42 1 110 110 1187 697
+268447738 0 34 10 42 1 110 110 1187 697
ctsim-web.tex
TeX
-12283 0 24 50 0 60 88 88 1165 675
-ctsim.tex
-TeX
-402665466 0 68 19 98 23 22 22 1099 609
+268447739 0 24 50 0 60 88 88 1165 675
ctsim-appendix.tex
TeX
-12282 0 12 1 0 1 44 44 1121 631
+268447738 0 12 1 0 1 44 44 1121 631
ctsim-gui.tex
TeX
-12282 0 38 28 38 69 176 176 1253 763
+268447738 0 175 7 175 8 176 176 1253 763
+ctsim.tex
+TeX
+402665466 0 25 31 27 37 22 22 1099 609
ctsim-concepts.tex
TeX
-12282 0 213 1 0 1 110 110 1187 697
+268447738 2 305 28 305 41 110 110 1187 697
tex2rtf.ini
DATA
273777330 0 0 1 17 8 22 22 938 609
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D "NDEBUG" /D "__WXWIN__" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.3\" /FR /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D "NDEBUG" /D "__WXWIN__" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.4\" /FR /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.3\" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.4\" /FR /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
<pre>
<h1>Build Log</h1>
<h3>
---------------------Configuration: ctsim - Win32 Release--------------------
+--------------------Configuration: ctsim - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP4B.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE7.tmp" with contents
[
-/nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D "NDEBUG" /D "__WXWIN__" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.4\" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.4\" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
"C:\ctsim\src\ctsim.cpp"
]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP4B.tmp"
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP4C.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE7.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE8.tmp" with contents
[
-wsock32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib htmlhelp.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/ctsim.pdb" /machine:I386 /out:"Release/ctsim.exe" /libpath:"\wx2.2.5\lib"
-.\Release\ctsim.obj
-.\Release\dialogs.obj
-.\Release\dlgprojections.obj
-.\Release\dlgreconstruct.obj
-.\Release\docs.obj
-.\Release\graph3dview.obj
-.\Release\views.obj
-.\Release\ctsim.res
-\ctsim\msvc\libctsim\Release\libctsim.lib
-"\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib"
-"\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib"
-\wx2.2.5\lib\jpeg.lib
-\wx2.2.5\lib\png.lib
-\wx2.2.5\lib\wx.lib
-\wx2.2.5\lib\xpm.lib
-\wx2.2.5\lib\zlib.lib
-\wx2.2.5\lib\tiff.lib
+/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.4\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
+"C:\ctsim\src\tips.cpp"
]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP4C.tmp"
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE8.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE9.tmp" with contents
+[
+winmm.lib rpcrt4.lib ws2_32.lib ../libctsim/Debug/libctsim.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib wxd.lib xpmd.lib tiffd.lib zlibd.lib pngd.lib comctl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib htmlhelp.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"\wx2.2.5\lib"
+.\Debug\ctsim.obj
+.\Debug\dialogs.obj
+.\Debug\dlgprojections.obj
+.\Debug\dlgreconstruct.obj
+.\Debug\docs.obj
+.\Debug\graph3dview.obj
+.\Debug\views.obj
+.\Debug\ctsim.res
+.\Debug\tips.obj
+\ctsim\msvc\libctsim\Debug\libctsim.lib
+"\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib"
+"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"
+\wx2.2.5\lib\jpegd.lib
+\wx2.2.5\lib\pngd.lib
+\wx2.2.5\lib\wxd.lib
+\wx2.2.5\lib\xpmd.lib
+\wx2.2.5\lib\zlibd.lib
+\wx2.2.5\lib\tiffd.lib
+]
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSPE9.tmp"
<h3>Output Window</h3>
Compiling...
ctsim.cpp
+Compiling...
+tips.cpp
Linking...
-LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF
<h3>Results</h3>
-ctsim.exe - 0 error(s), 1 warning(s)
+ctsim.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "NDEBUG" /D VERSION=\"3.0.3\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /YX /FD /c
+# ADD CPP /nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "NDEBUG" /D VERSION=\"3.0.4\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "_DEBUG" /D VERSION=\"3.0.3\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /FR /YX /FD /GZ /c
+# ADD CPP /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "../../include" /I "../../getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "_DEBUG" /D VERSION=\"3.0.4\" /D "HAVE_GETOPT_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MSVC" /D "HAVE_STRING_H" /D "HAVE_PNG" /D "NO_MAIN" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
bin_PROGRAMS=ctsim
-ctsim_SOURCES=ctsim.cpp docs.cpp views.cpp dialogs.cpp ctsim.h docs.h views.h dialogs.h dlgprojections.cpp dlgprojections.h dlgreconstruct.cpp dlgreconstruct.h graph3dview.cpp graph3dview.h ctsim-map.h ctsim.xpm splash.xpm
+ctsim_SOURCES=ctsim.cpp docs.cpp views.cpp dialogs.cpp ctsim.h docs.h views.h dialogs.h dlgprojections.cpp dlgprojections.h dlgreconstruct.cpp dlgreconstruct.h graph3dview.cpp graph3dview.h ctsim-map.h ctsim.xpm splash.xpm tips.cpp tips.h
ctsim_DEPENDENCIES=../libctgraphics/libctgraphics.a ../libctsupport/libctsupport.a ../libctsim/libctsim.a ../include/ct.h
ctsim_LDADD=-L../libctgraphics -L../libctsupport -L../libctsim @ctlibs@
** 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.85 2001/02/21 20:13:03 kevin Exp $
+** $Id: ctsim.cpp,v 1.86 2001/02/22 00:56:50 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
#include "docs.h"
#include "views.h"
#include "dialogs.h"
+#include "tips.h"
#if defined(HAVE_CONFIG_H)
#include "config.h"
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.85 2001/02/21 20:13:03 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.86 2001/02/22 00:56:50 kevin Exp $";
struct option CTSimApp::ctsimOptions[] =
{
IMPLEMENT_APP(CTSimApp)
CTSimApp::CTSimApp()
-: m_bAdvancedOptions(false), m_bSetModifyNewDocs(true), m_bVerboseLogging(false),
+: m_bAdvancedOptions(false), m_bSetModifyNewDocs(true), m_bVerboseLogging(false), m_bShowStartupTips(true),
+ m_iCurrentTip(0),
m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_pConfig(0)
{
theApp = this;
m_pFrame->AddPendingEvent(closeEvent);
}
+ if (getStartupTips())
+ ShowTips();
return true;
}
+void
+CTSimApp::ShowTips()
+{
+ CTSimTipProvider tipProvider (m_iCurrentTip);
+ setStartupTips (::wxShowTip (m_pFrame, &tipProvider, getStartupTips()));
+ m_iCurrentTip = tipProvider.GetCurrentTip();
+}
+
#include "./ctsim.xpm"
void
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);
}
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);
+
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_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton)
EVT_BUTTON(IDH_DLG_PROJECTIONS, 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::OnHelpTips (wxCommandEvent& event)
+{
+ theApp->ShowTips();
+}
+
void
MainFrame::OnHelpContents (wxCommandEvent& event)
{
MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) )
{
DialogPreferences dlg (this, "CTSim Preferences", theApp->getAdvancedOptions(),
- theApp->getAskDeleteNewDocs(), theApp->getVerboseLogging());
+ theApp->getAskDeleteNewDocs(), theApp->getVerboseLogging(), theApp->getStartupTips());
if (dlg.ShowModal() == wxID_OK) {
theApp->setAdvancedOptions (dlg.getAdvancedOptions());
theApp->setAskDeleteNewDocs (dlg.getAskDeleteNewDocs());
theApp->setVerboseLogging (dlg.getVerboseLogging());
+ theApp->setStartupTips (dlg.getStartupTips());
}
}
/*****************************************************************************
** FILE IDENTIFICATION
**
-** Name: ctsim.cpp
-** Purpose: Top-level routines for CTSim program
+** Name: ctsim.h
+** Purpose: Header file for CTSim
** Programmer: Kevin Rosenberg
** Date Started: July 2000
**
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: ctsim.h,v 1.49 2001/02/21 20:13:03 kevin Exp $
+** $Id: ctsim.h,v 1.50 2001/02/22 00:56:50 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
void OnAbout (wxCommandEvent& event);
void OnHelpContents (wxCommandEvent& event);
+ void OnHelpTips (wxCommandEvent& event);
void OnCreatePhantom (wxCommandEvent& event);
void OnPreferences (wxCommandEvent& event);
bool m_bAdvancedOptions;
bool m_bSetModifyNewDocs;
bool m_bVerboseLogging;
+ bool m_bShowStartupTips;
+ long m_iCurrentTip;
wxDocManager* m_docManager;
MainFrame* m_pFrame;
void setAdvancedOptions (bool bAdv) { m_bAdvancedOptions = bAdv; }
bool getVerboseLogging() const { return m_bVerboseLogging; }
void setVerboseLogging (bool bVerbose) { m_bVerboseLogging = bVerbose; }
+ bool getStartupTips() const { return m_bShowStartupTips; }
+ void setStartupTips(bool bTips) { m_bShowStartupTips = bTips; }
+
+ void ShowTips();
void setIconForFrame (wxFrame* pFrame);
wxConfig* getConfig()
MAINMENU_WINDOW_BASE = 500,
MAINMENU_HELP_ABOUT = 600,
MAINMENU_HELP_CONTENTS,
+ MAINMENU_HELP_TIPS,
#if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
MAINMENU_HELP_SECONDARY,
#endif
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: dialogs.cpp,v 1.38 2001/02/21 20:13:03 kevin Exp $
+** $Id: dialogs.cpp,v 1.39 2001/02/22 00:56:50 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
/////////////////////////////////////////////////////////////////////
DialogPreferences::DialogPreferences (wxWindow* pParent, const char* const pszTitle,
- bool bAdvancedOptions, bool bAskDeleteNewDocs, bool bVerboseLogging)
+ bool bAdvancedOptions, bool bAskDeleteNewDocs, bool bVerboseLogging, bool bStartupTips)
: wxDialog (pParent, -1, pszTitle, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxCAPTION)
{
wxBoxSizer* pTopSizer = new wxBoxSizer (wxVERTICAL);
m_pCBVerboseLogging->SetValue (bVerboseLogging);
pTopSizer->Add (m_pCBVerboseLogging, 0, wxALIGN_CENTER_VERTICAL);
+ m_pCBStartupTips = new wxCheckBox (this, -1, "Show Tips at Start", wxDefaultPosition, wxSize(250, 25), 0);
+ m_pCBStartupTips->SetValue (bStartupTips);
+ pTopSizer->Add (m_pCBStartupTips, 0, wxALIGN_CENTER_VERTICAL);
+
pTopSizer->Add (new wxStaticLine (this, -1, wxDefaultPosition, wxSize(3,3), wxHORIZONTAL), 0, wxEXPAND | wxALL, 5);
wxBoxSizer* pButtonSizer = new wxBoxSizer (wxHORIZONTAL);
return static_cast<bool>(m_pCBVerboseLogging->GetValue());
}
+bool
+DialogPreferences::getStartupTips ()
+{
+ return static_cast<bool>(m_pCBStartupTips->GetValue());
+}
+
/////////////////////////////////////////////////////////////////////
// CLASS DiaglogGetMinMax Implementation
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: dialogs.h,v 1.28 2001/02/21 20:13:03 kevin Exp $
+** $Id: dialogs.h,v 1.29 2001/02/22 00:56:50 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
{
public:
DialogPreferences (wxWindow* pParent, const char* const pszTitle, bool bAdvanced, bool bAskNewDocs,
- bool bVerboseLogging);
+ bool bVerboseLogging, bool bStartupTips);
virtual ~DialogPreferences ();
bool getAdvancedOptions ();
bool getAskDeleteNewDocs ();
bool getVerboseLogging ();
+ bool getStartupTips ();
private:
wxCheckBox* m_pCBAdvancedOptions;
wxCheckBox* m_pCBAskDeleteNewDocs;
wxCheckBox* m_pCBVerboseLogging;
+ wxCheckBox* m_pCBStartupTips;
};
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: tips.cpp
+** Purpose: User tips for CTSim
+** Programmer: Kevin Rosenberg
+** Date Started: February 2001
+**
+** This is part of the CTSim program
+** Copyright (C) 1983-2001 Kevin Rosenberg
+**
+** $Id: tips.cpp,v 1.1 2001/02/22 00:56:50 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
+** published by the Free Software Foundation.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+******************************************************************************/
+
+#ifdef MSVC
+#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 "tips.h"
+
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
+
+
+const char* const CTSimTipProvider::s_aszTips[] = {
+ {"You can create a geometric phantom using the \"File - Create Phantom\" menu command."},
+ {"You can create a gray-scale, rasterized image of a phantom by using the \"Process - Rasterize\" menu command on a geometric phantom."},
+ {"You can simulate the x-ray process by using the \"Process - Projections\" menu command on a geometric phantom."},
+ {"You can simulate first, second, and third-fourth-fifth generation CT scanners by using different scanner geometries."},
+ {"You can reconstruct an image from the x-ray data by using the \"Reconstruction\" menu on a projection file."},
+ {"You can specify different levels of smoothing by using different filters in the \"Reconstruction\" dialog."},
+ {"You can select a row and column of an image by left-mouse button clicking on an image."},
+ {"You can plot a column or row of an image by using the \"Analyze - Plot\" command."},
+ {"You can save your plots to a disk file by using the \"File - Save\" command."},
+ {"You can create your own phantoms using a text editor. Please see the manual for the simple file format."},
+ {"You can perform 2-dimension Fourier transform of images using the \"Filter\" menu commands."},
+ {"You can create an image of a filter by using the \"File - Create Filter\" menu command."},
+ {"You can add two images by using the \"Image - Add\" menu command."},
+ {"You can display the value of a pixel in an image by right-mouse button clicking on an image."},
+ {"You can view a 3-dimensional view of an image using the \"Image - 3D\" menu command."},
+ {"You can scale an image to any size using the \"Image - Scale Size\" menu command."},
+ {"You can display context-sensitive help by using the \"Help\" button on dialog boxes."},
+ {"You can compare two images by using the \"Analyze - Compare Images\" menu command."},
+ {"You can display these tips at any time by using the \"Help - Tips\" menu command."},
+ {"You can control CTSim's operation using the \"File - Preferences\" menu command."},
+};
+
+const int CTSimTipProvider::s_iNumTips = sizeof(s_aszTips) / sizeof(const char *);
+
+
+CTSimTipProvider::CTSimTipProvider (size_t iCurrentTip)
+: wxTipProvider (iCurrentTip)
+{
+ if (iCurrentTip >= s_iNumTips)
+ iCurrentTip = 0;
+
+ m_iCurrentTip = iCurrentTip;
+}
+
+wxString
+CTSimTipProvider::GetTip()
+{
+ if (m_iCurrentTip >= s_iNumTips)
+ m_iCurrentTip = 0;
+
+ size_t iThisTip = m_iCurrentTip;
+ ++m_iCurrentTip;
+
+ return wxString (s_aszTips[iThisTip]);
+}
+
+size_t
+CTSimTipProvider::GetCurrentTip()
+{
+ if (m_iCurrentTip >= s_iNumTips)
+ m_iCurrentTip = 0;
+
+ return m_iCurrentTip;
+}
+
--- /dev/null
+/*****************************************************************************
+** FILE IDENTIFICATION
+**
+** Name: tips.h
+** Purpose: Header file for user tips
+** Programmer: Kevin Rosenberg
+** Date Started: February 2001
+**
+** This is part of the CTSim program
+** Copyright (C) 1983-2001 Kevin Rosenberg
+**
+** $Id: tips.h,v 1.1 2001/02/22 00:56:50 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
+** published by the Free Software Foundation.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+******************************************************************************/
+
+
+#include <wx/tipdlg.h>
+
+
+class CTSimTipProvider : public wxTipProvider
+{
+private:
+ static const char* const s_aszTips[];
+ static const int s_iNumTips;
+
+ size_t m_iCurrentTip;
+
+public:
+ CTSimTipProvider(size_t currentTip);
+
+ virtual wxString GetTip();
+ size_t GetCurrentTip();
+};
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.110 2001/02/20 18:10:45 kevin Exp $
+** $Id: views.cpp,v 1.111 2001/02/22 00:56:50 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
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");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
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");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
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");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
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");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
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");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");