1370b324cSopenharmony_ci// ExtractDialog.h
2370b324cSopenharmony_ci
3370b324cSopenharmony_ci#ifndef ZIP7_INC_EXTRACT_DIALOG_H
4370b324cSopenharmony_ci#define ZIP7_INC_EXTRACT_DIALOG_H
5370b324cSopenharmony_ci
6370b324cSopenharmony_ci#include "ExtractDialogRes.h"
7370b324cSopenharmony_ci
8370b324cSopenharmony_ci#include "../../../Windows/Control/ComboBox.h"
9370b324cSopenharmony_ci#include "../../../Windows/Control/Edit.h"
10370b324cSopenharmony_ci
11370b324cSopenharmony_ci#include "../Common/ExtractMode.h"
12370b324cSopenharmony_ci
13370b324cSopenharmony_ci#include "../FileManager/DialogSize.h"
14370b324cSopenharmony_ci
15370b324cSopenharmony_ci#ifndef Z7_NO_REGISTRY
16370b324cSopenharmony_ci#include "../Common/ZipRegistry.h"
17370b324cSopenharmony_ci#endif
18370b324cSopenharmony_ci
19370b324cSopenharmony_cinamespace NExtractionDialog
20370b324cSopenharmony_ci{
21370b324cSopenharmony_ci  /*
22370b324cSopenharmony_ci  namespace NFilesMode
23370b324cSopenharmony_ci  {
24370b324cSopenharmony_ci    enum EEnum
25370b324cSopenharmony_ci    {
26370b324cSopenharmony_ci      kSelected,
27370b324cSopenharmony_ci      kAll,
28370b324cSopenharmony_ci      kSpecified
29370b324cSopenharmony_ci    };
30370b324cSopenharmony_ci  }
31370b324cSopenharmony_ci  */
32370b324cSopenharmony_ci}
33370b324cSopenharmony_ci
34370b324cSopenharmony_ciclass CExtractDialog: public NWindows::NControl::CModalDialog
35370b324cSopenharmony_ci{
36370b324cSopenharmony_ci  #ifdef Z7_NO_REGISTRY
37370b324cSopenharmony_ci  NWindows::NControl::CDialogChildControl _path;
38370b324cSopenharmony_ci  #else
39370b324cSopenharmony_ci  NWindows::NControl::CComboBox _path;
40370b324cSopenharmony_ci  #endif
41370b324cSopenharmony_ci
42370b324cSopenharmony_ci  #ifndef Z7_SFX
43370b324cSopenharmony_ci  NWindows::NControl::CEdit _pathName;
44370b324cSopenharmony_ci  NWindows::NControl::CEdit _passwordControl;
45370b324cSopenharmony_ci  NWindows::NControl::CComboBox _pathMode;
46370b324cSopenharmony_ci  NWindows::NControl::CComboBox _overwriteMode;
47370b324cSopenharmony_ci  #endif
48370b324cSopenharmony_ci
49370b324cSopenharmony_ci  #ifndef Z7_SFX
50370b324cSopenharmony_ci  // int GetFilesMode() const;
51370b324cSopenharmony_ci  void UpdatePasswordControl();
52370b324cSopenharmony_ci  #endif
53370b324cSopenharmony_ci
54370b324cSopenharmony_ci  void OnButtonSetPath();
55370b324cSopenharmony_ci
56370b324cSopenharmony_ci  void CheckButton_TwoBools(UINT id, const CBoolPair &b1, const CBoolPair &b2);
57370b324cSopenharmony_ci  void GetButton_Bools(UINT id, CBoolPair &b1, CBoolPair &b2);
58370b324cSopenharmony_ci  virtual bool OnInit() Z7_override;
59370b324cSopenharmony_ci  virtual bool OnButtonClicked(unsigned buttonID, HWND buttonHWND) Z7_override;
60370b324cSopenharmony_ci  virtual void OnOK() Z7_override;
61370b324cSopenharmony_ci
62370b324cSopenharmony_ci  #ifndef Z7_NO_REGISTRY
63370b324cSopenharmony_ci
64370b324cSopenharmony_ci  virtual void OnHelp() Z7_override;
65370b324cSopenharmony_ci
66370b324cSopenharmony_ci  NExtract::CInfo _info;
67370b324cSopenharmony_ci
68370b324cSopenharmony_ci  #endif
69370b324cSopenharmony_ci
70370b324cSopenharmony_ci  bool IsShowPasswordChecked() const { return IsButtonCheckedBool(IDX_PASSWORD_SHOW); }
71370b324cSopenharmony_cipublic:
72370b324cSopenharmony_ci  // bool _enableSelectedFilesButton;
73370b324cSopenharmony_ci  // bool _enableFilesButton;
74370b324cSopenharmony_ci  // NExtractionDialog::NFilesMode::EEnum FilesMode;
75370b324cSopenharmony_ci
76370b324cSopenharmony_ci  UString DirPath;
77370b324cSopenharmony_ci  UString ArcPath;
78370b324cSopenharmony_ci
79370b324cSopenharmony_ci  #ifndef Z7_SFX
80370b324cSopenharmony_ci  UString Password;
81370b324cSopenharmony_ci  #endif
82370b324cSopenharmony_ci  bool PathMode_Force;
83370b324cSopenharmony_ci  bool OverwriteMode_Force;
84370b324cSopenharmony_ci  NExtract::NPathMode::EEnum PathMode;
85370b324cSopenharmony_ci  NExtract::NOverwriteMode::EEnum OverwriteMode;
86370b324cSopenharmony_ci
87370b324cSopenharmony_ci  #ifndef Z7_SFX
88370b324cSopenharmony_ci  // CBoolPair AltStreams;
89370b324cSopenharmony_ci  CBoolPair NtSecurity;
90370b324cSopenharmony_ci  #endif
91370b324cSopenharmony_ci
92370b324cSopenharmony_ci  CBoolPair ElimDup;
93370b324cSopenharmony_ci
94370b324cSopenharmony_ci  INT_PTR Create(HWND aWndParent = NULL)
95370b324cSopenharmony_ci  {
96370b324cSopenharmony_ci    #ifdef Z7_SFX
97370b324cSopenharmony_ci    BIG_DIALOG_SIZE(240, 64);
98370b324cSopenharmony_ci    #else
99370b324cSopenharmony_ci    BIG_DIALOG_SIZE(300, 160);
100370b324cSopenharmony_ci    #endif
101370b324cSopenharmony_ci    return CModalDialog::Create(SIZED_DIALOG(IDD_EXTRACT), aWndParent);
102370b324cSopenharmony_ci  }
103370b324cSopenharmony_ci
104370b324cSopenharmony_ci  CExtractDialog():
105370b324cSopenharmony_ci    PathMode_Force(false),
106370b324cSopenharmony_ci    OverwriteMode_Force(false)
107370b324cSopenharmony_ci  {
108370b324cSopenharmony_ci    ElimDup.Val = true;
109370b324cSopenharmony_ci  }
110370b324cSopenharmony_ci
111370b324cSopenharmony_ci};
112370b324cSopenharmony_ci
113370b324cSopenharmony_ci#endif
114