]> Creatis software - bbtk.git/blobdiff - kernel/appli/bbc/main.cxx.in
*** empty log message ***
[bbtk.git] / kernel / appli / bbc / main.cxx.in
index b4ac5271a21814caf1630d47c2a88404f91ec531..f3bd451a83ef561a30b9178ee144ce6612012394 100644 (file)
@@ -15,8 +15,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 +30,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 +46,7 @@ public:
   bool text_dialog;
 
   std::map<std::string,std::string> param_map;
-  
+
 };
 
 IMPLEMENT_APP(wxBBIApp);
@@ -77,7 +77,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 +105,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 +121,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 +136,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 +155,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 +183,7 @@ int main(int argc, char* argv[])
     {
       I.CommandLineInterpreter();
     }
-  else 
+  else
     {
       std::string f(argv[1]);
       I.InterpretFile(f);