-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMySettings.h
228 lines (208 loc) · 6.55 KB
/
MySettings.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/////////////////////////////////////////////////////////////////////////////
//MySettings.h
//////////////////////////////////////////////////////////////////////
#ifndef T_MY_SETTIGS_H
#define T_MY_SETTIGS_H
#include "MIniFile.h"
#include "MListStrStr.h"
#include "StructType.h"
//nastroyki programmi (file ArchView.ini)
typedef struct _SettingsMain
{
unsigned ArchivesSFX;
unsigned SizeSFX;
unsigned FloatSize;
unsigned AllParametrs;
unsigned InvertRatio;
unsigned SetDetectString;
char Language[MAX_LOADSTRING];
unsigned UseWCXPluginsTC;
unsigned OptimUsePlugins;
unsigned UseWincmdIniWCX;
char PathWincmdIni[MAX_LOADSTRING];
} SettingsMain;
//parametri okna plagina (file ArchView.ini)
typedef struct _SettingsWindow
{
unsigned SaveLastTab;
unsigned LastTabNumber;
unsigned SaveWindowSize;
unsigned WidthWindow;
unsigned HeightWindow;
unsigned ShowCommentOnTabInfo;
unsigned ShowTabContext;
unsigned ShowTabComment;
unsigned ShowTabAbout;
unsigned ShowProgress;
unsigned ShowLeftRatio;
unsigned ShowRightRatio;
unsigned FontSize;
} SettingsWindow;
//vivodimie parametri (file ArchView.ini)
typedef struct _SettingsParameters
{
unsigned UnpackSizeFiles;
unsigned PackSizeFiles;
unsigned ArchiveSize;
unsigned NumberFiles;
unsigned NumberFolders;
unsigned NumberChapters;
unsigned DictionarySize;
unsigned HostOS;
unsigned ExtractOS;
unsigned MethodPack;
unsigned MemorySize;
unsigned RatioArchiveSize;
unsigned RatioPackFileSize;
unsigned PackVersion;
unsigned UnpackVersion;
unsigned SfxModule;
unsigned RecoveryRecord;
unsigned Solid;
unsigned MultiArc;
unsigned MainComment;
unsigned FileComment;
unsigned ChapterComment;
unsigned Password;
unsigned ArchiveLock;
unsigned AuthVerification;
unsigned TestTime;
unsigned AnalyzeTime;
unsigned AllTime;
unsigned DateCreated;
unsigned DateModified;
unsigned TimeCreated;
unsigned TimeModified;
unsigned OriginalName;
unsigned Magic;
unsigned HeadersSize;
unsigned NumBlocks;
unsigned Offset;
} SettingsParameters;
//parametri logfile (file ArchView.ini)
typedef struct _SettingsLogfile
{
unsigned CreateLogFile;
unsigned DetailLogFile;
unsigned WidthAuthorName;
unsigned WidthMessage;
} SettingsLogfile;
//obrabativaemie arhivi (file ArchView.ini)
typedef struct _SettingsArchives
{
char PriorityArchives[MAX_LOADSTRING];
int Ace;
int ArcPak;
int Arj;
int Bh;
int BZip2Tbz2;
int Cab;
int Cpio;
int Dwc;
int GZipTgz;
int Ha;
int LhaLzh;
int Ppm;
int Rar;
int Sqz;
int Tar;
int Z;
int ZipJar;
int Zoo;
int SevenZip;
} SettingsArchives;
//rasshireniya dlya arhivov (file ArchView.ini)
typedef struct _SettingsExtensions
{
int OnlyExtensions;
char ExtAce [MAX_LOADSTRING];
char ExtArcPak [MAX_LOADSTRING];
char ExtArj [MAX_LOADSTRING];
char ExtBh [MAX_LOADSTRING];
char ExtBZip2Tbz2[MAX_LOADSTRING];
char ExtCab [MAX_LOADSTRING];
char ExtCpio [MAX_LOADSTRING];
char ExtDwc [MAX_LOADSTRING];
char ExtGZipTgz [MAX_LOADSTRING];
char ExtHa [MAX_LOADSTRING];
char ExtLhaLzh [MAX_LOADSTRING];
char ExtPpm [MAX_LOADSTRING];
char ExtRar [MAX_LOADSTRING];
char ExtSqz [MAX_LOADSTRING];
char ExtTar [MAX_LOADSTRING];
char ExtZ [MAX_LOADSTRING];
char ExtZipJar [MAX_LOADSTRING];
char ExtZoo [MAX_LOADSTRING];
char ExtSevenZip [MAX_LOADSTRING];
} SettingsExtensions;
//DLL dlya arhivov (file ArchView.ini)
typedef struct _SettingsLibraries
{
char Ace[MAX_LOADSTRING];
char Rar[MAX_LOADSTRING];
} SettingsLibraries;
//spisok (imya,put') arhivatornih (wcx) plaginov Total Commander (file ArchView.ini or file wincmd.ini)
typedef struct _SettingsWCXPluginsTC
{
MListStrStr WCXPluginsTC;
} SettingsWCXPluginsTC;
//rasshireniya dlya arhivatornih (wcx) plaginov Total Commander (file ArchView.ini)
typedef struct _SettingsWCXExtensions
{
int OnlyExtensions;
MListStrStr WCXExtensions;
} SettingsWCXExtensions;
//klass dlya organizacii nastroek programmi
//prosto sobrat' vse nastroyki vmeste
class MySettings
{
private:
//imena sekciy fayla nastoek ArchView.ini
typedef struct _SettingsSections
{
char SectMain [MAX_LOADSTRING];
char SectWindow [MAX_LOADSTRING];
char SectParameters [MAX_LOADSTRING];
char SectLogfile [MAX_LOADSTRING];
char SectArchives [MAX_LOADSTRING];
char SectExtensions [MAX_LOADSTRING];
char SectLibraries [MAX_LOADSTRING];
char SectWCXPluginsTC [MAX_LOADSTRING]; //ArchView.ini (sekciya wcx-plugins)
char SectPackerPlugins[MAX_LOADSTRING]; //wincmd.ini (sekciya wcx-plugins)
char SectWCXExtensions[MAX_LOADSTRING];
} SettingsSections;
int CheckPriorityArchives();
public:
MIniFile fINI; //dlya obrasheniya k faylu nastroek (file ArchView.ini)
MIniFile fwincmdINI; //dlya obrasheniya k faylu nastroek (file wincmd.ini) (dlya wcx-plugins)
SettingsSections SectionsINI; //sekcii fayla nastroek (file ArchView.ini)
//[Main]
SettingsMain sSettingsMain; //nastroyki programmi (file ArchView.ini)
//[Window]
SettingsWindow sSettingsWindow; //parametri okna plagina (file ArchView.ini)
//[Parameters]
SettingsParameters sSettingsParameters; //vivodimie parametri (file ArchView.ini)
//[Logfile]
SettingsLogfile sSettingsLogfile; //parametri logfile (file ArchView.ini)
//[Archives]
SettingsArchives sSettingsArchives; //obrabativaemie arhivi (file ArchView.ini)
//[Extensions]
SettingsExtensions sSettingsExtensions; //rasshireniya dlya arhivov (file ArchView.ini)
//[Libraries]
SettingsLibraries sSettingsLibraries; //DLL dlya arhivov (file ArchView.ini)
//[WCXPluginsTC] ArchView.ini or [PackerPlugins] wincmd.ini
SettingsWCXPluginsTC sSettingsWCXPluginsTC; //spisok (imya,put') arhivatornih (wcx) plaginov Total Commander (file ArchView.ini or file wincmd.ini)
//[WCXExtensions]
SettingsWCXExtensions sSettingsWCXExtensions; //rasshireniya dlya arhivatornih (wcx) plaginov Total Commander (file ArchView.ini)
//prioritet arhivov pri testirovanii
//prioritet idet po nomeru kajdomu arhivu sootvetstvuet svoy nomer
//nomera prisvavivayutsya nachinaya s 1 v alfavitnom poryadke arhivov
//ACE = 1 | ARJ = 2 | CAB = 3
//"2 1 3" t.e. snachala ARJ, potom ACE a potom CAB
int MasPriorityArchives[T_NUMBER_ARCHIVES-1];
MySettings();
~MySettings() {;}
//dlya raboti s faylami nastroek programmi
int ReadSettingsProgram(char*);
};
#endif //T_MY_SETTIGS_H