[BUG #7710] fixed disposal
[BUG #7710] fixed disable button
[BUG #7710] fixed keyboard controls
[BUG #7710] don't allow negative values
[BUG #7710] added unit tests for on/offWidget
[BUG #7710] reorganized demo code