ciderpress/app/NewDiskSize.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

69 lines
2.0 KiB
C++

/*
* CiderPress
* Copyright (C) 2007 by faddenSoft, LLC. All Rights Reserved.
* See the file LICENSE for distribution terms.
*/
/*
* Functions to manage the "new disk size" radio button set in dialogs.
*/
#ifndef APP_NEWDISKSIZE_H
#define APP_NEWDISKSIZE_H
/*
* All members are static. Don't instantiate the class.
*/
class NewDiskSize {
public:
NewDiskSize(void) { ASSERT(false); }
/*
* Return the #of entries in the table.
*/
static unsigned int GetNumSizeEntries(void);
/*
* Return the "size" field from an array entry.
*/
static long GetDiskSizeByIndex(int idx);
enum { kSpecified = -1 };
static void EnableButtons(CDialog* pDialog, BOOL state = true);
/*
* Run through the set of radio buttons, disabling any that don't have enough
* space to hold the ProDOS volume with the specified parameters.
*
* The space required is equal to the blocks required for data plus the blocks
* required for the free-space bitmap. Since the free-space bitmap size is
* smaller for smaller volumes, we have to adjust it for each.
*
* Pass in the total blocks and #of blocks used on a particular ProDOS volume.
* This will compute how much space would be required for larger and smaller
* volumes, and enable or disable radio buttons as appropriate. (You can get
* these values from DiskFS::GetFreeBlockCount()).
*/
static void EnableButtons_ProDOS(CDialog* pDialog, long totalBlocks,
long blocksUsed);
/*
* Compute the #of blocks needed to hold the ProDOS block bitmap.
*/
static long GetNumBitmapBlocks_ProDOS(long totalBlocks);
/*
* Update the "specify size" edit box.
*/
static void UpdateSpecifyEdit(CDialog* pDialog);
private:
typedef struct {
int ctrlID;
long blocks;
} RadioCtrlMap;
static const RadioCtrlMap kCtrlMap[];
};
#endif /*APP_NEWDISKSIZE_H*/