ciderpress/app/ProgressCounterDialog.h
Andy McFadden d8223dbcfd Relocate method comments
This moves method comments from the .cpp file to the .h file,
where users of the methods can find them.  This also makes it
possible for the IDE to show the comments when you mouse-hover over
the method name, though Visual Studio is a bit weak in this regard.

Also, added "override" keywords on overridden methods.  Reasonably
current versions of popular compilers seem to support this.

Also, don't have the return type on a separate line in the .cpp file.
The motivation for the practice -- quickly finding a method definition
with "^name" -- is less useful in C++ than C, and modern IDEs provide
more convenient ways to do the same thing.

Also, do some more conversion from unsigned types to uintXX_t.

This commit is primarily for the "app" directory.
2014-11-21 22:33:39 -08:00

72 lines
2.2 KiB
C++

/*
* CiderPress
* Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved.
* See the file LICENSE for distribution terms.
*/
/*
* Show the progress of something that has no definite bound. Because we
* don't know when we need to stop, we just count upward.
*/
#ifndef APP_PROGRESSCOUNTERDIALOG_H
#define APP_PROGRESSCOUNTERDIALOG_H
#include "resource.h"
/*
* Modeless dialog; must be allocated on the heap.
*/
class ProgressCounterDialog : public CancelDialog {
public:
BOOL Create(const CString& descr, CWnd* pParentWnd = NULL) {
fpParentWnd = pParentWnd;
fDescr = descr;
fCountFormat = L"%d";
fCancel = false;
/* disable the parent window before we're created */
if (pParentWnd != NULL)
pParentWnd->EnableWindow(FALSE);
return CancelDialog::Create(&fCancel, IDD_PROGRESS_COUNTER,
pParentWnd);
}
/* enable the parent window before we're destroyed */
virtual BOOL DestroyWindow(void) {
if (fpParentWnd != NULL)
fpParentWnd->EnableWindow(TRUE);
return ModelessDialog::DestroyWindow();
}
/* set a format string, e.g. "Processing file %d" */
void SetCounterFormat(const CString& fmt) { fCountFormat = fmt; }
/* set the current count */
void SetCount(int count) {
CString msg;
msg.Format(fCountFormat, count);
GetDlgItem(IDC_PROGRESS_COUNTER_COUNT)->SetWindowText(msg);
}
/* get the status of the "cancelled" flag */
bool GetCancel(void) const { return fCancel; }
private:
BOOL OnInitDialog(void) override {
CancelDialog::OnInitDialog();
CWnd* pWnd = GetDlgItem(IDC_PROGRESS_COUNTER_DESC);
pWnd->SetWindowText(fDescr);
pWnd = GetDlgItem(IDC_PROGRESS_COUNTER_COUNT);
pWnd->SetWindowText(L"");
pWnd->SetFocus(); // get focus off of the Cancel button
return FALSE; // accept our focus
}
CWnd* fpParentWnd;
CString fDescr;
CString fCountFormat;
bool fCancel;
};
#endif /*APP_PROGRESSCOUNTERDIALOG_H*/