|
From: John L. <jr...@us...> - 2011-06-10 03:08:10
|
Update of /cvsroot/wxlua/wxLua/modules/wxluadebug/src
In directory vz-cvs-4.sog:/tmp/cvs-serv31813/modules/wxluadebug/src
Modified Files:
wxlstack.cpp
Log Message:
Allow copying whole row to the clipboard
Index: wxlstack.cpp
===================================================================
RCS file: /cvsroot/wxlua/wxLua/modules/wxluadebug/src/wxlstack.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** wxlstack.cpp 22 Dec 2009 22:57:02 -0000 1.36
--- wxlstack.cpp 10 Jun 2011 03:08:06 -0000 1.37
***************
*** 146,150 ****
if (!wxDialog::Create(parent, id, title, pos, size,
! wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL | wxMAXIMIZE_BOX | wxRESIZE_BORDER))
return false;
--- 146,151 ----
if (!wxDialog::Create(parent, id, title, pos, size,
! wxDEFAULT_DIALOG_STYLE | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxRESIZE_BORDER,
! wxT("wxLuaStackDialog")))
return false;
***************
*** 284,288 ****
m_listCtrl = new wxLuaStackListCtrl(this, m_splitterWin, ID_WXLUA_STACK_LISTCTRL,
wxDefaultPosition, wxDefaultSize,
! wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_HRULES|wxLC_VRULES|wxLC_VIRTUAL );
m_listCtrl->SetImageList(m_imageList, wxIMAGE_LIST_SMALL);
--- 285,289 ----
m_listCtrl = new wxLuaStackListCtrl(this, m_splitterWin, ID_WXLUA_STACK_LISTCTRL,
wxDefaultPosition, wxDefaultSize,
! wxLC_REPORT|wxLC_HRULES|wxLC_VRULES|wxLC_VIRTUAL ); // wxLC_SINGLE_SEL
m_listCtrl->SetImageList(m_imageList, wxIMAGE_LIST_SMALL);
***************
*** 307,315 ****
m_listMenu = new wxMenu(wxEmptyString, 0);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY0, wxT("Copy name"), wxT("Copy name to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY1, wxT("Copy level"), wxT("Copy level to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY2, wxT("Copy key type"), wxT("Copy key type to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY3, wxT("Copy value type"), wxT("Copy value type to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY4, wxT("Copy value"), wxT("Copy value to clipboard"), wxITEM_NORMAL);
// -----------------------------------------------------------------------
--- 308,317 ----
m_listMenu = new wxMenu(wxEmptyString, 0);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_ROW, wxT("Copy row"), wxT("Copy whole row clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_COL0, wxT("Copy name"), wxT("Copy name to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_COL1, wxT("Copy level"), wxT("Copy level to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_COL2, wxT("Copy key type"), wxT("Copy key type to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_COL3, wxT("Copy value type"), wxT("Copy value type to clipboard"), wxITEM_NORMAL);
! m_listMenu->Append(ID_WXLUA_STACK_LISTMENU_COPY_COL4, wxT("Copy value"), wxT("Copy value to clipboard"), wxITEM_NORMAL);
// -----------------------------------------------------------------------
***************
*** 329,333 ****
Maximize();
-
EnumerateStack();
--- 331,334 ----
***************
*** 821,839 ****
m_findMenu->Check(ID_WXLUA_STACK_FINDMENU_ALL, all_checked);
}
! else if ((id >= ID_WXLUA_STACK_LISTMENU_COPY0) && (id <= ID_WXLUA_STACK_LISTMENU_COPY4))
{
long list_item = m_listCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
! // they must select an item
! if (list_item >= 0)
{
! wxString s(GetItemText(list_item, id - ID_WXLUA_STACK_LISTMENU_COPY0, true));
!
! if (wxTheClipboard->Open())
{
! // These data objects are held by the clipboard,
! // so do not delete them in the app.
! wxTheClipboard->SetData( new wxTextDataObject(s) );
! wxTheClipboard->Close();
}
}
}
--- 822,856 ----
m_findMenu->Check(ID_WXLUA_STACK_FINDMENU_ALL, all_checked);
}
! else if ((id >= ID_WXLUA_STACK_LISTMENU_COPY_ROW) && (id <= ID_WXLUA_STACK_LISTMENU_COPY_COL4))
{
+ wxString s;
+
long list_item = m_listCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
! // iterate all selected items, separated by \n
! while (list_item >= 0)
{
! if (!s.IsEmpty()) s += wxT("\n");
!
! if (id == ID_WXLUA_STACK_LISTMENU_COPY_ROW)
{
! s += GetItemText(list_item, 0, true);
!
! for (int i = 1; i < LIST_COL__MAX; ++i)
! s += wxT("\t") + GetItemText(list_item, i, true);
! }
! else // ((id >= ID_WXLUA_STACK_LISTMENU_COPY_COL0) && (id <= ID_WXLUA_STACK_LISTMENU_COPY_COL4))
! {
! s += GetItemText(list_item, id - ID_WXLUA_STACK_LISTMENU_COPY_COL0, true);
}
+
+ list_item = m_listCtrl->GetNextItem(list_item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
+ }
+
+ if (wxTheClipboard->Open())
+ {
+ // These data objects are held by the clipboard,
+ // so do not delete them in the app.
+ wxTheClipboard->SetData( new wxTextDataObject(s) );
+ wxTheClipboard->Close();
}
}
|