** 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.h,v 1.31 2001/01/26 05:37:24 kevin Exp $
+** $Id: ctsim.h,v 1.48 2001/02/20 00:07:56 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/config.h"
+#ifdef __WXMSW__
+#include "wx/msw/helpchm.h"
+#endif
#ifdef MSVC
#define CTSIM_MDI 1
class PhantomFileDocument;
class PlotFileDocument;
class TextFileDocument;
+#if wxUSE_GLCANVAS
+class Graph3dFileDocument;
+#endif
#include <vector>
#include "wx/docview.h"
#include "wx/help.h"
#include "wx/html/helpctrl.h"
#include "dlgezplot.h"
+#include "ctsim-map.h"
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) || defined (MSVC)
#define CTSIM_WINHELP 1
#endif
DECLARE_CLASS(MainFrame)
DECLARE_EVENT_TABLE()
+#ifndef CTSIM_MDI
wxMenu* m_pWindowMenu;
-
+#endif
+
enum { MAX_WINDOW_MENUITEMS = 20 };
wxMenuItem* m_apWindowMenuItems[MAX_WINDOW_MENUITEMS];
wxDocument* m_apWindowMenuData[MAX_WINDOW_MENUITEMS];
double m_dDefaultFilterInputScale;
double m_dDefaultFilterOutputScale;
+ bool m_bShuttingDown;
+
#if CTSIM_WINHELP
- wxWinHelpController m_winHelp;
+ wxCHMHelpController m_winHelp;
#endif
wxHtmlHelpController m_htmlHelp;
public:
MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
- ~MainFrame();
+ virtual ~MainFrame();
#ifdef CTSIM_CUSTOM_MRU
void OnMRUFile (wxCommandEvent& event);
void OnSize (wxSizeEvent& event);
#if CTSIM_WINHELP
- wxWinHelpController& getWinHelpController()
+ wxCHMHelpController& getWinHelpController()
{return m_winHelp; }
#endif
wxHtmlHelpController& getHtmlHelpController()
void showHelp (int commandID);
void OnAbout (wxCommandEvent& event);
- void OnHelpTopics (wxCommandEvent& event);
void OnHelpContents (wxCommandEvent& event);
void OnCreatePhantom (wxCommandEvent& event);
-
+ void OnPreferences (wxCommandEvent& event);
+
+ void OnHelpButton (wxCommandEvent& event);
+
#if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
void OnHelpSecondary (wxCommandEvent& event);
#endif
void OnWindowMenu19 (wxCommandEvent& event);
void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
+
+ bool getShuttingDown() const { return m_bShuttingDown; }
};
class CTSimApp: public wxApp
{
private:
- enum { O_HELP, O_VERSION };
+ enum { O_HELP, O_PRINT, O_VERSION };
static struct option ctsimOptions[];
-
+
+ bool m_bAdvancedOptions;
+ bool m_bSetModifyNewDocs;
+
wxDocManager* m_docManager;
MainFrame* m_pFrame;
wxConfig* m_pConfig;
wxDocTemplate* m_pDocTemplPhantom;
wxDocTemplate* m_pDocTemplPlot;
wxDocTemplate* m_pDocTemplText;
+#if wxUSE_GLCANVAS
+ wxDocTemplate* m_pDocTemplGraph3d;
+#endif
+
+ TextFileDocument* m_pLogDoc;
void usage (const char* program);
-
+ void openConfig();
+ void closeConfig();
+
public:
CTSimApp();
bool OnInit();
{ return new EZPlotDialog (m_pFrame); }
void getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector<ImageFileDocument*>& vecIF);
-
- bool getSetModifyNewDocs() const
- { return true; }
-
+ bool getAdvancedOptions() const { return m_bAdvancedOptions; }
+ void setAdvancedOptions (bool bAdv) { m_bAdvancedOptions = bAdv; }
+
void setIconForFrame (wxFrame* pFrame);
wxConfig* getConfig()
{ return m_pConfig; }
+ bool getAskDeleteNewDocs() const { return m_bSetModifyNewDocs; }
+ void setAskDeleteNewDocs(bool bAsk) { m_bSetModifyNewDocs = bAsk; }
wxDocTemplate* getDocTemplImage() { return m_pDocTemplImage; }
wxDocTemplate* getDocTemplProjection() { return m_pDocTemplProjection; }
wxDocTemplate* getDocTemplPhantom() { return m_pDocTemplPhantom; }
wxDocTemplate* getDocTemplPlot() { return m_pDocTemplPlot; }
wxDocTemplate* getDocTemplText() { return m_pDocTemplText; }
+#if wxUSE_GLCANVAS
+ wxDocTemplate* getDocTemplGraph3d() { return m_pDocTemplGraph3d; }
+#endif
+ TextFileDocument* getLogDoc() { return m_pLogDoc; }
ProjectionFileDocument* newProjectionDoc();
ImageFileDocument* newImageDoc();
PhantomFileDocument* newPhantomDoc();
PlotFileDocument* newPlotDoc();
TextFileDocument* newTextDoc();
-
+#if wxUSE_GLCANVAS
+ Graph3dFileDocument* newGraph3dDoc();
+#endif
};
DECLARE_APP(CTSimApp)
MAINMENU_WINDOW_BASE = 500,
MAINMENU_HELP_ABOUT = 600,
MAINMENU_HELP_CONTENTS,
- MAINMENU_HELP_TOPICS,
+#if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
MAINMENU_HELP_SECONDARY,
+#endif
MAINMENU_FILE_CREATE_PHANTOM,
MAINMENU_FILE_CREATE_FILTER,
MAINMENU_FILE_EXIT,
+ MAINMENU_FILE_PREFERENCES,
PJMENU_FILE_PROPERTIES,
PJMENU_RECONSTRUCT_FBP,
IFMENU_IMAGE_SUBTRACT,
IFMENU_IMAGE_MULTIPLY,
IFMENU_IMAGE_DIVIDE,
-
+#if wxUSE_GLCANVAS
+ IFMENU_IMAGE_CONVERT3D,
+#endif
+
IFMENU_FILTER_INVERTVALUES,
IFMENU_FILTER_SQRT,
IFMENU_FILTER_SQUARE,
PLOTMENU_VIEW_SCALE_MINMAX,
PLOTMENU_VIEW_SCALE_AUTO,
PLOTMENU_VIEW_SCALE_FULL,
+
+ GRAPH3D_VIEW_SURFACE,
+ GRAPH3D_VIEW_COLOR,
+ GRAPH3D_VIEW_LIGHTING,
+ GRAPH3D_VIEW_SMOOTH,
+ GRAPH3D_VIEW_SCALE_AUTO,
+ GRAPH3D_VIEW_SCALE_MINMAX,
+ GRAPH3D_VIEW_SCALE_FULL,
};
#endif