}\r
\r
// 処理を行う。\r
- ProcessDialog procDlg;\r
- procDlg.Show(true);\r
- if (! tpi.Command(TPI_COMMAND_CREATE, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
{\r
- this->ErrorCheck(tpi.nErrorCode);\r
- return;\r
+ ProcessDialog procDlg;\r
+ procDlg.Show(true);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ if (! tpi.Command(TPI_COMMAND_CREATE, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
+ {\r
+ this->ErrorCheck(tpi.nErrorCode);\r
+ return;\r
+ }\r
+ procDlg.Show(false);\r
}\r
- procDlg.Show(false);\r
tpi.FreeLibrary();\r
\r
if (mkDlg.cbOpenAfter->IsChecked())\r
::wxLogError(_("No plug-in supporting this archive was found!"));\r
return;\r
}\r
- TPICallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
\r
// 配列のサイズを確保。\r
this->fileinfo.Alloc(piInfo.fiInfo.nUnpackedSize);\r
do\r
{\r
piInfo.nProcessedSize++;\r
- if (this->ErrorCheck(TPICallbackProc(TPI_NOTIFY_COMMON, & piInfo)) == TPI_CALLBACK_CANCEL)\r
+ if (this->ErrorCheck(procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo)) == TPI_CALLBACK_CANCEL)\r
{\r
procDlg.Show(false);\r
tpi.CloseArchive();\r
swInfo.szKeyFile = mkDlg.tcKeyfile->GetValue();\r
swInfo.szComment = mkDlg.tcComment->GetValue();\r
\r
- ProcessDialog procDlg;\r
- procDlg.Show(true);\r
- if (! this->tpi.Command(TPI_COMMAND_ADD, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
+ // 処理を行う。\r
{\r
- this->ErrorCheck(tpi.nErrorCode);\r
+ ProcessDialog procDlg;\r
+ procDlg.Show(true);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ if (! tpi.Command(TPI_COMMAND_ADD, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
+ {\r
+ this->ErrorCheck(tpi.nErrorCode);\r
+ }\r
+ procDlg.Show(false);\r
}\r
- procDlg.Show(false);\r
\r
if (mkDlg.cbOpenAfter->IsChecked())\r
{\r
}\r
}\r
\r
- ProcessDialog procDlg;\r
- procDlg.Show(true);\r
- if (! this->tpi.Command(TPI_COMMAND_EXTRACT, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
+ // 処理を行う。\r
{\r
- this->ErrorCheck(tpi.nErrorCode);\r
+ ProcessDialog procDlg;\r
+ procDlg.Show(true);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = mkDlg.files.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ if (! tpi.Command(TPI_COMMAND_EXTRACT, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files))\r
+ {\r
+ this->ErrorCheck(tpi.nErrorCode);\r
+ }\r
+ procDlg.Show(false);\r
}\r
- procDlg.Show(false);\r
\r
if (nMode == 0)\r
{\r
return;\r
}\r
\r
- // 各種設定。\r
- TPI_SWITCHES swInfo;\r
- ProcessDialog procDlg;\r
- procDlg.Show(true);\r
- if (! this->tpi.Command(TPI_COMMAND_DELETE, & swInfo, this->fnArchive.GetFullPath(), MakeTargetFileList(this, false)))\r
+ // 処理を行う。\r
{\r
- this->ErrorCheck(tpi.nErrorCode);\r
+ TPI_SWITCHES swInfo;\r
+ ProcessDialog procDlg;\r
+ procDlg.Show(true);\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ if (! tpi.Command(TPI_COMMAND_DELETE, & swInfo, this->fnArchive.GetFullPath(), asFiles))\r
+ {\r
+ this->ErrorCheck(tpi.nErrorCode);\r
+ }\r
+ procDlg.Show(false);\r
}\r
- procDlg.Show(false); \r
\r
// 書庫を再読み込みする。\r
this->OnArcOpen(e);\r
\r
void MainFrame::OnArcTest(wxCommandEvent&)\r
{\r
- TPI_SWITCHES swInfo;\r
+ // 処理を行う。\r
ProcessDialog procDlg;\r
procDlg.Show(true);\r
- bool bIsCorrect = this->tpi.Command(TPI_COMMAND_TEST, & swInfo, this->fnArchive.GetFullPath(), MakeTargetFileList(this, false));\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ TPI_SWITCHES swInfo;\r
+ bool bIsCorrect = tpi.Command(TPI_COMMAND_TEST, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
procDlg.Show(false);\r
+\r
if (bIsCorrect)\r
{\r
::wxLogMessage(_("This is a correct archive."));\r
\r
void MainFrame::OnArcRepair(wxCommandEvent&)\r
{\r
- TPI_SWITCHES swInfo;\r
+ // 処理を行う。\r
ProcessDialog procDlg;\r
procDlg.Show(true);\r
- if (! this->tpi.Command(TPI_COMMAND_REPAIR, & swInfo, this->fnArchive.GetFullPath(), MakeTargetFileList(this, false)))\r
+ wxArrayString asFiles = MakeTargetFileList(this, false);\r
+\r
+ // コールバックを送信。\r
+ TPI_PROCESSINFO piInfo;\r
+ piInfo.eMessage = TPI_MESSAGE_STATUS;\r
+ piInfo.eStatus = 0x1000;\r
+ piInfo.fiInfo.fnFileName = this->fnArchive;\r
+ piInfo.fiInfo.nUnpackedSize = asFiles.GetCount();\r
+ procDlg.CallbackProc(TPI_NOTIFY_COMMON, & piInfo);\r
+\r
+ TPI_SWITCHES swInfo;\r
+ if (! this->tpi.Command(TPI_COMMAND_REPAIR, & swInfo, this->fnArchive.GetFullPath(), asFiles))\r
{\r
this->ErrorCheck(tpi.nErrorCode);\r
}\r