From 23cceba59b4cef956f4102b3cabaa9063f07f180 Mon Sep 17 00:00:00 2001 From: sirakaba Date: Sat, 14 Nov 2009 03:16:30 +0000 Subject: [PATCH] =?utf8?q?myListCtrl=E3=82=92wxListView=E3=81=AE=E6=B4=BE?= =?utf8?q?=E7=94=9F=E3=82=AF=E3=83=A9=E3=82=B9=E3=81=AB=E5=A4=89=E6=9B=B4?= =?utf8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@102 9df91469-1e22-0410-86e7-ea8537beb833 --- src/frontend/cls_listctrl.cpp | 2 +- src/frontend/cls_listctrl.h | 6 +++--- src/frontend/frm_main.cpp | 14 +++++++++----- src/frontend/functions.cpp | 14 +++++++------- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/frontend/cls_listctrl.cpp b/src/frontend/cls_listctrl.cpp index e998b74..10d850e 100644 --- a/src/frontend/cls_listctrl.cpp +++ b/src/frontend/cls_listctrl.cpp @@ -36,7 +36,7 @@ IMPLEMENT_DYNAMIC_CLASS(myListCtrl, wxListView) // Event Table. //****************************************************************************** -BEGIN_EVENT_TABLE(myListCtrl, wxListCtrl) +BEGIN_EVENT_TABLE(myListCtrl, wxListView) // ListView EVT_LIST_COL_CLICK(XRCID("ListView"), myListCtrl::OnColClick) END_EVENT_TABLE() diff --git a/src/frontend/cls_listctrl.h b/src/frontend/cls_listctrl.h index f5f0f1a..142e98c 100644 --- a/src/frontend/cls_listctrl.h +++ b/src/frontend/cls_listctrl.h @@ -22,7 +22,7 @@ #ifndef H_LOADED_CLS_LC #define H_LOADED_CLS_LC -class myListCtrl: public wxListCtrl +class myListCtrl: public wxListView { public: virtual wxString OnGetItemText(long, long) const; @@ -33,8 +33,8 @@ public: ArrayTPI_FILEINFO showFileInfo; wxListItemAttr atDangerItem; - myListCtrl(): wxListCtrl(){} - myListCtrl(wxWindow * parent, wxWindowID id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxLC_ICON, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxListCtrlNameStr): wxListCtrl(parent, id, pos, size, style, validator, name){} + myListCtrl(): wxListView(){} + myListCtrl(wxWindow * parent, wxWindowID id, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxLC_ICON, const wxValidator & validator = wxDefaultValidator, const wxString & name = wxListCtrlNameStr): wxListView(parent, id, pos, size, style, validator, name){} DECLARE_DYNAMIC_CLASS(myListCtrl) DECLARE_EVENT_TABLE() diff --git a/src/frontend/frm_main.cpp b/src/frontend/frm_main.cpp index 2dee18d..d481bba 100644 --- a/src/frontend/frm_main.cpp +++ b/src/frontend/frm_main.cpp @@ -825,7 +825,7 @@ void MainFrame::OnSelectAll(wxCommandEvent &) { for (int i = 0; i < this->list_ctrl->GetItemCount(); i++) { - this->list_ctrl->SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); + this->list_ctrl->Select(i, true); } } @@ -840,6 +840,14 @@ void MainFrame::OnTreeChanged(wxTreeEvent& e) g_hIconLL.RemoveAll(); g_hIconLS.RemoveAll(); + // Œ»Ý‚̃AƒCƒeƒ€‚Ì‘I‘ðó‘Ԃ𖳌ø‚É‚µ‚Ä‚¨‚­B + long nSelected = this->list_ctrl->GetFirstSelected(); + while (nSelected != -1) + { + this->list_ctrl->Select(nSelected, false); + nSelected = this->list_ctrl->GetNextSelected(nSelected); + } + // ƒAƒCƒRƒ“Ý’èB this->list_ctrl->SetImageList(& g_hIconLL, wxIMAGE_LIST_NORMAL); this->list_ctrl->SetImageList(& g_hIconLS, wxIMAGE_LIST_SMALL); @@ -875,10 +883,6 @@ void MainFrame::OnTreeBeginDrag(wxTreeEvent& e) { // TODO : ƒAƒCƒeƒ€‚ªŽqŠK‘w‚ðŽ‚Á‚Ä‚¢‚Ä‚à“WŠJ‚Å‚«‚È‚¢B this->tree_ctrl->SelectItem(e.GetItem()); - for (int i = 0; i < this->list_ctrl->GetItemCount(); i++) - { - this->list_ctrl->SetItemState(i, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); - } wxCommandEvent e1; e1.SetInt(3); diff --git a/src/frontend/functions.cpp b/src/frontend/functions.cpp index 2fc6a5f..5ddfd18 100644 --- a/src/frontend/functions.cpp +++ b/src/frontend/functions.cpp @@ -155,16 +155,16 @@ wxFileName MakeDirPath(wxFileName fnPath, wxString szBase, bool bAct) wxArrayString MakeTargetFileList(MainFrame * frm, bool fOnlyOneFile) { wxArrayString as; - for (int i = 0; i < frm->list_ctrl->GetItemCount(); i++) + const int nState = frm->list_ctrl->GetSelectedItemCount() == 0 ? wxLIST_STATE_DONTCARE : wxLIST_STATE_SELECTED; + long nId = frm->list_ctrl->GetNextItem(-1, wxLIST_NEXT_ALL, nState); + while (nId != -1) { - if (((as.GetCount() < (unsigned) frm->list_ctrl->GetSelectedItemCount()) && (frm->list_ctrl->GetItemState(i, wxLIST_STATE_SELECTED) & wxLIST_STATE_SELECTED)) || frm->list_ctrl->GetSelectedItemCount() == 0) + as.Add(frm->list_ctrl->showFileInfo[nId].szStoredName); + if (fOnlyOneFile) { - as.Add(frm->list_ctrl->showFileInfo[i].szStoredName); - if (fOnlyOneFile) - { - return as; - } + break; } + nId = frm->list_ctrl->GetNextItem(nId, wxLIST_NEXT_ALL, nState); } return as; -- 2.11.0