1// OverwriteDialog.h
2
3#ifndef __OVERWRITE_DIALOG_H
4#define __OVERWRITE_DIALOG_H
5
6#include "../../../Windows/Control/Dialog.h"
7
8#include "DialogSize.h"
9#include "OverwriteDialogRes.h"
10
11namespace NOverwriteDialog
12{
13  struct CFileInfo
14  {
15    bool SizeIsDefined;
16    bool TimeIsDefined;
17    UInt64 Size;
18    FILETIME Time;
19    UString Name;
20
21    void SetTime(const FILETIME *t)
22    {
23      if (t == 0)
24        TimeIsDefined = false;
25      else
26      {
27        TimeIsDefined = true;
28        Time = *t;
29      }
30    }
31    void SetSize(const UInt64 *size)
32    {
33      if (size == 0)
34        SizeIsDefined = false;
35      else
36      {
37        SizeIsDefined = true;
38        Size = *size;
39      }
40    }
41  };
42}
43
44class COverwriteDialog: public NWindows::NControl::CModalDialog
45{
46  bool _isBig;
47
48  void SetFileInfoControl(int textID, int iconID, const NOverwriteDialog::CFileInfo &fileInfo);
49  virtual bool OnInit();
50  bool OnButtonClicked(int buttonID, HWND buttonHWND);
51  void ReduceString(UString &s);
52
53public:
54  INT_PTR Create(HWND parent = 0)
55  {
56    BIG_DIALOG_SIZE(280, 200);
57    #ifdef UNDER_CE
58    _isBig = isBig;
59    #else
60    _isBig = true;
61    #endif
62    return CModalDialog::Create(SIZED_DIALOG(IDD_OVERWRITE), parent);
63  }
64
65  NOverwriteDialog::CFileInfo OldFileInfo;
66  NOverwriteDialog::CFileInfo NewFileInfo;
67};
68
69#endif
70