ciderpress/app/ConvDiskOptionsDialog.h

82 lines
2.3 KiB
C++

/*
* CiderPress
* Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved.
* See the file LICENSE for distribution terms.
*/
/*
* Options for converting a disk image to a file archive.
*/
#ifndef APP_CONVDISKOPTIONSDIALOG_H
#define APP_CONVDISKOPTIONSDIALOG_H
#include "UseSelectionDialog.h"
#include "resource.h"
/*
* Get some options.
*/
class ConvDiskOptionsDialog : public UseSelectionDialog {
public:
ConvDiskOptionsDialog(int selCount, CWnd* pParentWnd = NULL) :
UseSelectionDialog(selCount, pParentWnd, IDD_CONVDISK_OPTS)
{
fDiskSizeIdx = 0;
//fAllowLower = fSparseAlloc = FALSE;
fVolName = L"NEW.DISK";
fNumBlocks = -1;
}
virtual ~ConvDiskOptionsDialog(void) {}
int fDiskSizeIdx;
//BOOL fAllowLower;
//BOOL fSparseAlloc;
CString fVolName;
long fNumBlocks; // computed when DoModal finishes
private:
virtual BOOL OnInitDialog(void) override;
virtual void DoDataExchange(CDataExchange* pDX) override;
/*
* Enable all size radio buttons and reset the "size required" display.
*
* This should be invoked whenever the convert selection changes, and may be
* called at any time.
*/
afx_msg void ResetSizeControls(void);
/*
* Compute the amount of space required for the files. We use the result to
* disable the controls that can't be used.
*
* We don't need to enable controls here, because the only way to change the
* set of files is by flipping between "all" and "selected", and we can handle
* that separately.
*/
afx_msg void OnCompute(void);
/*
* When one of the radio buttons is clicked on, update the active status
* and contents of the "specify size" edit box.
*/
afx_msg void OnRadioChangeRange(UINT nID);
/*
* Display the space requirements and disable radio button controls that are
* for values that are too small.
*
* Pass in the number of blocks required on a 32MB ProDOS volume.
*/
void LimitSizeControls(long totalBlocks, long blocksUsed);
/*
* Test a ProDOS filename for validity.
*/
bool IsValidVolumeName_ProDOS(const WCHAR* name);
DECLARE_MESSAGE_MAP()
};
#endif /*APP_CONVDISKOPTIONSDIALOG_H*/