1 // ZipRegistry.h
2 
3 #ifndef __ZIP_REGISTRY_H
4 #define __ZIP_REGISTRY_H
5 
6 #include "Common/MyString.h"
7 #include "Common/Types.h"
8 
9 #include "ExtractMode.h"
10 
11 namespace NExtract
12 {
13   struct CInfo
14   {
15     NPathMode::EEnum PathMode;
16     NOverwriteMode::EEnum OverwriteMode;
17     bool ShowPassword;
18     UStringVector Paths;
19 
20     void Save() const;
21     void Load();
22   };
23 }
24 
25 namespace NCompression
26 {
27   struct CFormatOptions
28   {
29     UInt32 Level;
30     UInt32 Dictionary;
31     UInt32 Order;
32     UInt32 BlockLogSize;
33     UInt32 NumThreads;
34 
35     CSysString FormatID;
36     UString Method;
37     UString Options;
38     UString EncryptionMethod;
39 
ResetForLevelChangeCFormatOptions40     void ResetForLevelChange()
41     {
42       BlockLogSize = NumThreads = Level = Dictionary = Order = UInt32(-1);
43       Method.Empty();
44       // Options.Empty();
45       // EncryptionMethod.Empty();
46     }
CFormatOptionsCFormatOptions47     CFormatOptions() { ResetForLevelChange(); }
48   };
49 
50   struct CInfo
51   {
52     UInt32 Level;
53     bool ShowPassword;
54     bool EncryptHeaders;
55     UString ArcType;
56     UStringVector ArcPaths;
57 
58     CObjectVector<CFormatOptions> Formats;
59 
60     void Save() const;
61     void Load();
62   };
63 }
64 
65 namespace NWorkDir
66 {
67   namespace NMode
68   {
69     enum EEnum
70     {
71       kSystem,
72       kCurrent,
73       kSpecified
74     };
75   }
76   struct CInfo
77   {
78     NMode::EEnum Mode;
79     UString Path;
80     bool ForRemovableOnly;
81 
SetForRemovableOnlyDefaultCInfo82     void SetForRemovableOnlyDefault() { ForRemovableOnly = true; }
SetDefaultCInfo83     void SetDefault()
84     {
85       Mode = NMode::kSystem;
86       Path.Empty();
87       SetForRemovableOnlyDefault();
88     }
89 
90     void Save() const;
91     void Load();
92   };
93 }
94 
95 
96 struct CContextMenuInfo
97 {
98   bool Cascaded;
99   UInt32 Flags;
100 
101   void Save() const;
102   void Load();
103 };
104 
105 #endif
106