//==========================================================================
#include "bbtkInterpreter.h"
#include "bbtkWxBlackBox.h"
-#include "bbtkWxConsole.h"
+#include "bbtkWxGUIConsole.h"
#include <wx/cmdline.h>
#include <vector>
{ 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") },
- { wxCMD_LINE_SWITCH, _T("n"), _T("no-command"), _T("do not show command window") },
+ { wxCMD_LINE_SWITCH, _T("n"), _T("no-command"), _T("do not show command window except on error") },
+ { wxCMD_LINE_SWITCH, _T("N"), _T("no-command-at-all"), _T("do not show command window even on error") },
{ wxCMD_LINE_PARAM, NULL, NULL, _T("input_file"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL | wxCMD_LINE_PARAM_MULTIPLE },
{ wxCMD_LINE_NONE }
};
bool graphical_dialog;
bool text_dialog;
bool no_command;
+ bool no_command_at_all;
std::map<std::string,std::string> param_map;
std::vector<std::string> input_file;
help = ( parser.Found(_T("h")) );
graphical_dialog = ( parser.Found(_T("g")) );
text_dialog = ( parser.Found(_T("t")) );
- no_command = ( parser.Found(_T("n")) );
+ no_command_at_all = ( parser.Found(_T("N")) );
+ no_command = ( parser.Found(_T("n")) || no_command_at_all );
+
// parse the arguments and consider those which contain a "="
// as set input commands, other as files
if (debug) bbtk::MessageManager::SetMessageLevel("All",9);
- bbtk::WxConsole *I = new bbtk::WxConsole(0,_T("bbi"),wxSize(600,400));
+ bbtk::WxGUIConsole *I = new bbtk::WxGUIConsole(0,_T("bbi"),wxSize(800,600));
SetTopWindow(I);
if (!no_command) I->Show(true);
bool help_on_script = help && (input_file.size() > 0);
if (help_on_script) I->SetNoExecMode(true);
- if (graphical_dialog) I->SetDialogMode(bbtk::Executer::GraphicalDialog);
- if (text_dialog) I->SetDialogMode(bbtk::Executer::TextDialog);
+ if (graphical_dialog) I->SetDialogMode(bbtk::VirtualExec::GraphicalDialog);
+ if (text_dialog) I->SetDialogMode(bbtk::VirtualExec::TextDialog);
std::vector<std::string>::const_iterator i;
- for (i=input_file.begin(); i!=input_file.end(); ++i) I->InterpretFile(*i);
+ bool error = false;
+
+ for (i=input_file.begin(); i!=input_file.end(); ++i)
+ {
+ error = ! I->InterpretFile(*i);
+ if (error) break;
+ }
+ bool show_on_error = error && ! no_command_at_all;
+ if (show_on_error) I->Show();
+
I->SetNoExecMode(false);
if (help_on_script)
std::string package;
I->GetInterpreter()->GetExecuter()->GetFactory()->HelpBlackBox("workspace",package,false);
}
- if (!(command || bbtk::Wx::IsSomeWindowShown() ))
+
+ if (!(show_on_error || command || bbtk::Wx::IsSomeWindowShown() ))
{
I->Close();
}