1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#include "SelectDropTargetDlg.h"
#include "imanager.h"
#include "globals.h"
#include "clWorkspaceView.h"
#include <map>
#include "codelite_events.h"
SelectDropTargetDlg::SelectDropTargetDlg(wxWindow* parent, const wxArrayString& folders)
: SelectDropTargetBaseDlg(parent)
, m_folders(folders)
, m_selectedView(NULL)
{
Initialize();
}
SelectDropTargetDlg::~SelectDropTargetDlg() {}
void SelectDropTargetDlg::Initialize()
{
m_views = clGetManager()->GetWorkspaceView()->GetAllPages();
std::for_each(m_views.begin(), m_views.end(), [&](const std::pair<wxString, wxWindow*>& p) {
wxVector<wxVariant> cols;
cols.push_back(p.first);
m_dvListCtrl->AppendItem(cols, (wxUIntPtr)p.second);
});
}
void SelectDropTargetDlg::OnOKUI(wxUpdateUIEvent& event) { event.Enable(m_dvListCtrl->HasSelection()); }
void SelectDropTargetDlg::OnOK(wxCommandEvent& event)
{
event.Skip();
ActivateSelection();
EndModal(wxID_OK);
}
void SelectDropTargetDlg::OnSelectionActivated(wxDataViewEvent& event)
{
ActivateSelection();
EndModal(wxID_OK);
}
void SelectDropTargetDlg::ActivateSelection()
{
wxDataViewItem item = m_dvListCtrl->GetSelection();
if(item.IsOk()) {
wxWindow* page = reinterpret_cast<wxWindow*>(m_dvListCtrl->GetItemData(item));
if(page) {
clCommandEvent event(wxEVT_DND_FOLDER_DROPPED);
event.SetStrings(m_folders);
page->GetEventHandler()->AddPendingEvent(event);
}
}
}
|