X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fappli%2Fbbi%2Fbbi.cxx;h=c4729fc90b52f4e7fb261368c7f2a2a601a08eb0;hb=5529db4fdab74bdb508c71ea3c2b8298a1f14a74;hp=a1984f5e38c532779ee274c60da67e68c1d90697;hpb=0f8f0ec85988476e9857f0091a9fc34953c1d9e6;p=bbtk.git diff --git a/kernel/appli/bbi/bbi.cxx b/kernel/appli/bbi/bbi.cxx index a1984f5..c4729fc 100644 --- a/kernel/appli/bbi/bbi.cxx +++ b/kernel/appli/bbi/bbi.cxx @@ -1,5 +1,36 @@ +/* + # --------------------------------------------------------------------- + # + # 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. + # ------------------------------------------------------------------------ */ + +//__asm__(".symver fcntl64,fcntl64@GLIBC_2.27"); + #ifdef _USE_WXWIDGETS_ + +#include + //========================================================================== // WITH WX //========================================================================== @@ -13,27 +44,50 @@ #include //========================================================================== -// Command line options definition -static const wxCmdLineEntryDesc cmdLineDesc[] = -{ - { wxCMD_LINE_SWITCH, _T("h"), _T("help"), _T("print this help or help on the application defined in input bbs file if any") }, - { wxCMD_LINE_SWITCH, _T("g"), _T("graphical-dialog"), _T("prompt the input parameter values using graphical dialog") }, - { wxCMD_LINE_SWITCH, _T("t"), _T("text-dialog"), _T("prompt the input parameter values in text mode") }, - { wxCMD_LINE_SWITCH, _T("c"), _T("console"), _T("open bbi console") }, - { wxCMD_LINE_SWITCH, _T("N"), _T("no-console"), _T("never open bbi console even on error") }, - { wxCMD_LINE_SWITCH, _T("q"), _T("quiet"), _T("be quiet (='message max 0')") }, - { wxCMD_LINE_SWITCH, _T("d"), _T("debug"), _T("turn all messages on (='message all 9')") }, - { wxCMD_LINE_SWITCH, _T("D"), _T("Debug"), _T("memory debug on exit (='debug -D')") }, - { wxCMD_LINE_PARAM, NULL, NULL, _T("file [file [...]]"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE }, - { wxCMD_LINE_NONE } -}; + +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + // Command line options definition + static const wxCmdLineEntryDesc cmdLineDesc[] = + { + { wxCMD_LINE_SWITCH, _T("h"), _T("help"), _T("print this help or help on the application defined in input bbs file if any") }, + { wxCMD_LINE_SWITCH, _T("g"), _T("graphical-dialog"), _T("prompt the input parameter values using graphical dialog") }, + { wxCMD_LINE_SWITCH, _T("t"), _T("text-dialog"), _T("prompt the input parameter values in text mode") }, + { wxCMD_LINE_SWITCH, _T("c"), _T("console"), _T("open bbi console") }, + { wxCMD_LINE_SWITCH, _T("N"), _T("no-console"), _T("never open bbi console even on error") }, + { wxCMD_LINE_SWITCH, _T("q"), _T("quiet"), _T("be quiet (='message max 0')") }, + { wxCMD_LINE_SWITCH, _T("d"), _T("debug"), _T("turn all messages on (='message all 9')") }, + { wxCMD_LINE_SWITCH, _T("D"), _T("Debug"), _T("memory debug on exit (='debug -D')") }, + { wxCMD_LINE_PARAM, NULL, NULL, _T("file [file [...]]"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE }, + { wxCMD_LINE_NONE } + }; +#else + // Command line options definition + static const wxCmdLineEntryDesc cmdLineDesc[] = + { + { wxCMD_LINE_SWITCH, "h", "help", "print this help or help on the application defined in input bbs file if any" }, + { wxCMD_LINE_SWITCH, "g", "graphical-dialog", "prompt the input parameter values using graphical dialog" }, + { wxCMD_LINE_SWITCH, "t", "text-dialog", "prompt the input parameter values in text mode" }, + { wxCMD_LINE_SWITCH, "c", "console", "open bbi console" }, + { wxCMD_LINE_SWITCH, "N", "no-console", "never open bbi console even on error" }, + { wxCMD_LINE_SWITCH, "q", "quiet", "be quiet (='message max 0')" }, + { wxCMD_LINE_SWITCH, "d", "debug", "turn all messages on (='message all 9')" }, + { wxCMD_LINE_SWITCH, "D", "Debug", "memory debug on exit (='debug -D')" }, + { wxCMD_LINE_PARAM, NULL, NULL, "file [file [...]]", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE }, + { wxCMD_LINE_NONE } + }; +#endif + + + + //========================================================================== //========================================================================== // Processes the command line parsing result -struct ProcessCmdLine +struct WxProcessCmdLine { - ProcessCmdLine() {} + WxProcessCmdLine() {} void Process(wxCmdLineParser& parser); // int argc; @@ -53,7 +107,7 @@ struct ProcessCmdLine //========================================================================== //========================================================================== -void ProcessCmdLine::Process(wxCmdLineParser& parser) +void WxProcessCmdLine::Process(wxCmdLineParser& parser) { proceed = true; if (parser.Found(_T("D"))) @@ -61,13 +115,20 @@ void ProcessCmdLine::Process(wxCmdLineParser& parser) bbtk::StaticInitTime::PrintObjectListInfo = true; } - debug = ( parser.Found(_T("d")) ); - quiet = ( parser.Found(_T("q")) ); - help = ( parser.Found(_T("h")) ); - graphical_dialog = ( parser.Found(_T("g")) ); - text_dialog = ( parser.Found(_T("t")) ); - no_console = ( parser.Found(_T("N")) ); - + debug = ( parser.Found(_T("d")) ); + quiet = ( parser.Found(_T("q")) ); + help = ( parser.Found(_T("h")) ); + +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + graphical_dialog = ( parser.Found(_T("wxcommandlineg")) ); +#else + printf("EED Warnning. WxProcessCmdLine::Process g wxcommandlineg \n"); + graphical_dialog = ( parser.Found(_T("g")) ); +#endif + + text_dialog = ( parser.Found(_T("t")) ); + no_console = ( parser.Found(_T("N")) ); if (quiet) bbtk::MessageManager::SetMessageLevel("max",0); if (debug) bbtk::MessageManager::SetMessageLevel("all",9); @@ -103,7 +164,7 @@ void ProcessCmdLine::Process(wxCmdLineParser& parser) ((input_file.size() == 0) && (!no_console) && (!usage) ) ); - + } //========================================================================== @@ -120,7 +181,7 @@ public: void OnInitCmdLine(wxCmdLineParser& parser); bool OnCmdLineParsed(wxCmdLineParser& parser); - ProcessCmdLine cmd; + WxProcessCmdLine cmd; }; //========================================================================== @@ -143,26 +204,30 @@ bool wxBBIApp::OnCmdLineParsed(wxCmdLineParser& parser) - - - //========================================================================== // The `main program' equivalent, creating the windows and returning the // main frame bool wxBBIApp::OnInit( ) { - // std::cout << "OnInit"<Show(true); @@ -171,16 +236,14 @@ bool wxBBIApp::OnInit( ) I->SetInputs(cmd.param_map); bool help_on_script = cmd.help && (cmd.input_file.size() > 0); - if (help_on_script) - I->SetNoExecMode(true); - if (cmd.graphical_dialog) - I->SetDialogMode(bbtk::VirtualExec::GraphicalDialog); - if (cmd.text_dialog) - I->SetDialogMode(bbtk::VirtualExec::TextDialog); + if (help_on_script) I->SetNoExecMode(true); + if (cmd.graphical_dialog) I->SetDialogMode(bbtk::VirtualExec::GraphicalDialog); + if (cmd.text_dialog) I->SetDialogMode(bbtk::VirtualExec::TextDialog); std::vector::const_iterator i; bool error = false; + for (i=cmd.input_file.begin(); i!=cmd.input_file.end(); ++i) { error = ! I->InterpretFile(*i); @@ -194,15 +257,16 @@ bool wxBBIApp::OnInit( ) if (help_on_script) { std::string package; - I->GetInterpreter()->GetExecuter()->GetFactory()->HelpBlackBox("workspace",package,false); + I->GetInterpreter()->GetExecuter()->GetFactory()->PrintHelpDescriptor("workspace",package,false); } + /* std::cout << "soe="<Close"<Close"<InterpretFile(*i); - if (error) break; - } - if (help_on_script) - { - I->SetNoExecMode(false); - std::string package; - I->GetExecuter()->GetFactory()->HelpBlackBox("workspace", - package, - false); - } - if (cmdline.input_file.size()==0) - I->CommandLineInterpreter(); - + { + error = ! I->InterpretFile(*i); + if (error) break; + } + if (help_on_script) + { + I->SetNoExecMode(false); + std::string package; + I->GetExecuter()->GetFactory()->PrintHelpDescriptor("workspace", + package, + false); + } + if (cmdline.input_file.size()==0) + { + I->CommandLineInterpreter(); + } // if cmdline.input_file.size // - } - else - { - // std::cout << "main C"<SetCmdLine(cmdline); - if (wxApp::GetInstance()!=0) - { - std::cout << "WXAPP!!!"<MainLoop(); - //bbtk::Wx::LoopUntilAllWindowsClose(); - */ - } - - std::cout << "EO main"< argv; + bool console; + bool debug; + bool quiet; + bool help; + bool graphical_dialog; + bool text_dialog; + bool no_console; + bool proceed; + std::map param_map; + std::vector input_file; + +}; - if (argc>2) +bool ProcessCmdLine::Found(std::string value) +{ + bool result=false; + for (int i=1; i2) +// { +// std::cout << "usage : "<CommandLineInterpreter(); - } - else - - { - std::string f(argv[1]); - I->InterpretFile(f); - } + { + I->CommandLineInterpreter(); + } else { + + ProcessCmdLine cmd; + cmd.Process(argc,argv); + I->SetInputs(cmd.param_map); + + std::string f(argv[1]); + I->InterpretFile(f); + } - bbtk::Wx::LoopUntilAllWindowsClose(); + // bbtk::Wx::LoopUntilAllWindowsClose(); return 0;