OSDN Git Service

myListCtrlをwxListViewの派生クラスに変更。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sat, 14 Nov 2009 03:16:30 +0000 (03:16 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sat, 14 Nov 2009 03:16:30 +0000 (03:16 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@102 9df91469-1e22-0410-86e7-ea8537beb833

src/frontend/cls_listctrl.cpp
src/frontend/cls_listctrl.h
src/frontend/frm_main.cpp
src/frontend/functions.cpp

index e998b74..10d850e 100644 (file)
@@ -36,7 +36,7 @@ IMPLEMENT_DYNAMIC_CLASS(myListCtrl, wxListView)
 // Event Table.\r
 //******************************************************************************\r
 \r
-BEGIN_EVENT_TABLE(myListCtrl, wxListCtrl)\r
+BEGIN_EVENT_TABLE(myListCtrl, wxListView)\r
        // ListView\r
        EVT_LIST_COL_CLICK(XRCID("ListView"), myListCtrl::OnColClick)\r
 END_EVENT_TABLE()\r
index f5f0f1a..142e98c 100644 (file)
@@ -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()
index 2dee18d..d481bba 100644 (file)
@@ -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();
 
+       // \8c»\8dÝ\82Ì\83A\83C\83e\83\80\82Ì\91I\91ð\8fó\91Ô\82ð\96³\8cø\82É\82µ\82Ä\82¨\82­\81B
+       long nSelected = this->list_ctrl->GetFirstSelected();
+       while (nSelected != -1)
+       {
+               this->list_ctrl->Select(nSelected, false);
+               nSelected = this->list_ctrl->GetNextSelected(nSelected);
+       }
+
        // \83A\83C\83R\83\93\90Ý\92è\81B
        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 : \83A\83C\83e\83\80\82ª\8eq\8aK\91w\82ð\8e\9d\82Á\82Ä\82¢\82Ä\82à\93W\8aJ\82Å\82«\82È\82¢\81B
        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);
index 2fc6a5f..5ddfd18 100644 (file)
@@ -155,16 +155,16 @@ wxFileName MakeDirPath(wxFileName fnPath, wxString szBase, bool bAct)
 wxArrayString MakeTargetFileList(MainFrame * frm, bool fOnlyOneFile)\r
 {\r
        wxArrayString as;\r
-       for (int i = 0; i < frm->list_ctrl->GetItemCount(); i++)\r
+       const int nState = frm->list_ctrl->GetSelectedItemCount() == 0 ? wxLIST_STATE_DONTCARE : wxLIST_STATE_SELECTED;\r
+       long nId = frm->list_ctrl->GetNextItem(-1, wxLIST_NEXT_ALL, nState);\r
+       while (nId != -1)\r
        {\r
-               if (((as.GetCount() < (unsigned) frm->list_ctrl->GetSelectedItemCount()) && (frm->list_ctrl->GetItemState(i, wxLIST_STATE_SELECTED) & wxLIST_STATE_SELECTED)) || frm->list_ctrl->GetSelectedItemCount() == 0)\r
+               as.Add(frm->list_ctrl->showFileInfo[nId].szStoredName);\r
+               if (fOnlyOneFile)\r
                {\r
-                       as.Add(frm->list_ctrl->showFileInfo[i].szStoredName);\r
-                       if (fOnlyOneFile)\r
-                       {\r
-                               return as;\r
-                       }\r
+                       break;\r
                }\r
+               nId = frm->list_ctrl->GetNextItem(nId, wxLIST_NEXT_ALL, nState);\r
        }\r
 \r
        return as;\r