|
From: Emilien K. <cur...@us...> - 2005-03-17 17:51:39
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9288/src Modified Files: FileSystem.cpp FileSystemCtrl.cpp MainFrame.cpp Log Message: Détournement des évènements des FileSystemTreeCtrl par les FileSystem. Maintenant, ce sont les FileSystem qui donnent l'ordre d'ouvrir les documents et plus la mainFrame. Index: FileSystemCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemCtrl.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** FileSystemCtrl.cpp 16 Mar 2005 14:27:37 -0000 1.7 --- FileSystemCtrl.cpp 17 Mar 2005 17:51:24 -0000 1.8 *************** *** 86,89 **** --- 86,91 ---- m_strRootPath() { + if((m_pFileSystem!=NULL)&&(style&WXDC_FSTC_PROCESS_EVENT)!=0) + PushEventHandler(m_pFileSystem); SetImageList(m_pFileSystem->GetImageList(WXDC_SETUP_TREE_ICON_SIZE)); } *************** *** 99,103 **** --- 101,111 ---- { DeleteAllItems(); + // Retire l'ancien passage des évènements au système de fichier. + if((GetWindowStyle()&WXDC_FSTC_PROCESS_EVENT)!=0 && m_pFileSystem!=NULL) + PopEventHandler(false); m_pFileSystem = pFileSystem; + // Ajoute le nouveau passage des évènements au système de fichier. + if((GetWindowStyle()&WXDC_FSTC_PROCESS_EVENT)!=0) + PushEventHandler(m_pFileSystem); SetImageList(m_pFileSystem->GetImageList(WXDC_SETUP_TREE_ICON_SIZE)); } Index: FileSystem.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystem.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FileSystem.cpp 17 Mar 2005 16:18:37 -0000 1.3 --- FileSystem.cpp 17 Mar 2005 17:51:24 -0000 1.4 *************** *** 27,30 **** --- 27,32 ---- #include <wx/tokenzr.h> + #include <wx/dataobj.h> + #include <wx/dnd.h> using namespace wxDevCenter; *************** *** 65,69 **** --- 67,112 ---- + BEGIN_EVENT_TABLE(FileSystem, wxEvtHandler) + EVT_TREE_ITEM_ACTIVATED(wxID_ANY, FileSystem::OnItemActivate) + EVT_TREE_BEGIN_DRAG(wxID_ANY, FileSystem::OnItemDrag) + END_EVENT_TABLE() + // Interception de l'activation d'un évènement. + void FileSystem::OnItemActivate(wxTreeEvent& event) + { + FileSystemTreeCtrl* pTree = wxDynamicCast(event.GetEventObject(), FileSystemTreeCtrl); + + if(pTree!=NULL) // Si l'objet envoyeur est bien un FileSystemTreeCtrl + { + FileSystemTreeItemData* pItemData = (FileSystemTreeItemData*)pTree->GetItemData(event.GetItem()); + FilePath str = pItemData->GetPath(); + if(!pTree->GetFileSystem()->IsDirectory(str)) + wxGetApp().OpenDocument(str); + } + else + event.Skip(); + } + + // Interception d'un début de drag'n'drop. + void FileSystem::OnItemDrag(wxTreeEvent &event) + { + FileSystemTreeCtrl* pTree = wxDynamicCast(event.GetEventObject(), FileSystemTreeCtrl); + + if(pTree!=NULL) // Si l'objet envoyeur est bien un FileSystemTreeCtrl + { + FileSystemTreeItemData* pItemData = (FileSystemTreeItemData*) pTree->GetItemData(event.GetItem()); + FilePath str = pItemData->GetPath(); + if(!pTree->GetFileSystem()->IsDirectory(str)) + { + wxFileDataObject FileData; + FileData.AddFile(str); + wxDropSource dragSource(pTree); + dragSource.SetData(FileData); + dragSource.DoDragDrop(wxDrag_AllowMove); + } + } + else + event.Skip(); + } *************** *** 223,227 **** return false; if(bMountWorkBar) ! wxGetApp().GetWorkBarManager().RegisterWorkBar(CLASSINFO(FileSystemTreeWorkBar), wxT(""), wxT(""), pFileSystem); return true; } --- 266,270 ---- return false; if(bMountWorkBar) ! wxGetApp().GetWorkBarManager().RegisterWorkBar(CLASSINFO(FileSystemTreeWorkBar), pFileSystem->GetFileSystemName(), pFileSystem->GetProtocoleName(), pFileSystem); return true; } *************** *** 251,255 **** return false; ! m_pFSTreeCtrl = new FileSystemTreeCtrl(this, -1, (FileSystem*)m_pExtraObject); wxBoxSizer* pSizer = new wxBoxSizer(wxVERTICAL); pSizer->Add(m_pFSTreeCtrl, 1, wxGROW); --- 294,298 ---- return false; ! m_pFSTreeCtrl = new FileSystemTreeCtrl(this, -1, (FileSystem*)m_pExtraObject, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_ROW_LINES|wxTR_SINGLE|WXDC_FSTC_PROCESS_EVENT); wxBoxSizer* pSizer = new wxBoxSizer(wxVERTICAL); pSizer->Add(m_pFSTreeCtrl, 1, wxGROW); Index: MainFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MainFrame.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MainFrame.cpp 17 Mar 2005 16:18:38 -0000 1.9 --- MainFrame.cpp 17 Mar 2005 17:51:24 -0000 1.10 *************** *** 91,96 **** BEGIN_EVENT_TABLE(MainFrame, TopFrame) EVT_CLOSE(MainFrame::OnClose) - EVT_TREE_ITEM_ACTIVATED(wxID_ANY, MainFrame::OnFileSystemTreeCtrlItemActivate) - EVT_TREE_BEGIN_DRAG(wxID_ANY, MainFrame::OnFileSystemTreeCtrlItemDrag) EVT_STATUS_PANEL(MainFrame::OnStatusChange) --- 91,94 ---- *************** *** 444,487 **** ////////////////////////////////////////////////////////////////////// - // Intercepte les activations pour les arbres de systèmes de fichiers (dblclick) - void MainFrame::OnFileSystemTreeCtrlItemActivate(wxTreeEvent &event) - { - FileSystemTreeCtrl* pTree = wxDynamicCast(event.GetEventObject(), FileSystemTreeCtrl); - - if(pTree!=NULL) // Si l'objet envoyeur est bien un FileSystemTreeCtrl - { - FileSystemTreeItemData* pItemData = (FileSystemTreeItemData*)pTree->GetItemData(event.GetItem()); - FilePath str = pItemData->GetPath(); - if(!pTree->GetFileSystem()->IsDirectory(str)) - wxGetApp().OpenDocument(str); - } - else - event.Skip(); - } - - - /** Evènement début de drag'n'drop.*/ - void MainFrame::OnFileSystemTreeCtrlItemDrag(wxTreeEvent &event) - { - FileSystemTreeCtrl* pTree = wxDynamicCast(event.GetEventObject(), FileSystemTreeCtrl); - - if(pTree!=NULL) // Si l'objet envoyeur est bien un FileSystemTreeCtrl - { - FileSystemTreeItemData* pItemData = (FileSystemTreeItemData*) pTree->GetItemData(event.GetItem()); - FilePath str = pItemData->GetPath(); - if(!pTree->GetFileSystem()->IsDirectory(str)) - { - wxFileDataObject FileData; - FileData.AddFile(str); - wxDropSource dragSource(this); - dragSource.SetData(FileData); - dragSource.DoDragDrop(wxDrag_AllowMove); - } - } - else - event.Skip(); - } - - bool MainFrame::MainFrameDropTarget::OnDropFiles(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxArrayString& filenames) { --- 442,445 ---- |