** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.h,v 1.29 2001/01/20 08:10:33 kevin Exp $
+** $Id: ctsim.h,v 1.32 2001/01/26 23:23:00 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 <dmalloc.h>
#endif
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+#include "wx/config.h"
+
#ifdef MSVC
#define CTSIM_MDI 1
#endif
+#define CTSIM_CUSTOM_MRU 1
#if defined(CTSIM_MDI) && !wxUSE_MDI_ARCHITECTURE
#error You must set wxUSE_MDI_ARCHITECTURE to 1 in setup.h!
class wxMenu;
class wxDocument;
-
class ImageFileDocument;
+class ProjectionFileDocument;
+class PhantomFileDocument;
+class PlotFileDocument;
+class TextFileDocument;
#include <vector>
-
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
#include "wx/docview.h"
#include "wx/textctrl.h"
#include "wx/menu.h"
// Define a new frame for main window
#if CTSIM_MDI
-class MainFrame: public wxMDIParentFrame
+class MainFrame: public wxDocMDIParentFrame
#else
class MainFrame: public wxDocParentFrame
#endif
{
- DECLARE_CLASS(MainFrame)
private:
- wxTextCtrl* m_pLog;
+ DECLARE_CLASS(MainFrame)
+ DECLARE_EVENT_TABLE()
+
wxMenu* m_pWindowMenu;
enum { MAX_WINDOW_MENUITEMS = 20 };
double m_dDefaultFilterBandwidth;
double m_dDefaultFilterInputScale;
double m_dDefaultFilterOutputScale;
-
+
#if CTSIM_WINHELP
wxWinHelpController m_winHelp;
#endif
public:
MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
+ virtual ~MainFrame();
+#ifdef CTSIM_CUSTOM_MRU
void OnMRUFile (wxCommandEvent& event);
-
+#endif
void OnSize (wxSizeEvent& event);
#if CTSIM_WINHELP
void OnUpdateUI (wxUpdateUIEvent& event);
- wxTextCtrl* getLog()
- { return m_pLog; }
-
void OnWindowMenu0 (wxCommandEvent& event);
void OnWindowMenu1 (wxCommandEvent& event);
void OnWindowMenu2 (wxCommandEvent& event);
void OnWindowMenu19 (wxCommandEvent& event);
void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
-
- DECLARE_EVENT_TABLE()
};
class wxDocManager;
class CTSimApp: public wxApp
{
+private:
+ enum { O_HELP, O_VERSION };
+ static struct option ctsimOptions[];
+
+ wxDocManager* m_docManager;
+ MainFrame* m_pFrame;
+ wxConfig* m_pConfig;
+ wxTextCtrl* m_pLog;
+ wxDocTemplate* m_pDocTemplImage;
+ wxDocTemplate* m_pDocTemplProjection;
+ wxDocTemplate* m_pDocTemplPhantom;
+ wxDocTemplate* m_pDocTemplPlot;
+ wxDocTemplate* m_pDocTemplText;
+
+ void usage (const char* program);
+
public:
CTSimApp();
bool OnInit();
{ return m_pFrame; }
wxTextCtrl* getLog()
- { return m_pFrame->getLog(); }
+ { return m_pLog; }
wxDocManager* getDocManager()
{ return m_docManager; }
{ return true; }
void setIconForFrame (wxFrame* pFrame);
+ wxConfig* getConfig()
+ { return m_pConfig; }
+
+ 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; }
+
+ ProjectionFileDocument* newProjectionDoc();
+ ImageFileDocument* newImageDoc();
+ PhantomFileDocument* newPhantomDoc();
+ PlotFileDocument* newPlotDoc();
+ TextFileDocument* newTextDoc();
-private:
- wxDocManager* m_docManager;
- MainFrame* m_pFrame;
-
- void usage (const char* program);
-
- static struct option ctsimOptions[];
-
- enum { O_HELP, O_VERSION };
};
DECLARE_APP(CTSimApp)