From 1a7c2cc82f5a0c04bec766776e57c563378dc611 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Thu, 22 Feb 2001 00:56:50 +0000 Subject: [PATCH] r570: no message --- ChangeLog | 5 +- doc/ctsim-gui.tex | 10 ++++ doc/ctsim.prj | 24 ++++---- msvc/ctsim/ctsim.dsp | 4 +- msvc/ctsim/ctsim.plg | 60 +++++++++++--------- msvc/ctsimtext/ctsimtext.dsp | 4 +- src/Makefile.am | 2 +- src/ctsim.cpp | 40 ++++++++++--- src/ctsim.h | 14 ++++- src/dialogs.cpp | 14 ++++- src/dialogs.h | 6 +- src/tips.cpp | 106 +++++++++++++++++++++++++++++++++++ src/tips.h | 45 +++++++++++++++ src/views.cpp | 7 ++- 14 files changed, 282 insertions(+), 59 deletions(-) create mode 100644 src/tips.cpp create mode 100644 src/tips.h diff --git a/ChangeLog b/ChangeLog index ff97069..67bcdc7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 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 diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index 240855e..2168702 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -176,6 +176,10 @@ new installations. With this option set, \ctsim\ will log more events than 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} @@ -199,6 +203,12 @@ Allows the saving of the contents of the active window to any file name. \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. diff --git a/doc/ctsim.prj b/doc/ctsim.prj index 3293f2c..11ca2c4 100644 --- a/doc/ctsim.prj +++ b/doc/ctsim.prj @@ -5,34 +5,34 @@ 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 diff --git a/msvc/ctsim/ctsim.dsp b/msvc/ctsim/ctsim.dsp index 134933d..9679553 100644 --- a/msvc/ctsim/ctsim.dsp +++ b/msvc/ctsim/ctsim.dsp @@ -43,7 +43,7 @@ RSC=rc.exe # 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" @@ -69,7 +69,7 @@ LINK32=link.exe # 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" diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index 4eceb4d..f240cfc 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -3,47 +3,55 @@
 

Build Log

---------------------Configuration: ctsim - Win32 Release-------------------- +--------------------Configuration: ctsim - Win32 Debug--------------------

Command Lines

-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"

Output Window

Compiling... ctsim.cpp +Compiling... +tips.cpp Linking... -LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF

Results

-ctsim.exe - 0 error(s), 1 warning(s) +ctsim.exe - 0 error(s), 0 warning(s)
diff --git a/msvc/ctsimtext/ctsimtext.dsp b/msvc/ctsimtext/ctsimtext.dsp index 998e78a..f220e51 100644 --- a/msvc/ctsimtext/ctsimtext.dsp +++ b/msvc/ctsimtext/ctsimtext.dsp @@ -42,7 +42,7 @@ RSC=rc.exe # 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 @@ -66,7 +66,7 @@ LINK32=link.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 diff --git a/src/Makefile.am b/src/Makefile.am index 35d6a69..be72fcf 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,6 +1,6 @@ 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@ diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 45a1adc..510e248 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.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 @@ -57,6 +57,7 @@ #include "docs.h" #include "views.h" #include "dialogs.h" +#include "tips.h" #if defined(HAVE_CONFIG_H) #include "config.h" @@ -72,7 +73,7 @@ #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[] = { @@ -85,7 +86,8 @@ 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; @@ -228,10 +230,20 @@ CTSimApp::OnInit() 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 @@ -277,6 +289,8 @@ CTSimApp::openConfig() 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 @@ -285,6 +299,9 @@ 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); + delete m_pConfig; } @@ -316,6 +333,7 @@ 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_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton) EVT_BUTTON(IDH_DLG_PROJECTIONS, MainFrame::OnHelpButton) @@ -395,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"); @@ -496,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); @@ -564,6 +583,12 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vectorShowTips(); +} + void MainFrame::OnHelpContents (wxCommandEvent& event) { @@ -827,11 +852,12 @@ void 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()); } } diff --git a/src/ctsim.h b/src/ctsim.h index ff8588c..a2c2afa 100644 --- a/src/ctsim.h +++ b/src/ctsim.h @@ -1,15 +1,15 @@ /***************************************************************************** ** 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 @@ -136,6 +136,7 @@ public: void OnAbout (wxCommandEvent& event); void OnHelpContents (wxCommandEvent& event); + void OnHelpTips (wxCommandEvent& event); void OnCreatePhantom (wxCommandEvent& event); void OnPreferences (wxCommandEvent& event); @@ -187,6 +188,8 @@ private: bool m_bAdvancedOptions; bool m_bSetModifyNewDocs; bool m_bVerboseLogging; + bool m_bShowStartupTips; + long m_iCurrentTip; wxDocManager* m_docManager; MainFrame* m_pFrame; @@ -230,6 +233,10 @@ public: 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() @@ -265,6 +272,7 @@ enum { 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 diff --git a/src/dialogs.cpp b/src/dialogs.cpp index 2fadb35..9915a34 100644 --- a/src/dialogs.cpp +++ b/src/dialogs.cpp @@ -9,7 +9,7 @@ ** 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 @@ -222,7 +222,7 @@ DialogGetComparisonImage::getMakeDifferenceImage() ///////////////////////////////////////////////////////////////////// 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); @@ -243,6 +243,10 @@ DialogPreferences::DialogPreferences (wxWindow* pParent, const char* const pszTi 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); @@ -284,6 +288,12 @@ DialogPreferences::getVerboseLogging () return static_cast(m_pCBVerboseLogging->GetValue()); } +bool +DialogPreferences::getStartupTips () +{ + return static_cast(m_pCBStartupTips->GetValue()); +} + ///////////////////////////////////////////////////////////////////// // CLASS DiaglogGetMinMax Implementation diff --git a/src/dialogs.h b/src/dialogs.h index 726ea93..2497562 100644 --- a/src/dialogs.h +++ b/src/dialogs.h @@ -9,7 +9,7 @@ ** 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 @@ -113,17 +113,19 @@ class DialogPreferences : public wxDialog { 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; }; diff --git a/src/tips.cpp b/src/tips.cpp new file mode 100644 index 0000000..c263b48 --- /dev/null +++ b/src/tips.cpp @@ -0,0 +1,106 @@ +/***************************************************************************** +** 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; +} + diff --git a/src/tips.h b/src/tips.h new file mode 100644 index 0000000..39d264d --- /dev/null +++ b/src/tips.h @@ -0,0 +1,45 @@ +/***************************************************************************** +** 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 + + +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(); +}; diff --git a/src/views.cpp b/src/views.cpp index 25abfbf..c20009d 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** 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 @@ -911,6 +911,7 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) 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"); @@ -2084,6 +2085,7 @@ PhantomFileView::CreateChildFrame(wxDocument *doc, wxView *view) 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"); @@ -2511,6 +2513,7 @@ ProjectionFileView::CreateChildFrame(wxDocument *doc, wxView *view) 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"); @@ -2831,6 +2834,7 @@ PlotFileView::CreateChildFrame(wxDocument *doc, wxView *view) 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"); @@ -3077,6 +3081,7 @@ TextFileView::CreateChildFrame (wxDocument *doc, wxView *view) 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"); -- 2.34.1