From e850e2ac3288aea3413356b1ba6b2bf68d4d074d Mon Sep 17 00:00:00 2001 From: sirakaba Date: Sat, 6 Feb 2010 11:51:47 +0000 Subject: [PATCH] =?utf8?q?=E3=82=B3=E3=83=BC=E3=83=AB=E3=83=90=E3=83=83?= =?utf8?q?=E3=82=AF=E9=96=A2=E6=95=B0=E3=81=AE=E5=AE=9F=E8=B3=AA=E7=9A=84?= =?utf8?q?=E3=81=AA=E5=87=A6=E7=90=86=E3=82=92=E9=80=B2=E6=8D=97=E7=8A=B6?= =?utf8?q?=E6=B3=81=E8=A1=A8=E7=A4=BA=E3=83=80=E3=82=A4=E3=82=A2=E3=83=AD?= =?utf8?q?=E3=82=B0=E3=81=AE=E3=82=AF=E3=83=A9=E3=82=B9=E5=86=85=E3=81=AB?= =?utf8?q?=E7=A7=BB=E5=8B=95=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@209 9df91469-1e22-0410-86e7-ea8537beb833 --- src/lychee/dlg_process.cpp | 58 +++++++++++++++++++++++++--------------------- src/lychee/dlg_process.h | 1 + 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/lychee/dlg_process.cpp b/src/lychee/dlg_process.cpp index c1df0f4..f3dab80 100644 --- a/src/lychee/dlg_process.cpp +++ b/src/lychee/dlg_process.cpp @@ -73,11 +73,7 @@ void ProcessDialog::OnClose(wxCloseEvent & e) e.Veto(); } -//****************************************************************************** -// ダイアログプロシージャ -//****************************************************************************** - -int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) +int ProcessDialog::CallbackProc(unsigned int _uMsg, void * _pStructure) { if (_uMsg != TPI_NOTIFY_COMMON) { @@ -85,7 +81,7 @@ int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) } TPI_PROCESSINFO * piInfo = (TPI_PROCESSINFO *) _pStructure; - if (g_procDlg == NULL || piInfo == NULL || ! g_procDlg->IsShown()) + if (piInfo == NULL || ! g_procDlg->IsShown()) { return TPI_CALLBACK_CONTINUE; } @@ -98,44 +94,45 @@ int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) switch (piInfo->uStatus) { case TPI_STATUS_OPENARCHIVE: - g_procDlg->ebSource->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); + this->ebSource->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); break; case TPI_STATUS_BEGINPROCESS: - g_procDlg->ebTarget->ChangeValue((piInfo->fnDestination.IsOk() ? piInfo->fnDestination : piInfo->fiInfo.fnFileName).GetFullPath()); + this->ebSource->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); + this->ebTarget->ChangeValue(piInfo->fnDestination.GetFullPath()); if (piInfo->fiInfo.llUnpackedSize > 10000) { - g_procDlg->gauge->SetRange(piInfo->fiInfo.llUnpackedSize.ToULong()); - g_procDlg->gauge->SetValue(0); + this->gauge->SetRange(piInfo->fiInfo.llUnpackedSize.ToULong()); + this->gauge->SetValue(0); } - ::wxSafeYield(g_procDlg, true); + ::wxSafeYield(this, true); break; case TPI_STATUS_INPROCESS: if (s_nGaugeCounter++ > 100) { if (piInfo->fiInfo.llUnpackedSize > 10000) { - g_procDlg->gauge->SetValue(piInfo->llProcessedSize.ToULong()); + this->gauge->SetValue(piInfo->llProcessedSize.ToULong()); } - ::wxSafeYield(g_procDlg, true); + ::wxSafeYield(this, true); s_nGaugeCounter = 0; } break; case TPI_STATUS_ENDPROCESS: -// g_procDlg->gauge->SetValue(piInfo->fiInfo.llUnpackedSize.ToULong()); +// this->gauge->SetValue(piInfo->fiInfo.llUnpackedSize.ToULong()); break; // 書庫ロード時用の独自仕様。 case 0x1000: - g_procDlg->ebSource->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); - g_procDlg->gauge->SetRange(piInfo->fiInfo.llUnpackedSize.ToULong()); - g_procDlg->gauge->SetValue(0); + this->ebSource->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); + this->gauge->SetRange(piInfo->fiInfo.llUnpackedSize.ToULong()); + this->gauge->SetValue(0); break; case 0x1001: // 更新しすぎると低速なので100ファイル毎に更新する。 - if (piInfo->llProcessedSize > g_procDlg->gauge->GetValue() + 100) + if (piInfo->llProcessedSize > this->gauge->GetValue() + 100) { - g_procDlg->ebTarget->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); - g_procDlg->gauge->SetValue(piInfo->llProcessedSize.ToULong()); - ::wxSafeYield(g_procDlg, true); + this->ebTarget->ChangeValue(piInfo->fiInfo.fnFileName.GetFullPath()); + this->gauge->SetValue(piInfo->llProcessedSize.ToULong()); + ::wxSafeYield(this, true); } break; } @@ -146,19 +143,19 @@ int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) switch (piInfo->uStatus) { case TPI_PARAM_PASSWORD: - piInfo->szParam = ::wxGetPasswordFromUser(_("Password for:\n") + piInfo->fiInfo.fnFileName.GetFullPath(), wxT("Lychee"), wxEmptyString, g_procDlg); + piInfo->szParam = ::wxGetPasswordFromUser(_("Password for:\n") + piInfo->fiInfo.fnFileName.GetFullPath(), wxT("Lychee"), wxEmptyString, this); if (piInfo->szParam.IsEmpty()) { - g_procDlg->fCancel = true; + this->fCancel = true; } break; case TPI_PARAM_NEXTVOLUME: { - wxFileDialog fd(g_procDlg, _("Select next volume of: ") + piInfo->fiInfo.fnFileName.GetFullName()); + wxFileDialog fd(this, _("Select next volume of: ") + piInfo->fiInfo.fnFileName.GetFullName()); fd.SetWindowStyleFlag(wxFD_FILE_MUST_EXIST); if (fd.ShowModal() == wxID_CANCEL) { - g_procDlg->fCancel = true; + this->fCancel = true; } piInfo->szParam = fd.GetPath(); break; @@ -172,5 +169,14 @@ int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) return TPI_CALLBACK_UNSUPPORTED; } - return g_procDlg->fCancel ? TPI_CALLBACK_CANCEL : TPI_CALLBACK_CONTINUE; + return this->fCancel ? TPI_CALLBACK_CANCEL : TPI_CALLBACK_CONTINUE; +} + +//****************************************************************************** +// ダイアログプロシージャ +//****************************************************************************** + +int __stdcall TPICallbackProc(unsigned int _uMsg, void * _pStructure) +{ + return g_procDlg == NULL ? TPI_CALLBACK_CONTINUE : g_procDlg->CallbackProc(_uMsg, _pStructure); } diff --git a/src/lychee/dlg_process.h b/src/lychee/dlg_process.h index 97de113..8412858 100644 --- a/src/lychee/dlg_process.h +++ b/src/lychee/dlg_process.h @@ -31,6 +31,7 @@ public: void OnInit(wxInitDialogEvent &); void OnClose(wxCloseEvent &); + int CallbackProc(unsigned int, void *); ProcessDialog(); ~ProcessDialog(); -- 2.11.0