From d5fcbfed514cb4624ed0bee1cd882d76f51f1fdf Mon Sep 17 00:00:00 2001 From: sirakaba Date: Mon, 11 Oct 2010 05:05:52 +0000 Subject: [PATCH] =?utf8?q?ArrayLP=5FTPIFILEINFO=E3=82=92wxArrayPtrVoid?= =?utf8?q?=E3=81=AB=E5=A4=89=E6=9B=B4=E3=81=99=E3=82=8B=E3=81=AA=E3=81=A9?= =?utf8?q?=E3=81=AE=E5=BE=AE=E4=BF=AE=E6=AD=A3=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@383 9df91469-1e22-0410-86e7-ea8537beb833 --- src/lychee/cls_config.cpp | 15 ++++++------- src/lychee/cls_listctrl.cpp | 51 ++++++++++++++++++++++++--------------------- src/lychee/cls_listctrl.h | 4 ++-- src/lychee/dlg_make.cpp | 3 +-- src/lychee/frm_main.cpp | 10 ++++----- src/lychee/frm_main.h | 4 ++++ src/lychee/functions.cpp | 2 +- src/lychee/lychee.h | 5 ----- 8 files changed, 48 insertions(+), 46 deletions(-) diff --git a/src/lychee/cls_config.cpp b/src/lychee/cls_config.cpp index d06e3a1..1f5bcba 100644 --- a/src/lychee/cls_config.cpp +++ b/src/lychee/cls_config.cpp @@ -121,11 +121,11 @@ bool myConfig::WriteId(myConfigId confId, bool value) void myConfig::myReadHistory(myConfigId confId, size_t i) { - int Id = confId - CONF_HISTORY_PATH; + wxArrayString * as = & this->asHistory[confId - CONF_HISTORY_PATH]; wxString sz = this->Read(wxString::Format(this->label[confId], i), wxEmptyString); - if (! sz.IsEmpty() && this->asHistory[Id].Index(sz) == wxNOT_FOUND) + if (! sz.IsEmpty() && as->Index(sz) == wxNOT_FOUND) { - this->asHistory[Id].Add(sz); + as->Add(sz); } } @@ -154,15 +154,16 @@ wxString myConfig::ReadHistory(myConfigId confId, size_t i) void myConfig::WriteHistory(myConfigId confId, const wxString & sz) { - int Id = confId - CONF_HISTORY_PATH; if (sz.IsEmpty()) { return; } this->bWriteHistory = true; - if (this->asHistory[Id].Index(sz) != wxNOT_FOUND) + + wxArrayString * as = & this->asHistory[confId - CONF_HISTORY_PATH]; + if (as->Index(sz) != wxNOT_FOUND) { - this->asHistory[Id].Remove(sz); + as->Remove(sz); } - this->asHistory[Id].Insert(sz, 0); + as->Insert(sz, 0); } diff --git a/src/lychee/cls_listctrl.cpp b/src/lychee/cls_listctrl.cpp index b0f9d57..6d86997 100644 --- a/src/lychee/cls_listctrl.cpp +++ b/src/lychee/cls_listctrl.cpp @@ -48,39 +48,40 @@ END_EVENT_TABLE() wxString myListCtrl::OnGetItemText(long i, long column) const { // リストビューに項目を追加。 + TPI_FILEINFO * fi = (TPI_FILEINFO *) this->apShowFile[i]; switch (column) { case 0: - return this->showFileInfo[i]->fnFileName.GetFullName(); + return fi->fnFileName.GetFullName(); case 1: - return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), this->showFileInfo[i]->nUnpackedSize); + return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), fi->nUnpackedSize); case 2: - return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), this->showFileInfo[i]->nPackedSize); + return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), fi->nPackedSize); case 3: - return wxString::Format(wxT("%3.1f%%"), this->showFileInfo[i]->wCompressRatio / 10.0); + return wxString::Format(wxT("%3.1f%%"), fi->wCompressRatio / 10.0); case 4: - return this->showFileInfo[i]->szMethod; + return fi->szMethod; case 5: { wxString szTemp = wxT("---w-"); - szTemp[0] = this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_DIRECTORY ? wxT('d') : - this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_ARCHIVE ? wxT('a') : wxT('-'); - szTemp[1] = this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_SYSTEM ? wxT('s') : wxT('-'); - szTemp[2] = this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_HIDDEN ? wxT('h') : wxT('-'); - szTemp[3] = this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_READONLY ? wxT('r') : wxT('w'); - szTemp[4] = this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_ENCRYPTED ? wxT('g') : wxT('-'); + szTemp[0] = fi->dwAttribute & TPI_ATTRIBUTE_DIRECTORY ? wxT('d') : + fi->dwAttribute & TPI_ATTRIBUTE_ARCHIVE ? wxT('a') : wxT('-'); + szTemp[1] = fi->dwAttribute & TPI_ATTRIBUTE_SYSTEM ? wxT('s') : wxT('-'); + szTemp[2] = fi->dwAttribute & TPI_ATTRIBUTE_HIDDEN ? wxT('h') : wxT('-'); + szTemp[3] = fi->dwAttribute & TPI_ATTRIBUTE_READONLY ? wxT('r') : wxT('w'); + szTemp[4] = fi->dwAttribute & TPI_ATTRIBUTE_ENCRYPTED ? wxT('g') : wxT('-'); return szTemp; } case 6: - return this->showFileInfo[i]->tmModified.Format(_("%Y/%m/%d %H:%M:%S")); + return fi->tmModified.Format(_("%Y/%m/%d %H:%M:%S")); case 7: - return this->showFileInfo[i]->fnFileName.GetPath(); + return fi->fnFileName.GetPath(); case 8: - return GetFileTypeName(this->showFileInfo[i]->fnFileName); + return GetFileTypeName(fi->fnFileName); case 9: - return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), this->showFileInfo[i]->nFileId); + return wxString::Format(wxString("%" wxLongLongFmtSpec "u"), fi->nFileId); case 10: - return this->showFileInfo[i]->szComment; + return fi->szComment; default: return wxEmptyString; } @@ -88,7 +89,7 @@ wxString myListCtrl::OnGetItemText(long i, long column) const int myListCtrl::OnGetItemImage(long i) const { - wxIcon icon = GetFileTypeIcon(this->showFileInfo[i]->fnFileName); + wxIcon icon = GetFileTypeIcon(((TPI_FILEINFO *) this->apShowFile[i])->fnFileName); g_hIconLL.Add(icon); // wxGTKで16x16のアイコンが表示できるようリサイズしておく。 #ifdef __WINDOWS__ @@ -100,9 +101,10 @@ int myListCtrl::OnGetItemImage(long i) const wxListItemAttr * myListCtrl::OnGetItemAttr(long i) const { + TPI_FILEINFO * fi = (TPI_FILEINFO *) this->apShowFile[i]; return - this->showFileInfo[i]->eDanger ? (wxListItemAttr *) & this->atDangerItem : - this->showFileInfo[i]->dwAttribute & TPI_ATTRIBUTE_ENCRYPTED ? (wxListItemAttr *) & this->atEncryptedItem : NULL; + fi->eDanger ? (wxListItemAttr *) & this->atDangerItem : + fi->dwAttribute & TPI_ATTRIBUTE_ENCRYPTED ? (wxListItemAttr *) & this->atEncryptedItem : NULL; } void myListCtrl::OnColClick(wxListEvent& e) @@ -111,9 +113,10 @@ void myListCtrl::OnColClick(wxListEvent& e) g_fSortAscend = ! (g_nSortColumn == e.GetColumn() && g_fSortAscend); // ソート。 - this->showFileInfo.Sort(& ListCtrlCompareProc); - this->SetItemCount(this->showFileInfo.GetCount()); - this->RefreshItems(0, this->showFileInfo.GetCount() - 1); + size_t nCount = this->apShowFile.GetCount(); + this->apShowFile.Sort(& ListCtrlCompareProc); + this->SetItemCount(nCount); + this->RefreshItems(0, nCount - 1); } //****************************************************************************** @@ -122,9 +125,9 @@ void myListCtrl::OnColClick(wxListEvent& e) #define NumCmp(member) (item1->member < item2->member) ? -1 : ((item1->member > item2->member) ? 1 : 0) -int ListCtrlCompareProc(TPI_FILEINFO ** pItem1, TPI_FILEINFO ** pItem2) +int ListCtrlCompareProc(void ** pItem1, void ** pItem2) { - TPI_FILEINFO * item1 = * pItem1, * item2 = * pItem2; + TPI_FILEINFO * item1 = (TPI_FILEINFO *) * pItem1, * item2 = (TPI_FILEINFO *) * pItem2; return (g_fSortAscend ? 1 : -1) * ( g_nSortColumn == 0 ? ::wxStricmp(item1->fnFileName.GetFullName(), item2->fnFileName.GetFullName()) : // Filename g_nSortColumn == 1 ? NumCmp(nUnpackedSize) : // Unpacked diff --git a/src/lychee/cls_listctrl.h b/src/lychee/cls_listctrl.h index 538622a..720256d 100644 --- a/src/lychee/cls_listctrl.h +++ b/src/lychee/cls_listctrl.h @@ -30,7 +30,7 @@ public: virtual wxListItemAttr * OnGetItemAttr(long) const; void OnColClick(wxListEvent&); - ArrayLPTPI_FILEINFO showFileInfo; + wxArrayPtrVoid apShowFile; wxListItemAttr atDangerItem, atEncryptedItem; myListCtrl(): wxListView(){} @@ -40,7 +40,7 @@ public: DECLARE_EVENT_TABLE() }; -int ListCtrlCompareProc(TPI_FILEINFO **, TPI_FILEINFO **); +int ListCtrlCompareProc(void **, void **); extern wxImageList g_hIconLL, g_hIconLS; extern int g_nSortColumn; extern bool g_fSortAscend; diff --git a/src/lychee/dlg_make.cpp b/src/lychee/dlg_make.cpp index a8fd2b3..d25f9ac 100644 --- a/src/lychee/dlg_make.cpp +++ b/src/lychee/dlg_make.cpp @@ -249,8 +249,7 @@ void MakeDialog::OnBtnDefault(wxCommandEvent&) void MakeDialog::OnBtnDesktop(wxCommandEvent&) { - wxFileName fn(wxFileName::GetHomeDir(), wxT("Desktop")); - this->cbDir->SetValue(fn.GetFullPath()); + this->cbDir->SetValue(wxFileName(wxFileName::GetHomeDir(), wxT("Desktop")).GetFullPath()); } void MakeDialog::OnBtnCurrent(wxCommandEvent&) diff --git a/src/lychee/frm_main.cpp b/src/lychee/frm_main.cpp index 32c221f..1baeee3 100644 --- a/src/lychee/frm_main.cpp +++ b/src/lychee/frm_main.cpp @@ -481,7 +481,7 @@ void MainFrame::OnArcClose(wxCommandEvent& e) // ツリービュー・リストビュー設定。 this->tree_ctrl->DeleteAllItems(); this->list_ctrl->DeleteAllItems(); - this->list_ctrl->showFileInfo.Clear(); + this->list_ctrl->apShowFile.Clear(); // ツールバー・メニューバー設定。 SetMenuToolState("Arc_Close", false); @@ -908,7 +908,7 @@ void MainFrame::OnTreeChanged(wxTreeEvent& e) // ツリービューからパスを取得。 wxString szNodePath = TreeView_GetItemPath(this->tree_ctrl, e.GetItem()); // リストビューを初期化。 - this->list_ctrl->showFileInfo.Clear(); + this->list_ctrl->apShowFile.Clear(); this->list_ctrl->DeleteAllItems(); g_hIconLL.RemoveAll(); g_hIconLS.RemoveAll(); @@ -943,13 +943,13 @@ void MainFrame::OnTreeChanged(wxTreeEvent& e) continue; } - this->list_ctrl->showFileInfo.Add(& this->fileinfo[i]); + this->list_ctrl->apShowFile.Add(& this->fileinfo[i]); } } // ソートして表示。 - this->list_ctrl->showFileInfo.Sort(& ListCtrlCompareProc); - this->list_ctrl->SetItemCount(this->list_ctrl->showFileInfo.GetCount()); + this->list_ctrl->apShowFile.Sort(& ListCtrlCompareProc); + this->list_ctrl->SetItemCount(this->list_ctrl->apShowFile.GetCount()); } void MainFrame::OnTreeBeginDrag(wxTreeEvent& e) diff --git a/src/lychee/frm_main.h b/src/lychee/frm_main.h index 02819a3..2072555 100644 --- a/src/lychee/frm_main.h +++ b/src/lychee/frm_main.h @@ -24,6 +24,10 @@ #ifndef H_LOADED_FRM_MAIN #define H_LOADED_FRM_MAIN +#include + +WX_DECLARE_OBJARRAY(TPI_FILEINFO, ArrayTPI_FILEINFO); + class MainFrame: public wxFrame { public: wxTreeCtrl * tree_ctrl; diff --git a/src/lychee/functions.cpp b/src/lychee/functions.cpp index 6d1210f..a2e6391 100644 --- a/src/lychee/functions.cpp +++ b/src/lychee/functions.cpp @@ -160,7 +160,7 @@ wxArrayString MakeTargetFileList(MainFrame * frm, bool fOnlyOneFile) long nId = frm->list_ctrl->GetNextItem(-1, wxLIST_NEXT_ALL, nState); while (nId != -1) { - as.Add(frm->list_ctrl->showFileInfo[nId]->szStoredName); + as.Add(((TPI_FILEINFO *) frm->list_ctrl->apShowFile[nId])->szStoredName); if (fOnlyOneFile) { break; diff --git a/src/lychee/lychee.h b/src/lychee/lychee.h index 0bb9495..e1ff27e 100644 --- a/src/lychee/lychee.h +++ b/src/lychee/lychee.h @@ -35,11 +35,6 @@ #include "../common/handle/TPIHandle.h" -#include - -WX_DECLARE_OBJARRAY(TPI_FILEINFO, ArrayTPI_FILEINFO); -WX_DEFINE_ARRAY_PTR(TPI_FILEINFO *, ArrayLPTPI_FILEINFO); - #include "cls_listctrl.h" #include "cls_config.h" -- 2.11.0