mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-07 20:06:59 -06:00
4.53 beta
This commit is contained in:
committed by
Kornel Lesiński
parent
33ccab7e72
commit
051769bbc5
89
CPP/7zip/UI/FileManager/SplitDialog.cpp
Executable file
89
CPP/7zip/UI/FileManager/SplitDialog.cpp
Executable file
@@ -0,0 +1,89 @@
|
||||
// SplitDialog.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "SplitDialog.h"
|
||||
|
||||
#include "Common/StringToInt.h"
|
||||
#include "Windows/Shell.h"
|
||||
#include "Windows/FileName.h"
|
||||
|
||||
#include "SplitUtils.h"
|
||||
#ifdef LANG
|
||||
#include "LangUtils.h"
|
||||
#endif
|
||||
|
||||
#include "CopyDialogRes.h"
|
||||
|
||||
using namespace NWindows;
|
||||
|
||||
#ifdef LANG
|
||||
static CIDLangPair kIDLangPairs[] =
|
||||
{
|
||||
{ IDC_STATIC_SPLIT_PATH, 0x03020501 },
|
||||
{ IDC_STATIC_SPLIT_VOLUME, 0x02000D40 },
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
bool CSplitDialog::OnInit()
|
||||
{
|
||||
#ifdef LANG
|
||||
LangSetWindowText(HWND(*this), 0x03020500);
|
||||
LangSetDlgItemsText(HWND(*this), kIDLangPairs, sizeof(kIDLangPairs) / sizeof(kIDLangPairs[0]));
|
||||
#endif
|
||||
_pathCombo.Attach(GetItem(IDC_COMBO_SPLIT_PATH));
|
||||
_volumeCombo.Attach(GetItem(IDC_COMBO_SPLIT_VOLUME));
|
||||
|
||||
if (!FilePath.IsEmpty())
|
||||
{
|
||||
UString title;
|
||||
GetText(title);
|
||||
title += L' ';
|
||||
title += FilePath;
|
||||
SetText(title);
|
||||
}
|
||||
_pathCombo.SetText(Path);
|
||||
AddVolumeItems(_volumeCombo);
|
||||
_volumeCombo.SetCurSel(0);
|
||||
return CModalDialog::OnInit();
|
||||
}
|
||||
|
||||
bool CSplitDialog::OnButtonClicked(int buttonID, HWND buttonHWND)
|
||||
{
|
||||
switch(buttonID)
|
||||
{
|
||||
case IDC_BUTTON_SPLIT_PATH:
|
||||
OnButtonSetPath();
|
||||
return true;
|
||||
}
|
||||
return CModalDialog::OnButtonClicked(buttonID, buttonHWND);
|
||||
}
|
||||
|
||||
void CSplitDialog::OnButtonSetPath()
|
||||
{
|
||||
UString currentPath;
|
||||
_pathCombo.GetText(currentPath);
|
||||
// UString title = L"Specify a location for output folder";
|
||||
UString title = LangStringSpec(IDS_SET_FOLDER, 0x03020209);
|
||||
|
||||
UString resultPath;
|
||||
if (!NShell::BrowseForFolder(HWND(*this), title, currentPath, resultPath))
|
||||
return;
|
||||
NFile::NName::NormalizeDirPathPrefix(resultPath);
|
||||
_pathCombo.SetCurSel(-1);
|
||||
_pathCombo.SetText(resultPath);
|
||||
}
|
||||
|
||||
void CSplitDialog::OnOK()
|
||||
{
|
||||
_pathCombo.GetText(Path);
|
||||
UString volumeString;
|
||||
_volumeCombo.GetText(volumeString);
|
||||
volumeString.Trim();
|
||||
if (!ParseVolumeSizes(volumeString, VolumeSizes) || VolumeSizes.Size() == 0)
|
||||
{
|
||||
::MessageBoxW(*this, LangString(IDS_COMPRESS_INCORRECT_VOLUME_SIZE, 0x02000D41), L"7-Zip", 0);
|
||||
return;
|
||||
}
|
||||
CModalDialog::OnOK();
|
||||
}
|
||||
Reference in New Issue
Block a user