r563: *** empty log message ***
[ctsim.git] / src / ctsim.cpp
index 480331266272ad298179e61cb31aeb4539076c8a..d66101ff0e60bb038d51cd784b4176ee9306462c 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.80 2001/02/19 20:23:17 kevin Exp $
+**  $Id: ctsim.cpp,v 1.82 2001/02/20 22:11:27 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.80 2001/02/19 20:23:17 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.82 2001/02/20 22:11:27 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}
 };
 
@@ -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;
 }
 
 
@@ -815,7 +838,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