1// ExtractDialog.h
2
3#ifndef __EXTRACT_DIALOG_H
4#define __EXTRACT_DIALOG_H
5
6#include "ExtractDialogRes.h"
7
8#include "../../../Windows/Control/ComboBox.h"
9#include "../../../Windows/Control/Edit.h"
10
11#include "../Common/ExtractMode.h"
12
13#include "../FileManager/DialogSize.h"
14
15#ifndef NO_REGISTRY
16#include "../Common/ZipRegistry.h"
17#endif
18
19namespace NExtractionDialog
20{
21  /*
22  namespace NFilesMode
23  {
24    enum EEnum
25    {
26      kSelected,
27      kAll,
28      kSpecified
29    };
30  }
31  */
32}
33
34class CExtractDialog: public NWindows::NControl::CModalDialog
35{
36  #ifdef NO_REGISTRY
37  NWindows::NControl::CDialogChildControl _path;
38  #else
39  NWindows::NControl::CComboBox _path;
40  #endif
41
42  #ifndef _SFX
43  NWindows::NControl::CEdit _pathName;
44  NWindows::NControl::CEdit _passwordControl;
45  NWindows::NControl::CComboBox _pathMode;
46  NWindows::NControl::CComboBox _overwriteMode;
47  #endif
48
49  #ifndef _SFX
50  // int GetFilesMode() const;
51  void UpdatePasswordControl();
52  #endif
53
54  void OnButtonSetPath();
55
56  void CheckButton_TwoBools(UINT id, const CBoolPair &b1, const CBoolPair &b2);
57  void GetButton_Bools(UINT id, CBoolPair &b1, CBoolPair &b2);
58  virtual bool OnInit();
59  virtual bool OnButtonClicked(int buttonID, HWND buttonHWND);
60  virtual void OnOK();
61
62  #ifndef NO_REGISTRY
63
64  virtual void OnHelp();
65
66  NExtract::CInfo _info;
67
68  #endif
69
70  bool IsShowPasswordChecked() const { return IsButtonCheckedBool(IDX_PASSWORD_SHOW); }
71public:
72  // bool _enableSelectedFilesButton;
73  // bool _enableFilesButton;
74  // NExtractionDialog::NFilesMode::EEnum FilesMode;
75
76  UString DirPath;
77  UString ArcPath;
78
79  #ifndef _SFX
80  UString Password;
81  #endif
82  bool PathMode_Force;
83  bool OverwriteMode_Force;
84  NExtract::NPathMode::EEnum PathMode;
85  NExtract::NOverwriteMode::EEnum OverwriteMode;
86
87  #ifndef _SFX
88  // CBoolPair AltStreams;
89  CBoolPair NtSecurity;
90  #endif
91
92  CBoolPair ElimDup;
93
94  INT_PTR Create(HWND aWndParent = 0)
95  {
96    #ifdef _SFX
97    BIG_DIALOG_SIZE(240, 64);
98    #else
99    BIG_DIALOG_SIZE(300, 160);
100    #endif
101    return CModalDialog::Create(SIZED_DIALOG(IDD_EXTRACT), aWndParent);
102  }
103
104  CExtractDialog():
105    PathMode_Force(false),
106    OverwriteMode_Force(false)
107  {
108    ElimDup.Val = true;
109  }
110
111};
112
113#endif
114