1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// ZipRegistry.h
2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef __ZIP_REGISTRY_H
4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define __ZIP_REGISTRY_H
5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
6cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky#include "../../../Common/MyTypes.h"
7cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky#include "../../../Common/MyString.h"
8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "ExtractMode.h"
10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
11baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace NExtract
12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  struct CInfo
14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  {
15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    NPathMode::EEnum PathMode;
16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    NOverwriteMode::EEnum OverwriteMode;
17cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    bool PathMode_Force;
18cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    bool OverwriteMode_Force;
19cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky
20cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair SplitDest;
21cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair ElimDup;
22cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    // CBoolPair AltStreams;
23cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair NtSecurity;
24cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair ShowPassword;
25cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky
26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UStringVector Paths;
27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
28baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Save() const;
29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Load();
30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  };
31cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky
32cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky  void Save_ShowPassword(bool showPassword);
33cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky  bool Read_ShowPassword();
34baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
35baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
36baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace NCompression
37baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
38baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  struct CFormatOptions
39baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  {
40baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 Level;
41baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 Dictionary;
42baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 Order;
43baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 BlockLogSize;
44baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 NumThreads;
45baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
46baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    CSysString FormatID;
47baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UString Method;
48baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UString Options;
49baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UString EncryptionMethod;
50baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
51baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void ResetForLevelChange()
52baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    {
53baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      BlockLogSize = NumThreads = Level = Dictionary = Order = UInt32(-1);
54baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      Method.Empty();
55baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      // Options.Empty();
56baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      // EncryptionMethod.Empty();
57baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    }
58baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    CFormatOptions() { ResetForLevelChange(); }
59baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  };
60baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
61baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  struct CInfo
62baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  {
63baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UInt32 Level;
64baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    bool ShowPassword;
65baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    bool EncryptHeaders;
66baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UString ArcType;
67baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    UStringVector ArcPaths;
68baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
69baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    CObjectVector<CFormatOptions> Formats;
70baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
71cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair NtSecurity;
72cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair AltStreams;
73cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair HardLinks;
74cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    CBoolPair SymLinks;
75cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky
76baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Save() const;
77baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Load();
78baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  };
79baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
80baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
81baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace NWorkDir
82baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
83baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  namespace NMode
84baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  {
85baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    enum EEnum
86baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    {
87baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      kSystem,
88baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      kCurrent,
89baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      kSpecified
90baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    };
91baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  }
92baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  struct CInfo
93baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  {
94baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    NMode::EEnum Mode;
95cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky    FString Path;
96baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    bool ForRemovableOnly;
97baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
98baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void SetForRemovableOnlyDefault() { ForRemovableOnly = true; }
99baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void SetDefault()
100baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    {
101baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      Mode = NMode::kSystem;
102baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      Path.Empty();
103baa3858d3f5d128a5c8466b700098109edcad5f2repo sync      SetForRemovableOnlyDefault();
104baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    }
105baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
106baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Save() const;
107baa3858d3f5d128a5c8466b700098109edcad5f2repo sync    void Load();
108baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  };
109baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
110baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
111baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
112baa3858d3f5d128a5c8466b700098109edcad5f2repo syncstruct CContextMenuInfo
113baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
114baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  bool Cascaded;
115cd66d540cead3f8200b0c73bad9c276d67896c3dDavid Srbecky  bool MenuIcons;
116baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  UInt32 Flags;
117baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
118baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  void Save() const;
119baa3858d3f5d128a5c8466b700098109edcad5f2repo sync  void Load();
120baa3858d3f5d128a5c8466b700098109edcad5f2repo sync};
121baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
122baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif
123