コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        //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();
            }
        }