Added disabled support. Also improved the setNeedsDisplay calls on state...

... changes