this->toolbar->Show(fShow);\r
\r
// ステータスバー上にプログレスバーを作成。\r
- this->gFrame = new wxGauge(this, -1, 0, wxPoint(0, 0), wxSize(200, 10));\r
+ this->gFrame = new wxGauge(this->statusbar, -1, 0, wxPoint(0, 0), wxSize(200, 10));\r
this->gFrame->Show(false);\r
}\r
\r
\r
void MainFrame::OnSize(wxSizeEvent& e)\r
{\r
- // ウインドウの内容の位置を変更。\r
- if (this->window_splitter != NULL)\r
- {\r
- this->window_splitter->SetSize(this->GetClientSize());\r
- }\r
-\r
// プログレスバーの位置を変更。\r
if (this->gFrame != NULL)\r
{\r
- wxPoint p = this->statusbar->GetPosition();\r
- wxSize s = this->GetSize();\r
- p.x += s.GetWidth() - 230;\r
- p.y += 10;\r
- this->gFrame->SetPosition(p);\r
+ this->gFrame->SetPosition(wxPoint(this->statusbar->GetSize().GetWidth() - 230, 10));\r
}\r
e.Skip();\r
}\r
int nSelected = mkDlg.chType->GetSelection();\r
swInfo.nArchiveType = mkDlg.afInfo[nSelected].nTypeId;\r
swInfo.fStoreDirectoryPathes= ! mkDlg.cbIgnorePath->IsChecked();\r
- swInfo.fMakeSFX = mkDlg.cbMakeSFX->IsChecked();\r
+ swInfo.fMakeSFX = mkDlg.cbMakeSFX->IsChecked();\r
swInfo.fSolid = mkDlg.cbSolid->IsChecked();\r
swInfo.fMMOptimize = mkDlg.cbMMOptimize->IsChecked();\r
swInfo.fEncryptHeader = mkDlg.cbEncryptHeader->IsChecked();\r
\r
// TPIを読み込み。\r
this->fnArchive = wxFileName(mkDlg.cbDir->GetValue(), mkDlg.cbFileName->GetValue());\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
if (! tpi.InitLibrary(mkDlg.afInfo[nSelected].szTPIName, this->fnArchive.GetFullPath(), TPICallbackProc, mkDlg.afInfo[nSelected].nTypeId))\r
{\r
this->ErrorCheck(tpi.nErrorCode, wxT("InitLibrary"));\r
// 処理を行う。\r
{\r
ProcessDialog procDlg(this, mkDlg.files.GetCount());\r
- tpi.Command(TPI_COMMAND_CREATE, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
+ tpi.Command(TPI_COMMAND_CREATE, & swInfo, mkDlg.files);\r
procDlg.Show(false);\r
if (this->ErrorCheck(tpi.nErrorCode) != TPI_ERROR_SUCCESS)\r
{\r
// 終了しない場合は書庫を開く。\r
if (this->fnArchive.FileExists())\r
{\r
+ e.SetInt(1);\r
this->OnArcOpen(e);\r
}\r
}\r
this->ErrorCheck(tpi.nErrorCode, wxT("GetArchiveInformation"));\r
this->szPassword = procDlg.szPassword;\r
\r
- // 書庫を閉じる。\r
- tpi.CloseArchive();\r
- this->ErrorCheck(tpi.nErrorCode, wxT("CloseArchive"));\r
+ // Command()でハンドルを用いない場合は、ここで書庫を閉じる。\r
+ if (! tpi.bHandleOnCommand)\r
+ {\r
+ tpi.CloseArchive();\r
+ this->ErrorCheck(tpi.nErrorCode, wxT("CloseArchive"));\r
+ }\r
\r
// 以下、UI処理。\r
this->fileinfo.Shrink();\r
\r
void MainFrame::OnArcClose(wxCommandEvent& e)\r
{\r
+ if (tpi.bHandleOnCommand)\r
+ {\r
+ tpi.CloseArchive();\r
+ }\r
+\r
// ツリービュー・リストビュー設定。\r
this->tree_ctrl->DeleteAllItems();\r
this->list_ctrl->DeleteAllItems();\r
}\r
\r
// 各種設定。\r
- swInfo.fMakeSFX = false;\r
- swInfo.fStoreDirectoryPathes = ! mkDlg.cbIgnorePath->IsChecked();\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
+ swInfo.fMakeSFX = false;\r
+ swInfo.fStoreDirectoryPathes= ! mkDlg.cbIgnorePath->IsChecked();\r
swInfo.fSolid = mkDlg.cbSolid->IsChecked();\r
swInfo.fMMOptimize = mkDlg.cbMMOptimize->IsChecked();\r
swInfo.fEncryptHeader = mkDlg.cbEncryptHeader->IsChecked();\r
// 処理を行う。\r
{\r
ProcessDialog procDlg(this, mkDlg.files.GetCount(), this->szPassword);\r
- tpi.Command(TPI_COMMAND_ADD, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
+ tpi.Command(TPI_COMMAND_ADD, & swInfo, mkDlg.files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
}\r
}\r
\r
// 終了しない場合は書庫を再読み込み。\r
+ e.SetInt(1);\r
this->OnArcOpen(e);\r
}\r
\r
void MainFrame::OnArcConvert(wxCommandEvent& e)\r
{\r
TPI_SWITCHES swInfo;\r
- swInfo.fMakeSFX = e.GetId() == XRCID("Arc_SFX");\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
+ swInfo.fMakeSFX = e.GetId() == XRCID("Arc_SFX");\r
\r
// 保存先を尋ねる。\r
wxFileDialog fd(this, swInfo.fMakeSFX ? _("Save as SFX") : _("Save as normal archive"), this->fnArchive.GetPath(), this->fnArchive.GetName() + (swInfo.fMakeSFX ? EXE_EXT : (wxString) wxEmptyString), wxFileSelectorDefaultWildcardStr, wxFD_SAVE | wxFD_OVERWRITE_PROMPT);\r
files.Add(fd.GetPath());\r
\r
ProcessDialog procDlg(this);\r
- tpi.Command(swInfo.fMakeSFX ? TPI_COMMAND_SFX : TPI_COMMAND_UNSFX, & swInfo, this->fnArchive.GetFullPath(), files);\r
+ tpi.Command(swInfo.fMakeSFX ? TPI_COMMAND_SFX : TPI_COMMAND_UNSFX, & swInfo, files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
}\r
void MainFrame::OnArcExtract(wxCommandEvent& e)\r
{\r
TPI_SWITCHES swInfo;\r
- swInfo.pCustomSwitches = NULL;\r
- swInfo.szPassword = this->szPassword;\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
+ swInfo.pCustomSwitches = NULL;\r
+ swInfo.szPassword = this->szPassword;\r
\r
// モード取得。通常は0, 実行なら1, ファイルDnDなら2、ディレクトリDnDなら3、クリップボードなら4、コンテキストメニューからなら8。\r
int nMode = e.GetInt();\r
// 処理を行う。\r
{\r
ProcessDialog procDlg(this, mkDlg.files.GetCount(), this->szPassword);\r
- tpi.Command(TPI_COMMAND_EXTRACT, & swInfo, this->fnArchive.GetFullPath(), mkDlg.files);\r
+ tpi.Command(TPI_COMMAND_EXTRACT, & swInfo, mkDlg.files);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
}\r
wxArrayString asFiles = MakeTargetFileList(this);\r
ProcessDialog procDlg(this, asFiles.GetCount(), this->szPassword);\r
TPI_SWITCHES swInfo;\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
swInfo.szPassword = this->szPassword;\r
- tpi.Command(TPI_COMMAND_DELETE, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
+ tpi.Command(TPI_COMMAND_DELETE, & swInfo, asFiles);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
}\r
\r
// 書庫を再読み込みする。\r
+ e.SetInt(1);\r
this->OnArcOpen(e);\r
}\r
\r
wxArrayString asFiles = MakeTargetFileList(this);\r
ProcessDialog procDlg(this, asFiles.GetCount(), this->szPassword);\r
TPI_SWITCHES swInfo;\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
swInfo.szPassword = this->szPassword;\r
- tpi.Command(TPI_COMMAND_TEST, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
+ tpi.Command(TPI_COMMAND_TEST, & swInfo, asFiles);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false);\r
}\r
wxArrayString asFiles = MakeTargetFileList(this);\r
ProcessDialog procDlg(this, asFiles.GetCount(), this->szPassword);\r
TPI_SWITCHES swInfo;\r
+ swInfo.szArcName = this->fnArchive.GetFullPath();\r
swInfo.szPassword = this->szPassword;\r
- tpi.Command(TPI_COMMAND_REPAIR, & swInfo, this->fnArchive.GetFullPath(), asFiles);\r
+ tpi.Command(TPI_COMMAND_REPAIR, & swInfo, asFiles);\r
this->ErrorCheck(tpi.nErrorCode);\r
procDlg.Show(false); \r
}\r