00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef INC_DLGBATCHCREATE_HPP
00026
#define INC_DLGBATCHCREATE_HPP
00027
00028
00029
00030
#include <wx/wxprec.h>
00031
00032
#ifdef __BORLANDC__
00033
#pragma hdrstop
00034
#endif
00035
00036
#ifndef WX_PRECOMP
00037
00038
#include <wx/wx.h>
00039
#endif
00040
#include <wx/filename.h>
00041
00042
#include "dlgResProg.hpp"
00043
#include "bytedisp.hpp"
00044
#include "checksum.hpp"
00045
#include "sumfile.hpp"
00046
00047
00048
00049
00050
00051
00052 class dlgBatchCreation :
public dlgResultsProgress
00053 {
00054
public:
00055
00056
dlgBatchCreation();
00057
00058
protected:
00059
00060
dlgBatchCreation(wxWindow *parent);
00061
00062
public:
00063
00064
virtual ~
dlgBatchCreation() {}
00065
00066
00067
void createControls();
00068
00069
protected:
00070 wxStaticText*
lblTotal;
00071 wxGauge*
gauTotal;
00072 wxStaticText*
lblFile;
00073 wxGauge*
gauFile;
00074
00075
00076
void btnCancelClick(wxCommandEvent& event);
00077
00078 DECLARE_EVENT_TABLE()
00079
00080 private:
00081 DECLARE_DYNAMIC_CLASS(
dlgBatchCreation)
00082
00083 protected:
00084 unsigned long filesToProcess;
00085 unsigned long fileProcessed;
00086 BytesDisplayer totalBytes;
00087 BytesDisplayer bytesRead;
00088
00089 public:
00090
00091
unsigned long getFilesToProcess() const;
00092
00093
void setFilesToProcess(
unsigned long nbTotalFiles);
00094
00095
00096
unsigned long getFileToBeProcessed() const;
00097
00098
void setFileToBeProcessed(
unsigned long nbFiles);
00099
00100
00101
BytesDisplayer getTotalBytes() const;
00102
00103
void setTotalBytes(const
BytesDisplayer& bytes);
00104
00105
00106
BytesDisplayer getReadBytes() const;
00107
00108
void setReadBytes(const
BytesDisplayer& bytes);
00109
00110 protected:
00111
00112
void updateTotalFiles();
00113
00114
00115
void updateCurrentProcessedFile();
00116
00117
00118
00119 class
FilesStatistics;
00120
00121 public:
00122
00123 enum Verbosity
00124 {
00125 vErrors = 0,
00126 vWarnings,
00127 vNormal,
00128 vTalkative,
00129
00130 Verbosity_Min = vErrors,
00131 Verbosity_Max = vTalkative
00132 };
00133
00134
class Options;
00135
00136
public:
00137
00138
static void batchCreation(
const wxArrayString& files,
const Options& options,
00139 wxArrayInt ckSumsTypes, wxWindow* parent = NULL);
00140
00141
private:
00142
00143
class ChecksumProgress;
00144
00145
00146
00147
static wxArrayString getChecksumsFileNames(
const wxString& srcFileName,
00148
const dlgBatchCreation::Options& options,
00149
const wxArrayInt& ckSumsTypes);
00150
00151
00152
static bool allChecksumsFileNamesExist(
const wxString& srcFileName,
00153
const dlgBatchCreation::Options& options,
00154
const wxArrayInt& ckSumsTypes);
00155
00156
00157
static void saveChecksumsInFiles(
const wxString& srcFileName,
00158
const dlgBatchCreation::Options& options,
00159
const wxArrayInt& ckSumsTypes,
00160
const ArraySumFile& sumFiles,
00161
const wxArrayString& sums,
00162
dlgBatchCreation::FilesStatistics& fstats,
00163
dlgBatchCreation* dlgPrg);
00164 };
00165
00166
00167
00168
00169
00170
00171 class dlgBatchCreation::Options
00172 {
00173
protected:
00174 dlgBatchCreation::Verbosity verbosity;
00175
00176
public:
00177
00178
00179
00180
00181 bool ovrCkFileWhenItExists;
00182
00183
00184
00185
00186
00187
00188
00189
00190 bool replaceExtension;
00191
00192
00193
Options(
const bool iOvrCkFileWhenItExists =
false,
const bool iReplaceExtension =
true,
const dlgBatchCreation::Verbosity iVerbosity = vNormal);
00194
00195
00196
dlgBatchCreation::Verbosity getVerbosity() const;
00197
00198
00199
void setVerbosity(const
dlgBatchCreation::Verbosity newVerbosity);
00200 };
00201
00202
00203
00204
00205 #endif