X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkWxGUIScriptingInterface.cxx;h=f06b07eced988fe2dac3cc031f485b96e31f7fcb;hb=98e18224b83c6955a804d79d4e7083626ea8afcd;hp=ad1d963e75d1ea9d1ddc14c3d1a4c48d56a67542;hpb=cf155931d4fded21cd2aaaeb0f3ead82067d2bef;p=bbtk.git diff --git a/kernel/src/bbtkWxGUIScriptingInterface.cxx b/kernel/src/bbtkWxGUIScriptingInterface.cxx index ad1d963..f06b07e 100644 --- a/kernel/src/bbtkWxGUIScriptingInterface.cxx +++ b/kernel/src/bbtkWxGUIScriptingInterface.cxx @@ -1,20 +1,35 @@ -/*========================================================================= - +/*========================================================================= Program: bbtk Module: $RCSfile: bbtkWxGUIScriptingInterface.cxx,v $ Language: C++ - Date: $Date: 2008/10/15 13:02:14 $ - Version: $Revision: 1.26 $ - - Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de - l'Image). All rights reserved. See Doc/License.txt or - http://www.creatis.insa-lyon.fr/Public/bbtk/License.html for details. - - This software is distributed WITHOUT ANY WARRANTY; without even - the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - PURPOSE. See the above copyright notices for more information. - -=========================================================================*//** + Date: $Date: 2009/03/30 15:22:51 $ + Version: $Revision: 1.36 $ +=========================================================================*/ + +/* --------------------------------------------------------------------- + +* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) +* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux +* +* 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. +* ------------------------------------------------------------------------ */ + + +/** * \brief Short description in one line * * Long description which @@ -40,6 +55,7 @@ #include "bbtkUtilities.h" #include +#include //#include "icons/cc_run.xpm" @@ -73,14 +89,14 @@ namespace bbtk : wxFrame((wxFrame *)parent, -1, _T("bbStudio"), wxDefaultPosition, wxSize(1200,800) ) { - // m_mgr = new wxAuiManager(this); m_mgr.SetManagedWindow(this); mInterpreter = bbtk::Interpreter::New(); mInterpreter->SetUser(this); - mInterpreter->SetCommandLine(true); + mInterpreter->SetCommandLine(true); mInterpreter->SetThrow(true); - + // mInterpreter->AddBreakObserver + //boost::bind( &WxGUIScriptingInterface::InterpreterUserOnBreak, this )); //============== // Menu wxInitAllImageHandlers(); @@ -101,7 +117,7 @@ namespace bbtk menuTools->Append( ID_Menu_RegenerateBoxesLists,_T("Regenerate boxes &lists") ); menuTools->Append( ID_Menu_RegenerateAll,_T("Regenerate &all") ); menuTools->AppendSeparator(); - menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last image graph") ); + menuTools->Append( ID_Menu_ShowImageGraph, _T("&Show last graph") ); wxMenu *menuWindows = new wxMenu; menuWindows->AppendCheckItem(ID_Menu_Windows_Files, @@ -113,7 +129,7 @@ namespace bbtk menuWindows->AppendCheckItem(ID_Menu_Windows_Command, _T("Show 'command' panel") )->Check(); menuWindows->AppendSeparator(); - menuWindows->Append( ID_Menu_Windows_PackageBrowser, _T("Launch Package &Browser") ); + menuWindows->Append( ID_Menu_Windows_PackageBrowser, _T("Start Package &Browser") ); // menuWindows->AppendSeparator(); // menuWindows->Append ( ID_Menu_Windows_Save, _T("Save interface configuration")); @@ -214,6 +230,7 @@ namespace bbtk .Bottom() .MinSize(wxSize(100,100)) ); + m_mgr.AddPane(mWxGUICommand, wxAuiPaneInfo().Name(wxT("command_content")) .Caption(wxT("Command")) @@ -245,11 +262,39 @@ namespace bbtk m_mgr.Update(); // LoadPerspective(); + mBreaked = false; + + wxBitmap bitmap; + wxSplashScreen* splash; + long style = wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_TIMEOUT; + if (ConfigurationFile::GetInstance().DotBbtkIsNew()) + style = wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT; + std::string splash_file = ConfigurationFile::GetInstance().Get_data_path(); + splash_file += "/kernel/icons/bbStudioSplashScreen.png"; + + if (bitmap.LoadFile(std2wx(splash_file),wxBITMAP_TYPE_PNG)) + splash = + new wxSplashScreen(bitmap, + style, + 1000, 0, -1, wxDefaultPosition, wxDefaultSize, + wxSIMPLE_BORDER|wxSTAY_ON_TOP); + + + if (ConfigurationFile::GetInstance().DotBbtkIsNew()) + { + + DoRegeneratePackageDoc("-a"); + DoRegenerateBoxesLists(); + + /* + wxTipWindow* tip = new wxTipWindow(this, + _T("\n Welcome to bbStudio !\n\n To run a demo or example:\n 1. click on the 'Demos' or 'Examples' link\n 2. select a demo or example\n 3. click on the '[source]' link : the source file is loaded in bbStudio\n 4. click on the 'Run' button (the arrow at the bottom right of the source file) \n"),1000); + tip->CenterOnParent(); + tip->Show(); + */ + if (splash) splash->Destroy(); + } - wxTipWindow* tip = new wxTipWindow(this, - _T("\n Welcome to bbStudio !\n\n To run a demo or example:\n 1. click on the 'Demos' or 'Examples' link\n 2. select a demo or example\n 3. click on the '[source]' link : the source file is loaded in bbStudio\n 4. click on the 'Run' button (the arrow at the bottom right of the source file) \n"),1000); - tip->CenterOnParent(); - tip->Show(); } //================================================================ @@ -267,24 +312,54 @@ namespace bbtk mWxGUITextEditor->Open(filename); } //================================================================ - -#define CATCH_MACRO \ - catch (QuitException e) \ + /* + catch (BreakException e) \ { \ - std::cout << "* quit exception caught"< 0) { \ - std::cerr << "* Exception thrown : "< 0) { \ + std::cerr << "* Exception thrown : "<GetCurrentPage()->GetText(); try { - // std::cout << "RUN"<IsChecked()) WxGUICommandEnter("reset"); - mInterpreter->InterpretBuffer(buf); + if (!mBreaked) + { + if (mwxMenuItemReset->IsChecked()) WxGUICommandEnter("reset"); + mInterpreter->InterpretBuffer(buf); + } + else + { + mBreaked = false; + mInterpreter->InterpretCurrentStreams(); + } // std::cout << "EO RUN"<InterpretFile(command); +*/ + std::string command("reset"); + mWxGUICommand->SendCommand(command); + command = "include toolsbbtk/appli/GUICreatePackage"; + bbtkMessage("Debug",1,"Executing : '"<SendCommand(command); } //================================================================ @@ -413,31 +501,101 @@ namespace bbtk //================================================================ void WxGUIScriptingInterface::OnMenuCreateBlackBox(wxCommandEvent& WXUNUSED(event)) { + /* std::string command("toolsbbtk/appli/GUICreateBlackBox"); bbtkMessage("Debug",1,"Executing : '"<InterpretFile(command); +*/ + std::string command("reset"); + mWxGUICommand->SendCommand(command); + command = "include toolsbbtk/appli/GUICreateBlackBox"; + bbtkMessage("Debug",1,"Executing : '"<SendCommand(command); } //================================================================ //================================================================ void WxGUIScriptingInterface::OnMenuShowImageGraph(wxCommandEvent& WXUNUSED(event)) { - std::string default_temp_dir = ConfigurationFile::GetInstance().Get_default_temp_dir(); + std::string doc_path = bbtk::ConfigurationFile::GetInstance().Get_doc_path(); + doc_path += bbtk::ConfigurationFile::GetInstance().Get_file_separator(); + doc_path += "bbdoc"; + doc_path += bbtk::ConfigurationFile::GetInstance().Get_file_separator(); + + std::string pack_name("User"); + std::string pack_path = doc_path + pack_name; + + #if defined(WIN32) std::string strappli="start "; #else - std::string strappli="gnome-open "; + #if defined(MACOSX) + std::string strappli="open "; + #else + std::string strappli="gnome-open "; + #endif #endif - std::string strcommand = strappli +default_temp_dir+"/temp_dir/workspace_workspacePrototype.png"; + + std::string strcommand = strappli +pack_path+"/workspace_workspacePrototype.png"; // std::cout << "system: " << strcommand << std::endl; system ( strcommand.c_str() ); } //================================================================ + void WxGUIScriptingInterface::DoRegeneratePackageDoc( const std::string& pack ) + { + std::string mess("Regenerating doc for package '"); + if (pack!="-a") + mess += pack + "'"; + else + mess = "Regenerating doc for all packages"; + mess += " ... please wait"; + + SetStatusText( std2wx(mess) ); + + BBTK_BUSY_CURSOR; + + std::string command; +#if defined(WIN32) + command = "\""; +#endif + command += ConfigurationFile::GetInstance().Get_bin_path(); + command += ConfigurationFile::GetInstance().Get_file_separator(); + command += "bbRegeneratePackageDoc"; +#if defined(WIN32) + command += "\""; +#endif + command += " " + pack + " -q"; + bbtkMessage("debug",1,"Executing system command '"<