internal void InvalidateEventQueue(InvalidationManagerClient obj) { #if DEBUG { if (DebugMode) { InvalidationHelper.Log("InvalidateEventQueue", obj); } } #endif if (!_eventInvalidator.Invalid) { CheckSignal(); } _invalidateClientEventsFlag = _targetLevel <= obj.NestLevel; _eventInvalidator.Invalidate(obj, _invalidateClientEventsFlag); }
internal void InvalidateDisplayList(InvalidationManagerClient obj) { #if DEBUG { if (DebugMode) { InvalidationHelper.Log("InvalidateDisplayList", obj); } } #endif if (!_displayListInvalidator.Invalid) { CheckSignal(); } _invalidateClientDisplayListFlag = _targetLevel <= obj.NestLevel; _displayListInvalidator.Invalidate(obj, _invalidateClientDisplayListFlag); }
internal void InvalidateProperties(InvalidationManagerClient obj) { #if DEBUG { if (DebugMode) { InvalidationHelper.Log("InvalidateProperties", obj); } } #endif if (!_propertyInvalidator.Invalid) { CheckSignal(); } _invalidateClientPropertiesFlag = _targetLevel <= obj.NestLevel; _propertyInvalidator.Invalidate(obj, _invalidateClientPropertiesFlag); }
internal void InvalidateTransform(InvalidationManagerClient obj) { //InvalidationHelper.Log("InvalidateTransform", obj); #if DEBUG { if (DebugMode) { InvalidationHelper.Log("InvalidateTransform", obj); } } #endif if (!_transformInvalidator.Invalid) { CheckSignal(); } _invalidateClientTransformFlag = _targetLevel <= obj.NestLevel; //if (((InvalidationManagerClient)obj).Id == "btn") // InvalidationHelper.Log("InvalidateTransform", obj); _transformInvalidator.Invalidate(obj, _invalidateClientTransformFlag); }
//private int _measureCount; private void DoValidate() { if (_propertyInvalidator.Invalid) { _propertyInvalidator.Validate(ref _currentObject); } if (_sizeInvalidator.Invalid) { //Debug.Log("_styleInvalidator.Invalid: " + _styleInvalidator.Invalid); //Debug.Log("*** Measuring: " + _measureCount++); _sizeInvalidator.Validate(ref _currentObject); } if (_displayListInvalidator.Invalid) { _displayListInvalidator.Validate(ref _currentObject); } if (_transformInvalidator.Invalid) { _transformInvalidator.Validate(ref _currentObject); } if (_eventInvalidator.Invalid) { _eventInvalidator.Validate(ref _currentObject); } if (_propertyInvalidator.Invalid || _transformInvalidator.Invalid || _sizeInvalidator.Invalid || _displayListInvalidator.Invalid || _eventInvalidator.Invalid) { // do nothing (attachListeners(systemManager);) } else { InvalidationManagerClient obj = _updateCompleteQueue.RemoveLargest(); while (null != obj) { if (!obj.Initialized /* && obj.InternalStructureBuilt*/) { #if DEBUG { if (DebugMode) { InvalidationHelper.Log("Creation complete", obj); } } #endif // Most important: setting the initialized property here // after all the initial VALIDATION cycles obj.Initialized = true; } if (obj.HasEventListener(FrameworkEvent.UPDATE_COMPLETE)) { obj.DispatchEvent(new FrameworkEvent(FrameworkEvent.UPDATE_COMPLETE)); } obj.UpdateFlag = false; obj = _updateCompleteQueue.RemoveLargest(); } //Debug.Log("updateComplete"); /** * We are emmiting the update complete signal here * The listeners of this signal are connected for one shot only * They internally reset their ForceLayout flags etc. * */ UpdateCompleteSignal.Emit(); } }