/* * CiderPress * Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved. * See the file LICENSE for distribution terms. */ /* * Show the progress of an action like "add" or "extract". */ #ifndef APP_ACTIONPROGRESSDIALOG_H #define APP_ACTIONPROGRESSDIALOG_H #include "resource.h" /* * Modeless dialog; must be allocated on the heap. */ class ActionProgressDialog : public ProgressCancelDialog { public: typedef enum { kActionUnknown = 0, kActionAdd, kActionAddDisk, kActionExtract, kActionDelete, kActionTest, kActionRecompress, kActionConvDisk, kActionConvFile, } Action; ActionProgressDialog(void) : fAction(kActionUnknown), fCancel(false) { } virtual ~ActionProgressDialog(void) { } BOOL Create(Action action, CWnd* pParentWnd = NULL) { fAction = action; pParentWnd->EnableWindow(FALSE); return ProgressCancelDialog::Create(&fCancel, IDD_ACTION_PROGRESS, IDC_PROG_PROGRESS, pParentWnd); } void Cleanup(CWnd* pParentWnd) { pParentWnd->EnableWindow(TRUE); DestroyWindow(); } /* * Set the name of the file as it appears in the archive. */ void SetArcName(const WCHAR* str); /* * Set the name of the file as it appears under Windows. */ void SetFileName(const WCHAR* str); /* * Get the name of the file as it appears under Windows. */ const CString GetFileName(void); /* * Update the progress meter. * * We take a percentage, but the underlying control uses 1000ths. */ int SetProgress(int perc); private: /* * Initialize the static text controls to say something reasonable. */ virtual BOOL OnInitDialog(void) override; Action fAction; bool fCancel; DECLARE_MESSAGE_MAP() }; #endif /*APP_ACTIONPROGRESSDIALOG_H*/