]> Creatis software - bbtk.git/blobdiff - kernel/appli/bbc/main.cxx.in
#2969 BBTK Bug New Normal - MesureLength box in vtk package
[bbtk.git] / kernel / appli / bbc / main.cxx.in
index b4ac5271a21814caf1630d47c2a88404f91ec531..307a90ed23513a261ce6dfd493a3be7128156a22 100644 (file)
@@ -1,3 +1,29 @@
+/*
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+
 #ifdef _USE_WXWIDGETS_
 
 //==========================================================================
@@ -15,8 +41,8 @@
 
 static const wxCmdLineEntryDesc cmdLineDesc[] =
 {
-  { wxCMD_LINE_SWITCH, _T("d"), _T("debug"), _T("Debug messages on (message All 9)") },
-  { wxCMD_LINE_SWITCH, _T("q"), _T("quiet"),   _T("be quiet") },
+  { wxCMD_LINE_SWITCH, _T("d"), _T("debug"), _T("debug messages on (message all 9)") },
+  { wxCMD_LINE_SWITCH, _T("q"), _T("quiet"),   _T("be quiet (message mac 0)") },
   { wxCMD_LINE_SWITCH, _T("h"), _T("help"),   _T("print help") },
   { wxCMD_LINE_SWITCH, _T("g"), _T("graphical-dialog"),   _T("prompts the user for the parameters values using dialog boxes") },
   { wxCMD_LINE_SWITCH, _T("t"), _T("text-dialog"),   _T("prompts the user for the parameters values in text mode") },
@@ -30,12 +56,12 @@ class wxBBIApp : public wxApp
 {
 public:
   bool OnInit( );
-  int  OnExit() { delete mExecuter; return true; }
+  int  OnExit() { return true; }
   void OnInitCmdLine(wxCmdLineParser& parser);
   bool OnCmdLineParsed(wxCmdLineParser& parser);
   void Run(bbtk::Interpreter*);
 
-  bbtk::Executer* mExecuter;
+  bbtk::Executer::Pointer mExecuter;
   //  int argc;
   //  std::vector<std::string> argv;
   bool command;
@@ -46,7 +72,7 @@ public:
   bool text_dialog;
 
   std::map<std::string,std::string> param_map;
-  
+
 };
 
 IMPLEMENT_APP(wxBBIApp);
@@ -77,7 +103,7 @@ bool wxBBIApp::OnCmdLineParsed(wxCmdLineParser& parser)
          std::string right = s.substr(pos+1,s.size());
          param_map[left]=right;
        }
-      else 
+      else
        {
          std::cout << "'" << s << "' option unrecognized : ignored"<<std::endl;
        }
@@ -105,13 +131,14 @@ bool wxBBIApp::OnInit( )
   setlocale(LC_NUMERIC, "C");
 #endif
   
-  if (quiet) bbtk::MessageManager::SetMessageLevel("All",0);
-  if (debug) bbtk::MessageManager::SetMessageLevel("All",9);
-  
-  bbtk::Wx::CreateInvisibleTopWindow();
+  if (quiet) bbtk::MessageManager::SetMessageLevel("max",0);
+  if (debug) bbtk::MessageManager::SetMessageLevel("all",9);
+  // Creates the parent window of all bbtk windows 
+  bbtk::Wx::CreateTopWindow();
 
   try {
-    mExecuter = new bbtk::Executer();
+    mExecuter = bbtk::Executer::New();
     mExecuter->SetInputs(param_map);
 
     if (help) mExecuter->SetNoExecMode(true);
@@ -120,12 +147,12 @@ bool wxBBIApp::OnInit( )
     if (text_dialog) mExecuter->SetDialogMode(bbtk::VirtualExec::TextDialog);
 
     EXEC_FUNCTION(mExecuter);
-    
+
     mExecuter->SetNoExecMode(false);
 
-    if (help) 
+    if (help)
       {
-       std::string package; 
+       std::string package;
        mExecuter->GetFactory()->HelpBlackBox("workspace",package,false);
       }
   }
@@ -135,18 +162,17 @@ bool wxBBIApp::OnInit( )
       mess += bbtk::std2wx ( e.GetMessage() );
       wxMessageBox(mess,_T("Error"),wxOK | wxICON_ERROR);
       bbtk::Wx::GetTopWindow()->Close();
-      delete mExecuter;
       return false;
     }
-  if (help || !bbtk::Wx::IsSomeWindowAlive()) 
-    { 
+  if (help || !bbtk::Wx::IsSomeWindowAlive())
+    {
       return false;
     }
   return true;
 }
 
 
-#if defined(_WIN32) 
+#if defined(_WIN32)
 
 //  How to have a Console and wxWidgets
 //  http://www.wxwidgets.org/wiki/index.php/MSVC_Setup_Guide
@@ -155,11 +181,11 @@ bool wxBBIApp::OnInit( )
 //  you need to use the linker option "/subsystem:console" and the following code:
 int main(int argc, char* argv[])
 {
-  return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 
+  return WinMain(::GetModuleHandle(NULL), NULL, ::GetCommandLine(),
                 SW_SHOWNORMAL);
 }
 
-#endif // defined(_WIN32) 
+#endif // defined(_WIN32)
 
 
 #else
@@ -183,7 +209,7 @@ int main(int argc, char* argv[])
     {
       I.CommandLineInterpreter();
     }
-  else 
+  else
     {
       std::string f(argv[1]);
       I.InterpretFile(f);