r564: *** empty log message ***
[ctsim.git] / src / ctsim.cpp
index 246d2d1bdf4ff603f07a86acccb73f6b95864774..c6df4ae743dce967d021bf82c80e6355beaebae4 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.78 2001/02/16 00:28:41 kevin Exp $
+**  $Id: ctsim.cpp,v 1.83 2001/02/21 00:09:31 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
 #endif
 #endif
 
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.78 2001/02/16 00:28:41 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.83 2001/02/21 00:09:31 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
        {"help", 0, 0, O_HELP},
        {"version", 0, 0, O_VERSION},
+  {"print", 0, 0, O_PRINT},
        {0, 0, 0, 0}
 };
 
 IMPLEMENT_APP(CTSimApp)
 
 CTSimApp::CTSimApp()
-: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_pConfig(0),
-  m_bAdvancedOptions(false), m_bSetModifyNewDocs(true)
+:  m_bAdvancedOptions(false), m_bSetModifyNewDocs(true), 
+  m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_pConfig(0)
 {
        theApp = this;
 }
@@ -108,6 +109,7 @@ CTSimApp::OnInit()
        openConfig();
        
        g_bRunningWXWindows = true;
+  bool bPrintFiles = false;
        // process options
        while (1) {
                int c = getopt_long (argc, argv, "", ctsimOptions, NULL);
@@ -127,6 +129,9 @@ CTSimApp::OnInit()
                case '?':
                        usage (argv[0]);
                        exit (0);
+    case O_PRINT:
+      bPrintFiles = true;
+      break;
                default:
                        usage (argv[0]);
                        exit (1);
@@ -203,10 +208,28 @@ CTSimApp::OnInit()
 
        for (int i = optind + 1; i <= argc; i++) {
                wxString filename = argv [i - 1];
-               m_docManager->CreateDocument (filename, wxDOC_SILENT);
+               wxDocument* pNewDoc = m_docManager->CreateDocument (filename, wxDOC_SILENT);
+    if (bPrintFiles) {
+      wxView* pNewView = pNewDoc->GetFirstView();
+      wxPrintout *printout = pNewView->OnCreatePrintout();
+      if (printout) {
+        wxPrinter printer;
+        printer.Print(pNewView->GetFrame(), printout, TRUE);
+        delete printout;
+      }
+      wxCommandEvent nullEvent;
+      nullEvent.SetId (wxID_CLOSE);
+      m_docManager->OnFileClose (nullEvent);
+    }
        }
-       
-       return true;
+  if (bPrintFiles) {
+    wxCommandEvent closeEvent;
+    closeEvent.SetInt (MAINMENU_FILE_EXIT);
+    m_pFrame->AddPendingEvent(closeEvent);
+  }
+
+
+  return true;
 }
 
 
@@ -291,7 +314,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_TOPICS, MainFrame::OnHelpTopics)
+EVT_MENU(IDH_QUICKSTART, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_PROJECTIONS, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_RECONSTRUCTION, MainFrame::OnHelpButton)
@@ -303,6 +326,7 @@ EVT_BUTTON(IDH_DLG_COMPARISON, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_PREFERENCES, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_POLAR, MainFrame::OnHelpButton)
 EVT_BUTTON(IDH_DLG_AUTOSCALE, MainFrame::OnHelpButton)
+
 EVT_SIZE(MainFrame::OnSize)
 
 #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
@@ -369,7 +393,8 @@ 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_TOPICS, "&Topics\tCtrl-T");
+
+  help_menu->Append (IDH_QUICKSTART, "&Quick Start");
 #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
        help_menu->Append (MAINMENU_HELP_SECONDARY, "&Secondary Help");
 #endif
@@ -406,16 +431,15 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
        
        wxAcceleratorEntry accelEntries[15];
        accelEntries[0].Set (wxACCEL_CTRL, static_cast<int>('O'), wxID_OPEN);
-       accelEntries[1].Set (wxACCEL_CTRL, static_cast<int>('H'), MAINMENU_HELP_TOPICS);
        accelEntries[2].Set (wxACCEL_CTRL, static_cast<int>('P'), MAINMENU_FILE_CREATE_PHANTOM);
        accelEntries[3].Set (wxACCEL_CTRL, static_cast<int>('F'), MAINMENU_FILE_CREATE_FILTER);
-#ifndef CTSIM_MDI
        accelEntries[4].Set (wxACCEL_NORMAL, WXK_F1, MAINMENU_HELP_CONTENTS);
+#ifndef CTSIM_MDI
        for (i = 0; i < 10; i++)
                accelEntries[i+4].Set (wxACCEL_CTRL, static_cast<int>('0'+i), MAINMENU_WINDOW_BASE+i);
        wxAcceleratorTable accelTable (15, accelEntries);
 #else
-       wxAcceleratorTable accelTable (4, accelEntries);
+       wxAcceleratorTable accelTable (5, accelEntries);
 #endif
        
        SetAcceleratorTable (accelTable);
@@ -537,11 +561,6 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vector<Imag
        }
 }
 
-void 
-MainFrame::OnHelpTopics (wxCommandEvent& event)
-{
-       showHelp (event.GetId());
-}
 
 void 
 MainFrame::OnHelpContents (wxCommandEvent& event)
@@ -575,20 +594,28 @@ MainFrame::showHelp (int commandID)
                m_htmlHelp.DisplayContents ();
 #endif
                break;
-               
-       case MAINMENU_HELP_TOPICS:
+
+        case IDH_QUICKSTART:
 #ifdef CTSIM_WINHELP
-               m_winHelp.DisplaySection (IDH_INTRODUCTION);
+    m_winHelp.DisplaySection (commandID);
 #else
-               m_htmlHelp.DisplayIndex();
+    m_htmlHelp.Display (_T("Quick Start"));
 #endif
-               break;
-               
+    break;
+
+       case IDH_DLG_PROJECTIONS:
+#ifdef CTSIM_WINHELP
+    m_winHelp.DisplaySection (commandID);
+#else
+    m_htmlHelp.DisplaySection (_T("IDH_DLG_PROJECTIONS"));
+#endif
+    break;
+
        default:
 #ifdef CTSIM_WINHELP
     m_winHelp.DisplaySection (commandID);
 #else
-    m_htmlHelp.DisplaySection (commandID);
+    m_htmlHelp.Display (commandID);
 #endif
                break;
        }
@@ -828,7 +855,7 @@ MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )
        wxBitmap bmp (splash);
        if (bmp.Ok()) {
                BitmapDialog dlg (&bmp, "About CTSim");
-               dlg.Show(true);
+               dlg.ShowModal();
        } else {
                wxString msg = "CTSim\nThe Open Source Computed Tomography Simulator\n";
 #ifdef CTSIMVERSION