[ZIPFLDR] Move CConfirmReplace to a new file
[reactos.git] / dll / shellext / zipfldr / CZipExtract.cpp
index baa0b30..a95f8ba 100644 (file)
@@ -66,82 +66,6 @@ public:
         return uf;
     }
 
-    class CConfirmReplace : public CDialogImpl<CConfirmReplace>
-    {
-    private:
-        CStringA m_Filename;
-    public:
-        enum DialogResult
-        {
-            Yes,
-            YesToAll,
-            No,
-            Cancel
-        };
-
-        static DialogResult ShowDlg(HWND hDlg, PCSTR FullPath)
-        {
-            PCSTR Filename = PathFindFileNameA(FullPath);
-            CConfirmReplace confirm(Filename);
-            INT_PTR Result = confirm.DoModal(hDlg);
-            switch (Result)
-            {
-            case IDYES: return Yes;
-            case IDYESALL: return YesToAll;
-            default:
-            case IDNO: return No;
-            case IDCANCEL: return Cancel;
-            }
-        }
-
-        CConfirmReplace(const char* filename)
-        {
-            m_Filename = filename;
-        }
-
-        LRESULT OnInitDialog(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
-        {
-            CenterWindow(GetParent());
-
-            HICON hIcon = LoadIcon(NULL, IDI_EXCLAMATION);
-            SendDlgItemMessage(IDC_EXCLAMATION_ICON, STM_SETICON, (WPARAM)hIcon);
-
-            /* Our CString does not support FormatMessage yet */
-            CStringA message(MAKEINTRESOURCE(IDS_OVERWRITEFILE_TEXT));
-            CHeapPtr<CHAR, CLocalAllocator> formatted;
-
-            DWORD_PTR args[2] =
-            {
-                (DWORD_PTR)m_Filename.GetString(),
-                NULL
-            };
-
-            ::FormatMessageA(FORMAT_MESSAGE_FROM_STRING | FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_ARGUMENT_ARRAY,
-                             message, 0, 0, (LPSTR)&formatted, 0, (va_list*)args);
-
-            ::SetDlgItemTextA(m_hWnd, IDC_MESSAGE, formatted);
-            return 0;
-        }
-
-        LRESULT OnButton(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
-        {
-            EndDialog(wID);
-            return 0;
-        }
-
-    public:
-        enum { IDD = IDD_CONFIRM_FILE_REPLACE };
-
-        BEGIN_MSG_MAP(CConfirmReplace)
-            MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
-            COMMAND_ID_HANDLER(IDYES, OnButton)
-            COMMAND_ID_HANDLER(IDYESALL, OnButton)
-            COMMAND_ID_HANDLER(IDNO, OnButton)
-            COMMAND_ID_HANDLER(IDCANCEL, OnButton)
-        END_MSG_MAP()
-    };
-
-
     class CExtractSettingsPage : public CPropertyPageImpl<CExtractSettingsPage>
     {
     private:
@@ -405,17 +329,17 @@ public:
                     bool bOverwrite = bOverwriteAll;
                     if (!bOverwriteAll)
                     {
-                        CConfirmReplace::DialogResult Result = CConfirmReplace::ShowDlg(hDlg, FullPath);
+                        eZipConfirmResponse Result = _CZipAskReplace(hDlg, FullPath);
                         switch (Result)
                         {
-                        case CConfirmReplace::YesToAll:
+                        case eYesToAll:
                             bOverwriteAll = true;
-                        case CConfirmReplace::Yes:
+                        case eYes:
                             bOverwrite = true;
                             break;
-                        case CConfirmReplace::No:
+                        case eNo:
                             break;
-                        case CConfirmReplace::Cancel:
+                        case eCancel:
                             unzCloseCurrentFile(uf);
                             Close();
                             return false;