Problem: 1394180

Title: (TCluster -SetEnable) Not set subview's enable

Received: Oct 4 1996 4:11PM


TCluster::SetEnable() also set subview's fEnabled due to disable subview in the TCluster view. There are tow disadvantages:
1) Do not set subviews of subviews.
2) lose subview's original fEnabled state. For ex. a subview's fEnabled is false. After set superview's enable to false, then back to true, the subview loses its original state. Usually in view hierarchy, if superview is disable, the subviews should be disable too. But if superview is enable, the subviews don't have to be enable. I suggest follow solution:
1) Add IsEnable method in TEventHandler (it already in TBehavior),
    Boolean TEventHandler::IsEnable()
    {
        return fEnable;
    }
2) Override IsEnable method in TView,
    Boolean TView::IsEnable()
    {
        Boolean enableResult = herited::IsEnable();
        while (!enableResult && fSuperView)
        {
            enableResult = ((TEventHandler*) fSuperView)->IsEnable();
        }
        return dimResult;
     }

The suggested fix isn't quite right. Need a latent enable state in TEventHandler.