public override ApplyState Apply(ComputedStyle style, Value value) { // Get the background image: Css.BackgroundImage image = GetBackground(style); if (value == null || value.IsType(typeof(Css.Keywords.None))) { if (image.Image != null) { image.Image.GoingOffDisplay(); image.Image = null; } // Reverse any isolation: image.Include(); } else if (value.Type == Css.ValueType.Image) { // Pull the image from the CSS value and create the package now: image.Image = new ImagePackage(value.GetImage(style.RenderData, GlobalProperty)); // Instantly call ready: image.ImageReady(image.Image); } else { // Load it now! image.Image = new ImagePackage(value.Text, image.RenderData.Document.basepath); image.Image.onload = delegate(UIEvent e){ // Call image ready now: image.ImageReady(image.Image); }; // Send: image.Image.send(); } // Request a layout: image.RequestLayout(); // Ok! return(ApplyState.Ok); }
public override ApplyState Apply(ComputedStyle style, Value value) { // Get the background image: Css.BackgroundImage image = GetBackground(style); if (value == null || value.IsType(typeof(Css.Keywords.Auto))) { image.SizeX = null; image.SizeY = null; } else if (value.Type == Css.ValueType.Text) { if (value.Text == "initial") { // Same as the default: image.SizeX = null; image.SizeY = null; } else if (value.Text == "cover") { // Same as 100% on both axis: image.SizeX = Css.Value.Load("100%"); image.SizeY = Css.Value.Load("100%"); } } else { // It's a vector: image.SizeX = value[0]; image.SizeY = value[1]; } // Request a layout: image.RequestLayout(); // Ok! return(ApplyState.Ok); }
public override ApplyState Apply(ComputedStyle style, Value value) { // Get the background image: Css.BackgroundImage background = GetBackground(style); if (value == null) { background.Filtering = FilterMode.Point; } else { switch (value.Text) { case "bilinear": background.Filtering = FilterMode.Bilinear; break; case "trilinear": background.Filtering = FilterMode.Trilinear; break; default: background.Filtering = FilterMode.Point; break; } } if (background.Image != null && background.Image.Contents != null) { background.Image.Contents.FilterMode = background.Filtering; } // Request a layout: background.RequestLayout(); // Ok! return(ApplyState.Ok); }
public override ApplyState Apply(ComputedStyle style, Value value) { // Get the background image (always created if needed): Css.BackgroundImage image = GetBackground(style); if (value == null) { image.Clipping = BackgroundClipping.BorderBox; } else { switch (value.Text) { case "text": image.Clipping = BackgroundClipping.Text; break; case "padding-box": image.Clipping = BackgroundClipping.PaddingBox; break; case "content-box": image.Clipping = BackgroundClipping.ContentBox; break; default: image.Clipping = BackgroundClipping.BorderBox; break; } } // Request a layout: image.RequestLayout(); // Ok! return(ApplyState.Ok); }