X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxGUIScriptingInterface.cxx;h=4d0a5104bea454f12178890157a5502987b4503e;hb=dad2f344cba135eec67eba321b29ffd61975e9c9;hp=a1d274df8542aba28916fae0ea479290d022067d;hpb=7447035e9cd3af93bb4e18183b7f08403c242349;p=bbtk.git diff --git a/kernel/src/bbtkWxGUIScriptingInterface.cxx b/kernel/src/bbtkWxGUIScriptingInterface.cxx index a1d274d..4d0a510 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.cxx +++ b/kernel/src/bbtkWxGUIScriptingInterface.cxx @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $ Language: C++ - Date: $Date: 2008/03/25 10:31:18 $ - Version: $Revision: 1.3 $ + Date: $Date: 2008/04/25 07:33:17 $ + Version: $Revision: 1.8 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -69,9 +69,10 @@ namespace bbtk // m_mgr = new wxAuiManager(this); m_mgr.SetManagedWindow(this); - mInterpreter = new bbtk::Interpreter(); + mInterpreter = bbtk::Interpreter::New(); mInterpreter->SetUser(this); mInterpreter->SetCommandLine(true); + mInterpreter->SetThrow(true); //============== // Menu wxInitAllImageHandlers(); @@ -102,9 +103,15 @@ namespace bbtk menuWindows->AppendSeparator(); menuWindows->Append ( ID_Menu_Windows_Save, _T("Save interface configuration")); + wxMenu *menuOptions = new wxMenu; + mwxMenuItemReset = menuOptions->AppendCheckItem(-1, + _T("Reset before running") ); + mwxMenuItemReset->Check(); + wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( menuFile, _T("&File") ); menuBar->Append( menuTools, _T("&Tools") ); + menuBar->Append( menuOptions, _T("&Options") ); menuBar->Append( menuWindows, _T("&Windows") ); menuBar->Append( menuAbout, _T("About") ); @@ -130,12 +137,22 @@ namespace bbtk mWxGUICommand->SetFocus(); - // Creates and sets the parent window of all bbtk windows - wxWindow* top = new wxPanel(this,-1);//,_T("top")); - top->Hide(); - Wx::SetTopWindow(top); + /* - + mwxNotebook = new wxAuiNotebook(this, + -1, + wxPoint(0, 0), + wxSize(500,500), + wxAUI_NB_TAB_SPLIT + | wxAUI_NB_TAB_MOVE + | wxAUI_NB_TAB_EXTERNAL_MOVE + //| wxAUI_NB_WINDOWLIST_BUTTON + //|wxAUI_NB_SCROLL_BUTTONS + // | wxAUI_NB_CLOSE_BUTTON + //| wxAUI_NB_CLOSE_ON_ACTIVE_TAB + //| wxAUI_NB_CLOSE_ON_ALL_TABS + | wxNO_BORDER); + */ // m_mgr.AddPane(mWxGUITextEditor, wxAuiPaneInfo().Name(wxT("editor_content")) @@ -144,15 +161,17 @@ namespace bbtk .MaximizeButton(true) .Center() .MinSize(wxSize(100,100)) - ); + ); + m_mgr.AddPane(mWxGUIHtmlBrowser, wxAuiPaneInfo().Name(wxT("browser_content")) .Caption(wxT("Help")) .MinimizeButton(true) .MaximizeButton(true) .Right() - .MinSize(wxSize(100,100)) + .MinSize(wxSize(200,100)) ); + m_mgr.AddPane(mWxGUIOutputMessages, wxAuiPaneInfo().Name(wxT("messages_content")) .Caption(wxT("Messages")) @@ -173,6 +192,10 @@ namespace bbtk // m_mgr.AddPane(mwxButtonRun, // wxAuiPaneInfo().Name(wxT("button_run_content"))); + // Creates the parent window of all bbtk windows as a child of this + Wx::CreateTopWindow(this); + // Add the method OnWxSignal as a Wx::Signal observer + //bbtkAddWxSignalObserver(WxGUIPackageBrowser2Window::OnWxSignal); //.PaneBorder(false)); m_mgr.Update(); @@ -197,31 +220,50 @@ namespace bbtk mWxGUITextEditor->Open(filename); } //================================================================ - + +#define CATCH_MACRO \ + catch (QuitException e) \ + { \ + std::cout << "* quit exception caught"< 0) { \ + std::cerr << "* Exception thrown : "< "); s += command + "\n"; mWxGUIOutputMessages->Print(s,wxRED); - - if ( mInterpreter->InterpretLine( command ) == - Interpreter::Interpreter_QUIT ) + + try { - Close(true); + mInterpreter->InterpretLine( command ); } + CATCH_MACRO; } //================================================================ - + //================================================================ /// Runs the interpretation of a file bool WxGUIScriptingInterface::InterpretFile( const std::string& filename) { - if ( mInterpreter->InterpretFile(filename) == - Interpreter::Interpreter_ERROR ) + try { - return false; + mInterpreter->InterpretFile(filename); } + CATCH_MACRO; return true; } //================================================================ @@ -232,55 +274,22 @@ namespace bbtk // wxString temp = mWxGUIHtmlBrowser->GetCurrentPage(); std::stringstream* buf = new std::stringstream; (*buf) << mWxGUITextEditor->GetCurrentPage()->GetText(); - - mInterpreter->SetThrow(true); try { + std::cout << "RUN"<IsChecked()) WxGUICommandEnter("reset"); mInterpreter->InterpretBuffer(buf); + std::cout << "EO RUN"< 0) { - std::cerr << "* Exception thrown : "<GetCurrentPage(); - std::string filename = mWxGUITextEditor->GetCurrentPage();//wx2std(temp); - size_t s = filename.length(); - - Interpreter* I = new Interpreter; - - if ((s>3) && (filename[s-1]=='s') - && (filename[s-2]=='b') - && (filename[s-3]=='b') - && (filename[s-4]=='.')) - { - std::string tmp("Executing "); - tmp += filename; - SetStatusText(std2wx(tmp)); - I->InterpretFile(filename); - } - else - { - SetStatusText(_T("The current page is not a bbs file : cannot execute it")); - } - - delete I; - */ + CATCH_MACRO; + std::cout << "EO RUN 3"<CloseAllPages()) return; Close(true); } //================================================================ @@ -309,7 +318,7 @@ namespace bbtk commandStr = "gedit "; #endif commandStr = commandStr + configFile; - std::cout << "system: " << commandStr << std::endl; + // std::cout << "system: " << commandStr << std::endl; system ( commandStr.c_str() ); } //================================================================ @@ -318,18 +327,13 @@ namespace bbtk //================================================================ void WxGUIScriptingInterface::OnMenuCreatePackage(wxCommandEvent& WXUNUSED(event)) { -printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 01 \n"); - std::string command("toolsbbtk/appli/CreatePackage"); -printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 02 \n"); + std::string command("toolsbbtk/appli/CreatePackage"); bbtkMessage("Debug",1,"Executing : '"<InterpretFile(command); -printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 05 \n"); - delete I; -printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); + } //================================================================ @@ -339,9 +343,9 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); { std::string command("toolsbbtk/appli/CreateBlackBox"); bbtkMessage("Debug",1,"Executing : '"<InterpretFile(command); - delete I; } //================================================================ @@ -356,7 +360,7 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); std::string strappli="gnome-open "; #endif std::string strcommand = strappli +default_temp_dir+"/temp_dir/workspace_workspacePrototype.png"; - std::cout << "system: " << strcommand << std::endl; + // std::cout << "system: " << strcommand << std::endl; system ( strcommand.c_str() ); } @@ -368,10 +372,8 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); { std::string doc_path = ConfigurationFile::GetInstance().Get_doc_path(); std::string filepath = doc_path+"/bbdoc/make-index.bbs"; - Interpreter* I = new Interpreter; -//EED std::cout << "bbi: include "<InterpretFile( filepath ); + Interpreter::Pointer I = Interpreter::New(); I->InterpretLine( "exec freeze"); I->InterpretLine( "include *"); @@ -380,7 +382,6 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); I->InterpretLine( "index "+doc_path+"/bbdoc/index-category.html Categories"); I->InterpretLine( "index "+doc_path+"/bbdoc/index-adaptors.html Adaptors"); - delete I; } //================================================================ @@ -405,7 +406,6 @@ printf("EED WxGUIScriptingInterface::OnMenuCreatePackage 06 \n"); //================================================================ bool WxGUIScriptingInterface::WxGUIHtmlBrowserUserOnLinkClicked(const std::string& target) { - std::cout << "OnLink"<3) && (target[s-1]=='s') && (target[s-2]=='b')