/// <summary>
 /// Initializes a new instance of the <see cref="EntityComponentEventArgs"/> struct.
 /// </summary>
 /// <param name="entity">The entity.</param>
 /// <param name="componentKey">The component key.</param>
 /// <param name="previousComponent">The previous component.</param>
 /// <param name="newComponent">The new component.</param>
 public EntityComponentEventArgs(Entity entity, PropertyKey componentKey, EntityComponent previousComponent, EntityComponent newComponent)
 {
     Entity = entity;
     ComponentKey = componentKey;
     PreviousComponent = previousComponent;
     NewComponent = newComponent;
 }
예제 #2
0
파일: Canvas.cs 프로젝트: cg123/xenko
        private static void OnAbsolutePositionChanged(object propertyOwner, PropertyKey<Vector3> propertyKey, Vector3 propertyOldValue)
        {
            var element = (UIElement)propertyOwner;
            element.DependencyProperties.Set(useAbsolutionPositionPropertyKey, true);

            InvalidateCanvasMeasure(propertyOwner, propertyKey, propertyOldValue);
        }
예제 #3
0
        private static void InvalidateParentGridMeasure(object propertyowner, PropertyKey<int> propertykey, int propertyoldvalue)
        {
            var element = (UIElement)propertyowner;
            var parentGridBase = element.Parent as GridBase;

            parentGridBase?.InvalidateMeasure();
        }
예제 #4
0
파일: Canvas.cs 프로젝트: cg123/xenko
        protected static void InvalidateCanvasMeasure(object propertyOwner, PropertyKey<Vector3> propertyKey, Vector3 propertyOldValue)
        {
            var element = (UIElement)propertyOwner;
            var parentCanvas = element.Parent as Canvas;

            if (parentCanvas != null)
                parentCanvas.InvalidateMeasure();
        }
        public static string ComputePropertyKeyName(ITagTypeResolver tagResolver, PropertyKey propertyKey)
        {
            var className = tagResolver.TagFromType(propertyKey.OwnerType);
            var sb = new StringBuilder(className.Length + 1 + propertyKey.Name.Length);

            sb.Append(className, 1, className.Length - 1); // Ignore initial '!'
            sb.Append('.');
            sb.Append(propertyKey.Name);
            return sb.ToString();
        }
예제 #6
0
        private static void InvalidateTrackBackground(object propertyowner, PropertyKey<UIImage> propertykey, UIImage propertyoldvalue)
        {
            var slider = (Slider)propertyowner;

            slider.InvalidateMeasure();

            if (propertyoldvalue != null)
                propertyoldvalue.IdealSizeChanged -= slider.OnIdealSizeChanged;

            if(slider.TrackBackgroundImage != null)
                slider.TrackBackgroundImage.IdealSizeChanged += slider.OnIdealSizeChanged;
        }
예제 #7
0
파일: Slider.cs 프로젝트: cg123/xenko
        private static void InvalidateTrackBackground(object propertyowner, PropertyKey<ISpriteProvider> propertykey, ISpriteProvider propertyoldvalue)
        {
            var slider = (Slider)propertyowner;

            slider.InvalidateMeasure();

            if (propertyoldvalue != null)
                propertyoldvalue.GetSprite().SizeChanged -= slider.OnSizeChanged;

            if(slider.TrackBackgroundImage != null)
                slider.TrackBackgroundImage.GetSprite().SizeChanged += slider.OnSizeChanged;
        }
예제 #8
0
        private static void ContentInvalidationCallback(object propertyOwner, PropertyKey<UIElement> propertyKey, UIElement oldContent)
        {
            var presenter = (ContentPresenter)propertyOwner;
            
            if(oldContent == presenter.Content)
                return;

            if (oldContent != null)
                SetVisualParent(oldContent, null);

            if (presenter.Content != null)
                SetVisualParent(presenter.Content, presenter);

            presenter.InvalidateMeasure();
        }
예제 #9
0
 private static void InvalidateFont(object propertyOwner, PropertyKey propertyKey, object propertyOldValue)
 {
     var element = (TextBlock)propertyOwner;
     element.InvalidateMeasure();
 }
예제 #10
0
 private static void RepeatTextInvalidationCallback(object propertyOwner, PropertyKey<bool> propertyKey, bool propertyOldValue)
 {
     var scrollingText = (ScrollingText)propertyOwner;
     scrollingText.ResetDisplayingText();
 }
예제 #11
0
 private static void InvalidateCharacterNumber(object propertyOwner, PropertyKey<uint> propertyKey, uint propertyOldValue)
 {
     var element = (UIElement)propertyOwner;
     element.InvalidateMeasure();
 }
예제 #12
0
 private static void OnToggleImageInvalidated(object propertyOwner, PropertyKey propertyKey, object propertyOldValue)
 {
     var toggle = (ToggleButton)propertyOwner;
     toggle.OnToggleImageInvalidated();
 }
예제 #13
0
 public EntityComponentReference(EntityComponent entityComponent)
 {
     this.entity = new EntityReference { Id = entityComponent.Entity.Id };
     this.component = entityComponent.GetDefaultKey();
     this.value = entityComponent;
 }
예제 #14
0
 public EntityComponentReference(EntityReference entity, PropertyKey component)
 {
     this.entity = entity;
     this.component = component;
     this.value = null;
 }
예제 #15
0
 private static void OnAspectImageInvalidated(object propertyOwner, PropertyKey<Sprite> propertyKey, Sprite propertyOldValue)
 {
     var button = (Button)propertyOwner;
     button.OnAspectImageInvalidated();
 }
예제 #16
0
 protected EntityProcessor(PropertyKey[] requiredKeys)
 {
     UpdateProfilingKey = new ProfilingKey(GameProfilingKeys.GameUpdate, this.GetType().Name);
     DrawProfilingKey = new ProfilingKey(GameProfilingKeys.GameDraw, this.GetType().Name);
     this.requiredKeys = requiredKeys;
 }
예제 #17
0
        /// <summary>
        /// Pushes a tag to a component and restore it after using it. See remarks for usage.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="component">The component.</param>
        /// <param name="key">The key.</param>
        /// <param name="value">The value.</param>
        /// <returns>PropertyTagRestore&lt;T&gt;.</returns>
        /// <remarks>
        /// This method is used to set save a property value from <see cref="ComponentBase.Tags"/>, set a new value
        /// and restore it after. The returned object must be disposed once the original value must be restored.
        /// </remarks>
        public static PropertyTagRestore <T> PushTagAndRestore <T>([NotNull] this ComponentBase component, [NotNull] PropertyKey <T> key, T value)
        {
            // TODO: Not fully satisfied with the name and the extension point (on ComponentBase). We need to review this a bit more
            var restorer = new PropertyTagRestore <T>(component, key);

            component.Tags.Set(key, value);
            return(restorer);
        }
 public EntityComponentPropertyAccessor(PropertyKey propertyKey)
 {
     this.propertyKey = propertyKey;
 }
예제 #19
0
 public abstract void Invalidate(object propertyOwner, PropertyKey propertyKey, object propertyOldValue);
예제 #20
0
        private static void TickFrequencyInvalidated(object propertyowner, PropertyKey<float> propertykey, float propertyoldvalue)
        {
            var slider = (Slider)propertyowner;

            if (slider.TickFrequency < 1)
                slider.TickFrequency = 1;

            slider.Value = slider.value; // snap to tick if enabled
        }
예제 #21
0
        private static void InvalidateMinLines(object propertyOwner, PropertyKey<int> propertyKey, int propertyOldValue)
        {
            var editText = (EditText)propertyOwner;

            editText.OnMinLinesChanged();
        }
예제 #22
0
        private static void InvalidateIsReadOnly(object propertyOwner, PropertyKey<bool> propertykey, bool propertyoldvalue)
        {
            var editText = (EditText)propertyOwner;

            editText.OnIsReadOnlyChanged();
        }
예제 #23
0
 private static void InvalidateFont(object propertyOwner, PropertyKey<SpriteFont> propertyKey, SpriteFont propertyOldValue)
 {
     var element = (UIElement)propertyOwner;
     element.InvalidateMeasure();
 }
예제 #24
0
 private static void InvalidationCallback(object propertyOwner, PropertyKey<Orientation> propertyKey, Orientation propertyOldValue)
 {
     var element = (UIElement)propertyOwner;
     element.InvalidateMeasure();
 }
예제 #25
0
        private static void ValidateExtremum(object propertyowner, PropertyKey<float> propertykey, float propertyoldvalue)
        {
            var slider = (Slider)propertyowner;

            if (slider.Maximum < slider.Minimum)
            {
                slider.DependencyProperties.Set(propertykey, propertyoldvalue);

                // ReSharper disable once NotResolvedInText
                throw new ArgumentOutOfRangeException("Maximum should be greater or equal than Minimum.");
            }
        }