

GTKMM Notes:

To transfer an ownership from your local code to a container, use
Gtk::Button* pButton = Gtk::manage(new Gtk::Button("Test"));
container->add(*pButton);
(add() takes an object by reference).
otherwise, you will need to delete() it.

local scope destruction also works if using stack variables.
{
	Gtk::Button aButton;
	// destroyed here
}



--------------------------------------------------------

TODO:

-l defects support? (smartctl 6.6)


Don't rely on smartctl return code (2), parse the output instead.
	This will allow us to show the Info page.
	Need usage cases.


Testing:
	If ETA time has elapsed, but it's still only at 10% completion,
		ETA 0 is displayed. Fix.
	Detect running tests on launch (maybe ask the user too? some tests
		may be stuck due to bad firmware, e.g. 3ware/windows).
	If smartctl outputs gibberish while testing, the GUI hangs.


Support RAID for these controllers (supported by smartctl 6.5):
	https://www.smartmontools.org/wiki/Supported_RAID-Controllers

	Adaptec (Windows, Linux using "-d aacraid")
	HighPoint RocketRAID (Linux, FreeBSD (analyze sent info))
	LSI MegaRAID (Linux, FreeBSD)
	3ware (FreeBSD)
	Areca (FreeBSD)
	HP CCISS (FreeBSD)


