every rule in ui_darwin.h SetParent must be followed by SetSuperview and SyncEnableState TODO can child cache it? adding a child must be followed by a call to SyncEnableState SyncEnableState() must call ShouldStopSyncEnableState() first thing Enable() and Disable() must call SyncEnableState() AFTER CHANGING WHAT Enabled() WILL RETURN