wxGEditorTabPanel::wxGEditorTabPanel(wxWindow *parent,int id, Factory::Pointer bbtkfactory)
: wxPanel(parent),wxTextDropTarget()
{
- _id=id;
+ _id = id;
_panelAUIMgr = new wxAuiManager(this);
_sceneManager = NULL;
_actualdo = states.begin();
{
//ED02JUIN2010 _sceneManager->disconnectDrop();
- _panelsManager->VerifyLastTabPanel();
+ _panelsManager->VerifyLastTabPanel();
//FCY memory leaks
delete _panelAUIMgr;
delete _sceneManager;
//=========================================================================
void wxGEditorTabPanel::initWxVtkCanvas()
{
- wxVtk3DBaseView *baseview = new wxVtk3DBaseView(this);
+ wxVtk3DBaseView *baseview = new wxVtk3DBaseView(this,NULL);
baseview->Configure();
+//EED 07 juin 2013
+ baseview->GetCamera()->SetViewUp (0, 1, 0);
+ baseview->GetCamera()->SetPosition (0, 0, 1);
+ baseview->GetCamera()->SetFocalPoint (0, 0, 0);
+
//EED 15 oct 2012 _sceneManager=new wxVtkSceneManager(this,baseview,_id);
_sceneManager=new wxVtkSceneManager(this,baseview,_id, _bbtkfactory);
bool wxGEditorTabPanel::OnDropText(wxCoord x, wxCoord y, const wxString& data)
{
- std::string packageName="";
- std::string boxType="";
-
- wxString foo( (data) );
- char str[150];
- strcpy( str, (const char*)foo.mb_str(wxConvUTF8) );
-
- char delims[] = ":";
- char *result = NULL;
- result = strtok( str, delims );
- packageName += result;
- result = strtok( NULL, delims );
- boxType += result;
+ /*
+ * DFGO
+ * To handle bbs and bbg:
+ * handle data parameter to detect if incoming string is file or bbs or
+ * bbg or blackbox.
+ *
+ * For a drag and drop tutorial read:
+ * http://zetcode.com/gui/wxwidgets/dragdrop/
+ */
+
+ //wxMessageBox(data);
+
+ std::string stdData = crea::wx2std(data);
+
+ //std::cout << "Text drop: '" << stdData << "'" << std::endl;
+
+ if(stdData.substr(0,4) == "box:")
+ {
+ int posT = stdData.find_first_of(':', 4);
+ std::string packageName = stdData.substr(4, posT-4);
+ posT = stdData.find_first_not_of(':', posT);
+ std::string boxType = stdData.substr(posT);
+
+ //std::cout << "box: Package='" << packageName << "' BoxType='" << boxType << "'" <<std::endl;
+ /*
+ wxString foo( (data) );
+ char str[150];
+ strcpy( str, (const char*)foo.mb_str(wxConvUTF8) );
+
+ char delims[] = ":";
+ char *result = NULL;
+ result = strtok( str, delims );
+ packageName += result;
+
+ result = strtok( NULL, delims );
+ boxType += result;
+ */
+ if ( _panelsManager->TryToOpenScriptApplication(packageName,boxType) == false )
+ {
+ _sceneManager->createGBlackBox(x,y,packageName, boxType);
+ saveTempandUpdate("drop box");
+ }
+ }
+ // DFGO: file for linux
+ else if(stdData.substr(0,5) == "file:")
+ {
+ stdData=stdData.substr(0,stdData.size()-1);
+ std::cout << "Dropped file: " << stdData << std::endl;
+ std::stringstream ss(stdData);
+ std::getline(ss, stdData, (char)13);
+ while(!ss.eof())
+ {
+ std::string filePath = stdData.substr(7);
+ std::cout << filePath << ": ";
+
+ FILE *ff=fopen(filePath.c_str(),"r");
+ if(
+// wxFile::Exists( crea::std2wx(filePath))
+ ff!=NULL
+ )
+ {
+ fclose(ff);
+ std::cout << "File Exists." << std::endl;
+ wxFileName fileToOpen(crea::std2wx(filePath));
+
+ std::string filetype = crea::wx2std(fileToOpen.GetExt());
+ std::string filename = crea::wx2std(fileToOpen.GetFullName());
+ std::string filepath = crea::wx2std(fileToOpen.GetFullPath());
+
+
+ if(filetype == "bbs")
+ {
+ std::cout << "Importing bbs file." << std::endl;
+ wxMessageBox(crea::std2wx("You are opening a bbs file, "
+ "make sure not to overwrite an existing bbg file "
+ "when saving the pipeline."),
+ crea::std2wx("Opening File Warning"), wxICON_INFORMATION);
+ this->_panelsManager->GetParentGUIEditorGraphicBBS()->OpenBBS(filepath, filename);
+ }
+ else if(filetype == "bbg")
+ {
+ std::cout << "Opening bbg file." << std::endl;
+ this->_panelsManager->GetParentGUIEditorGraphicBBS()->OpenDiagram(filepath, filename);
+ }
+ else
+ {
+ std::cout << "Unknown file type: Can't open this kind of file: " << filetype << std::endl;
+ }
+ }
+ else
+ {
+ std::cout << "File Doesn't Exists. The given path is invalid: " << filePath << std::endl;
+ }
+ std::getline(ss, stdData, (char)13);
+ }
+ }
- if ( _panelsManager->TryToOpenScriptApplication(packageName,boxType) == false )
- {
- _sceneManager->createGBlackBox(x,y,packageName, boxType);
- saveTempandUpdate("drop box");
- }
return true;
}
unsigned short wxGEditorTabPanel::getUndoState( std::string &stun)
{
stun = "Undo";
- if(states.size()>0)
+ if(sstates.size()>0)
{
if(_actualdo == states.begin() )
+// if(sstates.size()==1 )
{
-
+// _sactualdo=sstates.begin();
return 0;
- }
- else
- {
+ } else {
stun +=" - ";
- stun += _sactualdo->substr(0,(--_sactualdo)->find_last_of("."));
+printf("EED wxGEditorTabPanel::getUndoState This mecanisme is not working ?????? _sactualdo sstates _actualdo state \n");
+// stun += _sactualdo->substr(0,(--_sactualdo)->find_last_of("."));
_sactualdo++;
return 1;
}
}
+ return 0;
}
unsigned short wxGEditorTabPanel::getRedoState( std::string &stre)
{
return _sceneManager->GetCategory();
}
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetMessageKind()
+ {
+ return _sceneManager->GetMessageKind();
+ }
+ //=========================================================================
+ std::string wxGEditorTabPanel::GetMessageLevel()
+ {
+ return _sceneManager->GetMessageLevel();
+ }
//=========================================================================
void wxGEditorTabPanel::SetCbName(std::string cbName)
{
_sceneManager->SetDescription( description );
}
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetMessageKind(std::string kind)
+ {
+ _sceneManager->SetMessageKind( kind );
+ }
+
+ //=========================================================================
+ void wxGEditorTabPanel::SetMessageLevel(std::string level)
+ {
+ _sceneManager->SetMessageLevel( level );
+ }
//=========================================================================
//DFCH
void wxGEditorTabPanel::SetFullPath( const std::string& fullpath )