xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // OverwriteDialog.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_OVERWRITE_DIALOG_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_OVERWRITE_DIALOG_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/Control/Dialog.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "DialogSize.h"
9*f6dc9357SAndroid Build Coastguard Worker #include "OverwriteDialogRes.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker namespace NOverwriteDialog
12*f6dc9357SAndroid Build Coastguard Worker {
13*f6dc9357SAndroid Build Coastguard Worker   struct CFileInfo
14*f6dc9357SAndroid Build Coastguard Worker   {
15*f6dc9357SAndroid Build Coastguard Worker     bool Size_IsDefined;
16*f6dc9357SAndroid Build Coastguard Worker     bool Time_IsDefined;
17*f6dc9357SAndroid Build Coastguard Worker     bool Is_FileSystemFile;
18*f6dc9357SAndroid Build Coastguard Worker     UInt64 Size;
19*f6dc9357SAndroid Build Coastguard Worker     FILETIME Time;
20*f6dc9357SAndroid Build Coastguard Worker     UString Path;
21*f6dc9357SAndroid Build Coastguard Worker 
SetTimeCFileInfo22*f6dc9357SAndroid Build Coastguard Worker     void SetTime(const FILETIME &t)
23*f6dc9357SAndroid Build Coastguard Worker     {
24*f6dc9357SAndroid Build Coastguard Worker       Time = t;
25*f6dc9357SAndroid Build Coastguard Worker       Time_IsDefined = true;
26*f6dc9357SAndroid Build Coastguard Worker     }
27*f6dc9357SAndroid Build Coastguard Worker 
SetTime2CFileInfo28*f6dc9357SAndroid Build Coastguard Worker     void SetTime2(const FILETIME *t)
29*f6dc9357SAndroid Build Coastguard Worker     {
30*f6dc9357SAndroid Build Coastguard Worker       if (!t)
31*f6dc9357SAndroid Build Coastguard Worker         Time_IsDefined = false;
32*f6dc9357SAndroid Build Coastguard Worker       else
33*f6dc9357SAndroid Build Coastguard Worker         SetTime(*t);
34*f6dc9357SAndroid Build Coastguard Worker     }
35*f6dc9357SAndroid Build Coastguard Worker 
SetSizeCFileInfo36*f6dc9357SAndroid Build Coastguard Worker     void SetSize(UInt64 size)
37*f6dc9357SAndroid Build Coastguard Worker     {
38*f6dc9357SAndroid Build Coastguard Worker       Size = size;
39*f6dc9357SAndroid Build Coastguard Worker       Size_IsDefined = true;
40*f6dc9357SAndroid Build Coastguard Worker     }
41*f6dc9357SAndroid Build Coastguard Worker 
SetSize2CFileInfo42*f6dc9357SAndroid Build Coastguard Worker     void SetSize2(const UInt64 *size)
43*f6dc9357SAndroid Build Coastguard Worker     {
44*f6dc9357SAndroid Build Coastguard Worker       if (!size)
45*f6dc9357SAndroid Build Coastguard Worker         Size_IsDefined = false;
46*f6dc9357SAndroid Build Coastguard Worker       else
47*f6dc9357SAndroid Build Coastguard Worker         SetSize(*size);
48*f6dc9357SAndroid Build Coastguard Worker     }
49*f6dc9357SAndroid Build Coastguard Worker 
CFileInfoCFileInfo50*f6dc9357SAndroid Build Coastguard Worker     CFileInfo():
51*f6dc9357SAndroid Build Coastguard Worker       Size_IsDefined(false),
52*f6dc9357SAndroid Build Coastguard Worker       Time_IsDefined(false),
53*f6dc9357SAndroid Build Coastguard Worker       Is_FileSystemFile(false)
54*f6dc9357SAndroid Build Coastguard Worker       {}
55*f6dc9357SAndroid Build Coastguard Worker   };
56*f6dc9357SAndroid Build Coastguard Worker }
57*f6dc9357SAndroid Build Coastguard Worker 
58*f6dc9357SAndroid Build Coastguard Worker class COverwriteDialog: public NWindows::NControl::CModalDialog
59*f6dc9357SAndroid Build Coastguard Worker {
60*f6dc9357SAndroid Build Coastguard Worker #ifdef UNDER_CE
61*f6dc9357SAndroid Build Coastguard Worker   bool _isBig;
62*f6dc9357SAndroid Build Coastguard Worker #endif
63*f6dc9357SAndroid Build Coastguard Worker 
64*f6dc9357SAndroid Build Coastguard Worker   void SetItemIcon(unsigned iconID, HICON hIcon);
65*f6dc9357SAndroid Build Coastguard Worker   void SetFileInfoControl(const NOverwriteDialog::CFileInfo &fileInfo, unsigned textID, unsigned iconID, unsigned iconID_2);
66*f6dc9357SAndroid Build Coastguard Worker   virtual bool OnInit() Z7_override;
67*f6dc9357SAndroid Build Coastguard Worker   virtual bool OnDestroy() Z7_override;
68*f6dc9357SAndroid Build Coastguard Worker   virtual bool OnButtonClicked(unsigned buttonID, HWND buttonHWND) Z7_override;
69*f6dc9357SAndroid Build Coastguard Worker   void ReduceString(UString &s);
70*f6dc9357SAndroid Build Coastguard Worker 
71*f6dc9357SAndroid Build Coastguard Worker public:
72*f6dc9357SAndroid Build Coastguard Worker   bool ShowExtraButtons;
73*f6dc9357SAndroid Build Coastguard Worker   bool DefaultButton_is_NO;
74*f6dc9357SAndroid Build Coastguard Worker   NOverwriteDialog::CFileInfo OldFileInfo;
75*f6dc9357SAndroid Build Coastguard Worker   NOverwriteDialog::CFileInfo NewFileInfo;
76*f6dc9357SAndroid Build Coastguard Worker 
COverwriteDialog()77*f6dc9357SAndroid Build Coastguard Worker   COverwriteDialog(): ShowExtraButtons(true), DefaultButton_is_NO(false) {}
78*f6dc9357SAndroid Build Coastguard Worker 
79*f6dc9357SAndroid Build Coastguard Worker   INT_PTR Create(HWND parent = NULL)
80*f6dc9357SAndroid Build Coastguard Worker   {
81*f6dc9357SAndroid Build Coastguard Worker #ifdef UNDER_CE
82*f6dc9357SAndroid Build Coastguard Worker     BIG_DIALOG_SIZE(280, 200);
83*f6dc9357SAndroid Build Coastguard Worker     _isBig = isBig;
84*f6dc9357SAndroid Build Coastguard Worker #endif
85*f6dc9357SAndroid Build Coastguard Worker     return CModalDialog::Create(SIZED_DIALOG(IDD_OVERWRITE), parent);
86*f6dc9357SAndroid Build Coastguard Worker   }
87*f6dc9357SAndroid Build Coastguard Worker };
88*f6dc9357SAndroid Build Coastguard Worker 
89*f6dc9357SAndroid Build Coastguard Worker #endif
90