r326: FFTW additions, filter image generation
[ctsim.git] / src / ctsim.h
index c240096c80db8082419bcbc5c53cd32e19ba4d95..2055227c1f20119ee65a83dcd5f24aeed8bc1c97 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.h,v 1.3 2000/07/18 03:14:35 kevin Exp $
+**  $Id: ctsim.h,v 1.16 2001/01/01 10:14:34 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
 #ifndef __CTSIMH__
 #define __CTSIMH__
 
-#include "wx/docview.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#ifdef HAVE_DMALLOC
+#include <dmalloc.h>
+#endif
+
+class wxMenu;
+class wxDocument;\r
+class ImageFileDocument;\r
+#include <vector>\r
+
+#include "wx/docview.h"\r
 
-// Define a new frame
+// Define a new frame for main window
 class MainFrame: public wxDocParentFrame
 {
     DECLARE_CLASS(MainFrame)
 private:
     wxTextCtrl* m_pLog;
+    wxMenu* m_pWindowMenu;
+
+    enum { MAX_WINDOW_MENUITEMS = 20 };
+    wxMenuItem* m_apWindowMenuItems[MAX_WINDOW_MENUITEMS];
+    wxDocument* m_apWindowMenuData[MAX_WINDOW_MENUITEMS];
 
 public:
     MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, const long type);
     
     void OnAbout (wxCommandEvent& event);
     void OnHelpContents (wxCommandEvent& event);
-    void OnCreatePhantom (wxCommandEvent& event);
+    void OnCreatePhantom (wxCommandEvent& event);\r
+    void OnCreateFilter (wxCommandEvent& event);
     void OnExit (wxCommandEvent& event);
 
+    void OnUpdateUI (wxUpdateUIEvent& event);
+
     wxTextCtrl* getLog() 
        { return m_pLog; }
 
+    void OnWindowMenu0 (wxCommandEvent& event);
+    void OnWindowMenu1 (wxCommandEvent& event);
+    void OnWindowMenu2 (wxCommandEvent& event);
+    void OnWindowMenu3 (wxCommandEvent& event);
+    void OnWindowMenu4 (wxCommandEvent& event);
+    void OnWindowMenu5 (wxCommandEvent& event);
+    void OnWindowMenu6 (wxCommandEvent& event);
+    void OnWindowMenu7 (wxCommandEvent& event);
+    void OnWindowMenu8 (wxCommandEvent& event);
+    void OnWindowMenu9 (wxCommandEvent& event);
+    void OnWindowMenu10 (wxCommandEvent& event);
+    void OnWindowMenu11 (wxCommandEvent& event);
+    void OnWindowMenu12 (wxCommandEvent& event);
+    void OnWindowMenu13 (wxCommandEvent& event);
+    void OnWindowMenu14 (wxCommandEvent& event);
+    void OnWindowMenu15 (wxCommandEvent& event);
+    void OnWindowMenu16 (wxCommandEvent& event);
+    void OnWindowMenu17 (wxCommandEvent& event);
+    void OnWindowMenu18 (wxCommandEvent& event);
+    void OnWindowMenu19 (wxCommandEvent& event);
+
+    void DoWindowMenu (int iMenuPosition, wxCommandEvent& event);
+
     DECLARE_EVENT_TABLE()
 };
 
+
 class wxDocManager;
 class CTSimApp: public wxApp
 {
 public:
-    CTSimApp(void);
-    bool OnInit(void);
-    int OnExit(void);
-    MainFrame* getMainFrame(void) const
+    CTSimApp();
+    bool OnInit();
+    int OnExit();
+    MainFrame* getMainFrame() const
       { return m_pFrame; }
-    wxTextCtrl* getLog(void)
+    wxTextCtrl* getLog()
       { return m_pFrame->getLog(); }
     wxDocManager* getDocManager() 
        { return m_docManager; }
 
-    wxString getUntitledFilename(void);
+    wxString getUntitledFilename();
+\r
+    void getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector<ImageFileDocument*>& vecIF);\r
+\r
+    bool getSetModifyNewDocs() const\r
+    { return false; }\r
 
 private:
     wxDocManager* m_docManager;
@@ -75,7 +124,7 @@ private:
 
     static struct option ctsimOptions[];
 
-    enum { O_HELP };
+    enum { O_HELP, O_VERSION };
 };
 
 DECLARE_APP(CTSimApp)
@@ -86,16 +135,36 @@ extern class CTSimApp* theApp;
 enum {
     MAINMENU_HELP_ABOUT = 500,
     MAINMENU_HELP_CONTENTS,
-    MAINMENU_FILE_CREATE_PHANTOM,
+    MAINMENU_FILE_CREATE_PHANTOM,\r
+    MAINMENU_FILE_CREATE_FILTER,
     MAINMENU_FILE_EXIT,
     IFMENU_FILE_PROPERTIES,
     PJMENU_FILE_PROPERTIES,
     PHMMENU_FILE_PROPERTIES,
-    PJMENU_PROCESS_RECONSTRUCT,
-    IFMENU_VIEW_WINDOW_AUTO,
-    IFMENU_VIEW_WINDOW_MINMAX,
+    PJMENU_PROCESS_RECONSTRUCT,\r
+       IFMENU_PLOT_ROW,\r
+       IFMENU_PLOT_COL,
+    IFMENU_VIEW_SCALE_AUTO,
+    IFMENU_VIEW_SCALE_MINMAX,\r
+       IFMENU_COMPARE_IMAGES,\r
+       IFMENU_COMPARE_ROW,\r
+       IFMENU_COMPARE_COL,\r
+  IFMENU_PROCESS_INVERTVALUES,\r
+  IFMENU_PROCESS_SQRT,\r
+  IFMENU_PROCESS_SQUARE,\r
+  IFMENU_PROCESS_LOG,\r
+  IFMENU_PROCESS_EXP,\r
+  IFMENU_PROCESS_FOURIER,\r
+  IFMENU_PROCESS_INVERSE_FOURIER,\r
+  IFMENU_PROCESS_FFT,\r
+  IFMENU_PROCESS_IFFT,\r
+  IFMENU_PROCESS_MAGNITUDE,\r
+  IFMENU_PROCESS_PHASE,\r
     PHMMENU_PROCESS_RASTERIZE,
-    PHMMENU_PROCESS_PROJECTIONS,
+    PHMMENU_PROCESS_PROJECTIONS,\r
+       PLOTMENU_VIEW_SCALE_MINMAX,\r
+       PLOTMENU_VIEW_SCALE_AUTO,
+    MAINMENU_WINDOW_BASE,
 };
 
 #endif