-@book{HERMAN80,
- author = {G.T. Herman},
- title = {Image Reconstruction from Projections: The Fundamentals of
- Computerized Tomography},
- year = {1980},
- publisher = {Academic Press, New York, 1980}
-}
-
@book{KAK87,
author = {A. Kak and M. Slaney},
title = {Principles of Computerized Tomographic Imaging},
year = {1987}
}
+@book{HERMAN80,
+ author = {G.T. Herman},
+ title = {Image Reconstruction from Projections: The Fundamentals of Computerized Tomography},
+ year = {1980},
+ publisher = {Academic Press, New York, 1980}
+}
+
@book{PRESS92,
author = {W.H. Press, S.A. Teukolsky, W.T. Vellerling, and B.P. Flannery},
title = {Numerical Recipes in C: The Art of Scientific Computing},
}
@article{SHEPP74,
- author={L. Shepp and B. Logan},
- title={The fourier reconstruction of a head section},
+ author = {L. Shepp and B. Logan},
+ title = {The fourier reconstruction of a head section},
journal = {IEEE Transactions in Nuclear Science},
volume = {NS-21},
number = {6},
- pages = {21--43},
- year = {1974},
+ pages = {21-43},
+ year = {1974}
}
+
+
+; This file is maintained by HCW. Do not modify this file directly.
+
[OPTIONS]
+COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ; English (United States)
REPORT=Yes
+CNT=ctsim.cnt
+COPYRIGHT=Copyright (c) 1983-2001 Kevin Rosenberg, M.D.
HLP=ctsim.hlp
[FILES]
ctsim.rtf
+[WINDOWS]
+main="",(653,102,360,600),27904,(r14876671),(r12632256),f3
+
[CONFIG]
CreateButton("Up", "\&Up", "JumpId(`ctsim.hlp', `Contents')") ; Buttons
+BrowseButtons()
+
+[BAGGAGE]
+ctsim.cnt
\usepackage{times}
\usepackage{hyperref}
-\newcommand{\ctsim}{{\it CTSim}}
-\newcommand{\ctsimtext}{{\it CTSimText}}
+\newcommand{\ctsim}{{\tt CTSim}}
+\newcommand{\ctsimtext}{{\tt CTSimText}}
\newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}%
\newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}%
See the INSTALL file included in the source distribution for instructions.
\section{Requirements}\index{Installation,Build,Requirements}%
- \item Building CTSim
\begin{itemize}\itemsep=0pt
\item zlib Library (optional)
\par Used for PNG file export.
\par Used for debugging memory allocation
\par www.dmalloc.com
- \item wxWindows library (optional) \par Used for
- platform-independent graphical interface. The graphical-shell
- program \ctsim requires this library. \par www.wxwindows.org
+ \item wxWindows library (optional)
+ \par Used for platform-independent graphical interface. The graphical-shell
+ program \ctsim requires this library.
+ \par www.wxwindows.org
- \end{itemize}
\end{itemize}
\chapter{ctsim - the Graphical User Interface}%\index{ctsim}%
Sets the distance of the radiation source and detectors from the center of the object as a ratio of the radius of the object. For parallel geometries, a value of 1.0 is fine. For other geometries, this should be at least 2.0 to avoid artifacts.
\end{itemize}
+The Herman phantom is taken with permission from Gabor Hermans 1980 book\cite{HERMAN80}. The Shepp-Logan phantom was published in 1974\cite{SHEPP74}.
+
\subsection{phm2if}\index{Programs,ctsimtext,phm2if}%
Converts a geometric phantom object into an imagefile. The size of the
imagefile in pixels must be specified as well as the number of samples
\newpage
-\nocite{KAK87}
-\nocite{PRESS82}
-\nocite{SHEPP74}
-
\bibliographystyle{plain}
\bibliography{ctsim}
\addcontentsline{toc}{chapter}{Bibliography}
combineSubSections = true
runTwice = yes
useUpButton = yes
+winHelpTitle=CTSim Manual
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: scanner.cpp,v 1.24 2001/01/17 06:38:06 kevin Exp $
+** $Id: scanner.cpp,v 1.25 2001/01/17 11:00:18 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
double dYPos = m_dYMaxWin - (row * m_dTextHeight);
m_pSGP->moveAbs (m_dXMinWin, dYPos);
m_pSGP->setTextColor (color, -1);
-// m_pSGP->drawText (szLabel);
+ m_pSGP->drawText (szLabel);
double dValueOffset = (m_dXMaxWin - m_dXMinWin) / 4;
m_pSGP->moveAbs (m_dXMinWin + dValueOffset, dYPos);
-// m_pSGP->drawText (szValue);
+ m_pSGP->drawText (szValue);
} else
#endif
{
<pre>
<h1>Build Log</h1>
<h3>
---------------------Configuration: ctsim - Win32 Debug--------------------
+--------------------Configuration: libctsim - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP88.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP190.tmp" with contents
[
-/nologo /G6 /MTd /W3 /Gm /GR /GX /ZI /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /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.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
-"C:\ctsim\src\ctsim.cpp"
+/nologo /G6 /MT /W3 /GR- /GX /O2 /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "NDEBUG" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /Fp"Release/libctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\libctsim\backprojectors.cpp"
]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP88.tmp"
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP89.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP190.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP191.tmp" with contents
[
-comctl32.lib winmm.lib rpcrt4.lib ws2_32.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 ../libctsim/Debug/libctsim.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 ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib xpmd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrtd.lib" /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" /libpath:"..\..\..\wx2\lib"
-.\Debug\ctsim.obj
-.\Debug\dialogs.obj
-.\Debug\dlgprojections.obj
-.\Debug\dlgreconstruct.obj
-.\Debug\docs.obj
-.\Debug\views.obj
-.\Debug\ctsim.res
-\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\lib\wxd.lib
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "NDEBUG" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /Fp"Release/libctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\libctgraphics\dlgezplot.cpp"
+"C:\ctsim\libctgraphics\ezplot.cpp"
+"C:\ctsim\libctgraphics\ezset.cpp"
+"C:\ctsim\libctgraphics\ezsupport.cpp"
+"C:\ctsim\libctsim\filter.cpp"
+"C:\ctsim\libctsim\fourier.cpp"
+"C:\ctsim\libctsim\globalvars.cpp"
+"C:\ctsim\libctsupport\hashtable.cpp"
+"C:\ctsim\libctsim\imagefile.cpp"
+"C:\ctsim\libctsim\phantom.cpp"
+"C:\ctsim\libctsupport\plotfile.cpp"
+"C:\ctsim\libctgraphics\pol.cpp"
+"C:\ctsim\libctsim\procsignal.cpp"
+"C:\ctsim\libctsim\projections.cpp"
+"C:\ctsim\libctsim\reconstruct.cpp"
+"C:\ctsim\libctsim\scanner.cpp"
+"C:\ctsim\libctgraphics\sgp.cpp"
+"C:\ctsim\libctsupport\syserror.cpp"
+"C:\ctsim\libctsim\trace.cpp"
]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP89.tmp"
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP191.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP192.tmp" with contents
+[
+/nologo /out:"Release\libctsim.lib"
+.\Release\array2dfile.obj
+.\Release\backprojectors.obj
+.\Release\clip.obj
+.\Release\consoleio.obj
+.\Release\dlgezplot.obj
+.\Release\ezplot.obj
+.\Release\ezset.obj
+.\Release\ezsupport.obj
+.\Release\filter.obj
+.\Release\fnetorderstream.obj
+.\Release\fourier.obj
+.\Release\getopt.obj
+.\Release\getopt1.obj
+.\Release\globalvars.obj
+.\Release\hashtable.obj
+.\Release\imagefile.obj
+.\Release\mathfuncs.obj
+.\Release\phantom.obj
+.\Release\plotfile.obj
+.\Release\pol.obj
+.\Release\procsignal.obj
+.\Release\projections.obj
+.\Release\reconstruct.obj
+.\Release\scanner.obj
+.\Release\sgp.obj
+.\Release\strfuncs.obj
+.\Release\syserror.obj
+.\Release\trace.obj
+.\Release\transformmatrix.obj
+.\Release\xform.obj
+]
+Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP192.tmp"
<h3>Output Window</h3>
Compiling...
-ctsim.cpp
-Linking...
-
-
-
-<h3>Results</h3>
-ctsim.exe - 0 error(s), 0 warning(s)
-</pre>
-</body>
-</html>
+backprojectors.cpp
+Compiling...
+dlgezplot.cpp
+ezplot.cpp
+ezset.cpp
+ezsupport.cpp
+filter.cpp
+fourier.cpp
+globalvars.cpp
+hashtable.cpp
+imagefile.cpp
+phantom.cpp
+plotfile.cpp
+pol.cpp
+procsignal.cpp
+projections.cpp
+reconstruct.cpp
+scanner.cpp
+sgp.cpp
+syserror.cpp
+trace.cpp
+Creating library...
+<h3>
+--------------------Configuration: ctsim - Win32 Release--------------------
+</h3>
+<h3>Command Lines</h3>
+Creating command line "rc.exe /l 0x409 /fo"Release/ctsim.res" /i "\wx2\include\wx\msw" /i "\wx2\include" /d "NDEBUG" "C:\ctsim\msvc\ctsim\ctsim.rc""
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP193.tmp" with contents
+[
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /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
\ No newline at end of file
ICON_APP ICON "logo.ico"
-wxSTD_FRAME ICON "logo.ico"
#include "wx/msw/wx.rc"
+#include "wx/html/msw/wxhtml.rc"
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.30 2001/01/17 06:38:06 kevin Exp $
+** $Id: ctsim.cpp,v 1.31 2001/01/17 11:00:18 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 "wx/wx.h"
#endif
+#include "wx/image.h"
+#include "wx/filesys.h"
+#include "wx/fs_zip.h"
+
#if !wxUSE_DOC_VIEW_ARCHITECTURE
#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
#endif
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.30 2001/01/17 06:38:06 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.31 2001/01/17 11:00:18 kevin Exp $";
struct option CTSimApp::ctsimOptions[] =
{
new wxDocTemplate (m_docManager, "PhantomFile", "*.phm", "", "phm", "Phantom doc", "Phantom View", CLASSINFO(PhantomDocument), CLASSINFO(PhantomView));
new wxDocTemplate (m_docManager, "PlotFile", "*.plt", "", "plt", "Plot doc", "Plot View", CLASSINFO(PlotFileDocument), CLASSINFO(PlotFileView));
- //// Create the main frame window
+#if wxUSE_GIF
+ wxImage::AddHandler(new wxGIFHandler); // Required for images in the online documentation
+#endif
+
+#if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
+ wxFileSystem::AddHandler(new wxZipFSHandler); // Required for advanced HTML help
+#endif
+
+ // Create the main frame window
m_pFrame = new MainFrame(m_docManager, (wxFrame *) NULL, -1, "CTSim", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE);
SetTopWindow (m_pFrame);
setIconForFrame (m_pFrame);
+ if (! m_pFrame->getHelpController().Initialize("ctsim"))
+ ::wxMessageBox ("Cannot initialize the help system", "Error");
+
+ wxAcceleratorEntry accelEntries[3];
+ accelEntries[0].Set(wxACCEL_CTRL, WXK_F1, MAINMENU_HELP_TOPICS);
+ accelEntries[1].Set(wxACCEL_CTRL, (int) 'P', MAINMENU_FILE_CREATE_PHANTOM);
+ accelEntries[2].Set(wxACCEL_CTRL, (int) 'F', MAINMENU_FILE_CREATE_FILTER);
+ wxAcceleratorTable accelTable (2, accelEntries);
+ m_pFrame->SetAcceleratorTable (accelTable);
+
return true;
}
+
#include "./ctsim.xpm"
void
CTSimApp::setIconForFrame(wxFrame* pFrame)
#endif
EVT_MENU(MAINMENU_HELP_ABOUT, MainFrame::OnAbout)
-EVT_MENU(MAINMENU_HELP_CONTENTS, MainFrame::OnHelpContents)
+EVT_MENU(MAINMENU_HELP_TOPICS, MainFrame::OnHelpTopics)
EVT_MENU(MAINMENU_FILE_CREATE_PHANTOM, MainFrame::OnCreatePhantom)
EVT_MENU(MAINMENU_FILE_CREATE_FILTER, MainFrame::OnCreateFilter)
EVT_MENU(MAINMENU_FILE_EXIT, MainFrame::OnExit)
//// Make a menubar
wxMenu *file_menu = new wxMenu;
- file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...");
- file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter...");
+ file_menu->Append(MAINMENU_FILE_CREATE_PHANTOM, "Cr&eate Phantom...\tCtrl-P");
+ file_menu->Append(MAINMENU_FILE_CREATE_FILTER, "Create &Filter...\tCtrl-F");
file_menu->Append(wxID_OPEN, "&Open...");
file_menu->AppendSeparator();
m_pWindowMenu->UpdateUI (this);
wxMenu* help_menu = new wxMenu;
- help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents");
+ help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tF1");
help_menu->AppendSeparator();
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
}
void
-MainFrame::OnHelpContents(wxCommandEvent& WXUNUSED(event) )
+MainFrame::OnHelpTopics (wxCommandEvent& event)
{
- wxMessageBox("No help available, refer to man pages of command-line tools");
+ showHelp (event.GetId());
+}
+
+void
+MainFrame::showHelp (int commandID)
+{
+ m_help.LoadFile();
+
+ switch (commandID) {
+ case MAINMENU_HELP_TOPICS:
+ m_help.DisplayContents();
+ break;
+
+ default:
+ *getLog() << "Unknown help command # " << commandID << "\n";
+ break;
+ }
}
void
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.h,v 1.24 2001/01/13 10:14:06 kevin Exp $
+** $Id: ctsim.h,v 1.25 2001/01/17 11:00:18 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 "wx/docview.h"
#include "wx/textctrl.h"
#include "wx/menu.h"
+#include "wx/help.h"
+#include "wx/html/helpctrl.h"
#include "dlgezplot.h"
double m_dDefaultFilterInputScale;
double m_dDefaultFilterOutputScale;
+#ifdef __WXMSW__
+ wxWinHelpController m_help;
+#else
+ wxHtmlHelpController m_help;
+#endif
+
public:
MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
+#ifdef __WXMSW__
+ wxWinHelpController& getHelpController()
+ {return m_help; }
+#else
+ wxHtmlHelpController& getHelpController()
+ { return m_help; }
+#endif
+ void showHelp (int commandID);
+
void OnAbout (wxCommandEvent& event);
- void OnHelpContents (wxCommandEvent& event);
+ void OnHelpTopics (wxCommandEvent& event);
void OnCreatePhantom (wxCommandEvent& event);
void OnCreateFilter (wxCommandEvent& event);
enum {
MAINMENU_HELP_ABOUT = 500,
MAINMENU_WINDOW_BASE,
- MAINMENU_HELP_CONTENTS,
+ MAINMENU_HELP_TOPICS,
MAINMENU_FILE_CREATE_PHANTOM,
MAINMENU_FILE_CREATE_FILTER,
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: dlgprojections.cpp,v 1.17 2001/01/17 06:38:06 kevin Exp $
+** $Id: dlgprojections.cpp,v 1.18 2001/01/17 11:00:18 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
SetAutoLayout(TRUE);
Layout();
- wxSize sizeDlg (250,250);
+ wxSize sizeDlg (500,500);
if (sizeDlg.x != sizeDlg.y) {
sizeDlg.x = max(sizeDlg.x,sizeDlg.y);
sizeDlg.y = max(sizeDlg.x,sizeDlg.y);
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.63 2001/01/16 20:55:29 kevin Exp $
+** $Id: views.cpp,v 1.64 2001/01/17 11:00:18 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
analyze_menu->Append (IFMENU_COMPARE_COL, "Compare &Column");
wxMenu *help_menu = new wxMenu;
+ help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
wxMenuBar *menu_bar = new wxMenuBar;
process_menu->Append(PHMMENU_PROCESS_PROJECTIONS, "&Projections...");
wxMenu *help_menu = new wxMenu;
- help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents");
+ help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
wxMenuBar *menu_bar = new wxMenuBar;
reconstruct_menu->Append (PJMENU_RECONSTRUCT_FOURIER, "&Fourier...");
wxMenu *help_menu = new wxMenu;
- help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents");
- help_menu->AppendSeparator();
+ help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
wxMenuBar *menu_bar = new wxMenuBar;
view_menu->Append(PLOTMENU_VIEW_SCALE_FULL, "Display &Full Scale");
wxMenu *help_menu = new wxMenu;
- help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents");
- help_menu->AppendSeparator();
+ help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics");
help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
wxMenuBar *menu_bar = new wxMenuBar;