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) );
+ /*
+ * 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/
+ */
+ 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:")
+ {
+ std::cout << "file to open: " << stdData << std::endl;
+ }
- 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");
- }
return true;
}