Drive Setup Design Document

Contents
--------
1     General
2     Display View
3     Menus
3.1     Mount
3.2     Unmount
3.3     Setup
3.4     Options
3.5     Rescan
4     Partition View
4.1     Intel
4.2     Apple

1: General
----------

 - When the app starts up, it pops up a dialog while scanning for devices.
 - The window is resizeable.
 - There doesn't seem to be any way to get the information that I need 
   easily: I suspect that some direct reading of the partition map is
   needed.  For now, a fake struct with the info I need will suffice.
 
2: Display View
---------------

The display view displays information about the drives that the system knows
about.  The following information is shown:
 - Device: Where the device is mounted on the system.  For example, my floppy
   drive is at /dev/disk/floppy.
 - Map Style: Either apple or intel, depending on which type the media is.
 - Partition type: Empty for a drive.
 - File System: Comma seperated list of the File Systems on the selected
   device.
 - Volume Name: Comma seperated list of the Volume Names of the partitions on
   the selected device.
 - Mounted At: Comma seperated list of the mount points of the partitions on
   the selected device.
 - Size: Total size of the media at the selected device.
Selecting a drop down arrow on a device shows a list of partitions on the media
in the device.  The following information is shown:
 - Device: Empty for a partition.
 - Map Style: Empty for a partition.
 - Partition type: The type of the partition.
 - File System: The file system on that partition.
 - Volume Name: The name of the partition.
 - Mounted At: The mount point of the partition.
 - Size: The size of the partition.

3: Menus
--------

Mount
 - Only available when there is a partition available to mount on the selected
   drive.
 
 *Mount All Partitions
  - Shortcut: Alt-M
  - Action: Mounts all unmounted partitions on the selected drive.
  
 *[List of partitions on the selected drive, with mounted partitions greyed
   out and unmounted partitions selectable]
  - Action: Mounts the selected partition on the selected drive.
  
Unmount
 - Only available when there is a mounted partition on the selected drive.
 
 *[List of mounted partitions on the selected drive, with all mounted partitions
   selectable except /boot]
  - Action: Unmounts the selected partition.
  
Setup
 - Only available when the selected drive has valid media in it: example, a
   hard drive, or a floppy drive with a disk in.
 
 *Format
  - Shortcut: Alt-F
  - Action: Formats the drive.
  
 *Partition
  - Action: Opens sub menu.
  
  *apple...
   - Action: Allows partitioning of apple hard drives, using an apple-like
     interface.
  
  *intel...
   - Action: Allows partitioning of intel hard drives.
 
 *Initialize
  - Action: Opens sub menu.
  
  *[List of partitions on the selected drive, with unmounted partitions
    selectable]
   - Action: Opens sub menu.
   
   *[List of supported formats to initialize the drive to.]
    - Current list of formats:
     - Be File System...
     - cdda...
     - cifs...
     - DOS/FAT...
     - ext2...
     - Mac HFS...
     - iso9660...
     - NTFS...
     - Old Be File System...
     - uspacefs...
    - Possibly this section should be dynamically created, with initializing
      code done in a plug-in type way, so other formats can be easily added.
    - Action: Initializes the selected partition.

Options
 - Only available when the selected drive has valid media in it: example, a
   hard drive, or a floppy drive with a disk in.

 *Eject
  - Only available if the selected drive has removable media.
  - Shortcut: Alt-E
  - Action: Ejects the media.    
     
 *Surface Test
  - Shortcut: Alt-T
  - Action: Performs a surface test on the media.
  
Rescan
 
 *IDE
  - Action: Rescans the IDE chain for new media/devices/whatever.
  
 *SCSI
  - Action: Rescans the SCSI chain for new media/devices/whatever.

Context Sensitive Right Click Menu
 - Available by right clicking on a drive in the display view.
 - Allows access to the Mount, Unmount, Setup, and Options menus, with the
   same "selectability" as above - if the menu is not selectable on the main'
   menu bar, it is not selectable on this context menu.
   
4: Partition View
-----------------

 - The partition view is brought up when "Partition" is chose from the Setup
   menu.
 - If the selected drive has partitions that are currently mounted, a dialog
   is brought up explaining that the partition map can not be modified, only
   viewed, and offering a choice to cancel or proceed.  If the user proceeds,
   all of the UI components are set to an inactive state, except for the
   Cancel and Ok buttons.

Intel
 - The top part of the view shows the device path.
 - The middle section of the view shows the partitions, the type (in a text
   box), a readable explanation of the type number in a drop down menu, and
   a checkbox indicating the state of the Active flag.
 - The bottom section of the view consists of a slide bar for each partition,
   allowing the user to set the size of the partitions.  Each slide bar can
   be locked or unlocked, which disallows or allows movement of the slide bar.
 - The button actions are Revert, Cancel, and Ok.
  
Apple
 - (I have no apple partitions available, help needed!!)
 