public virtual Vector2 Measure(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { textRenderer.Measure(renderable, resourceCreator); textIconRenderSize = textRenderer.RenderSize; if (renderable.Node.Icon != null) { var targetSize = IconSizeSmall; if (renderable.Node.IconSize == IconSize.Medium) { targetSize = IconSizeMedium; } else if (renderable.Node.IconSize == IconSize.Large) { targetSize = IconSizeLarge; } iconRenderSize = new Vector2(renderable.Node.Icon.PixelWidth, renderable.Node.Icon.PixelHeight); var ratio = iconRenderSize.X / iconRenderSize.Y; if (iconRenderSize.X > iconRenderSize.Y) { iconRenderSize = new Vector2(targetSize, targetSize / ratio); } else { iconRenderSize = new Vector2(targetSize * ratio, targetSize); } if (renderable.Node.IconPosition == IconPosition.Left || renderable.Node.IconPosition == IconPosition.Right) { textIconRenderSize.X += iconRenderSize.X; textIconRenderSize.X += IconMargin; textIconRenderSize.Y = Math.Max(textIconRenderSize.Y, iconRenderSize.Y); } else { textIconRenderSize.Y += iconRenderSize.Y; textIconRenderSize.Y += IconMargin; textIconRenderSize.X = Math.Max(textIconRenderSize.X, iconRenderSize.X); } } textIconRenderSize.Y = Math.Max(MinHeight, textIconRenderSize.Y); textIconPadding = CalculatePadding(textIconRenderSize); var totalSize = textIconRenderSize + (2 * textIconPadding); if (MustRenderCheckBox(renderable)) { totalSize.X += CheckBoxSize + CheckBoxMargin; } return(totalSize); }
public void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderControls) { if (pathGeometries != null) { RenderInternal(session, pathGeometries, renderable.Resources.Brush(strokeColor, opacity)); } }
public override void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderControls) { var borderBrush = renderable.Resources.ThemeDarkBrush(color); var lineBrush = renderable.Resources.Brush(pathColor, 1); var left = new Vector2( (float)Math.Round(renderable.RenderBounds.Left - 1), (float)Math.Round(renderable.RenderBounds.CenterY) + verticalOffset); var right = new Vector2( (float)Math.Round(renderable.RenderBounds.Right + 1), (float)Math.Round(renderable.RenderBounds.CenterY) + verticalOffset); session.DrawLine(left, right, lineBrush, 2, StrokeStyle); RenderIcon(renderable, session); RenderText(renderable, session); RenderCheckBox(renderable, session); if (!renderControls) { return; } if (renderable.Node.IsSelected) { session.DrawRoundedRectangle(renderable.RenderBounds.ToRect(), 5, 5, borderBrush, 2f, SelectionStrokeStyle); } RenderExpandButton(renderable, session); RenderNotesButton(renderable, session); }
public override Vector2 Measure(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { var size = base.Measure(renderable, resourceCreator); verticalOffset = (size.Y - VerticalOffsetPadding) - (0.5f * size.Y); return(size); }
protected void RenderCheckBox(Win2DRenderable renderable, CanvasDrawingSession session) { if (!MustRenderCheckBox(renderable)) { return; } checkBox.Render(renderable, session); }
protected void RenderExpandButton(Win2DRenderable renderable, CanvasDrawingSession session) { if (!MustRenderExpandButton(renderable)) { return; } expandButton.Render(renderable, session); }
public void Render(Win2DRenderable renderable, CanvasDrawingSession session) { #if DRAW_OUTLINE session.DrawRectangle(renderBounds.ToRect(), Colors.Turquoise); #endif var color = renderable.Node.HasNotes ? Colors.Black : Colors.Gray; session.DrawText(Glyph, renderPosition.X, renderPosition.Y, color, TextFormat); }
public void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderControls) { if (hullGeometry == null) { return; } session.DrawGeometry(hullGeometry, renderable.Resources.Brush(color.Normal, 1.0f), 1f); session.FillGeometry(hullGeometry, renderable.Resources.Brush(color.Lighter, 0.5f)); }
public void Arrange(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { ClearResources(); var renderNode = renderable as Win2DRenderNode; if (renderNode != null) { hullGeometry = GeometryBuilder.ComputeHullGeometry(resourceCreator, renderable.Scene, renderNode); } }
public void Render(Win2DRenderable renderable, CanvasDrawingSession session) { RenderCircle(session); var halfRadius = 0.5f * renderRadius; RenderHorizontal(session, halfRadius); if (renderable.Node.IsCollapsed) { RenderVertical(session, halfRadius); } }
public override void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderSelection) { var borderBrush = renderable.Resources.ThemeDarkBrush(color); var backgroundBrush = renderable.Node.IsSelected ? renderable.Resources.ThemeLightBrush(color) : renderable.Resources.ThemeNormalBrush(color); var bounds = renderable.RenderBounds.ToRect(); if (borderRadius > 0) { session.FillRoundedRectangle(bounds, borderRadius, borderRadius, backgroundBrush); session.DrawRoundedRectangle(bounds, borderRadius, borderRadius, borderBrush); } else { session.FillRectangle(bounds, backgroundBrush); session.DrawRectangle(bounds, borderBrush); } RenderIcon(renderable, session); RenderText(renderable, session); RenderCheckBox(renderable, session); if (!renderSelection) { return; } if (renderable.Node.IsSelected) { var rect = Rect2.Deflate(renderable.RenderBounds, SelectionMargin).ToRect(); if (borderRadius > 0) { session.DrawRoundedRectangle(rect, borderRadius * 1.4f, borderRadius * 1.4f, borderBrush, 2f, SelectionStrokeStyle); } else { session.DrawRectangle(rect, borderBrush, 2f, SelectionStrokeStyle); } } RenderExpandButton(renderable, session); RenderNotesButton(renderable, session); }
public override void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderControls) { var borderBrush = renderable.Resources.ThemeDarkBrush(color); var backgroundBrush = renderable.Node.IsSelected ? renderable.Resources.ThemeLightBrush(color) : renderable.Resources.ThemeNormalBrush(color); var radiusX = 0.5f * renderable.RenderSize.X; var radiusY = 0.5f * renderable.RenderSize.Y; session.FillEllipse( renderable.RenderBounds.Center, radiusX, radiusY, backgroundBrush); session.DrawEllipse( renderable.RenderBounds.Center, radiusX, radiusY, borderBrush); RenderIcon(renderable, session); RenderText(renderable, session); RenderCheckBox(renderable, session); if (!renderControls) { return; } if (renderable.Node.IsSelected) { radiusX -= SelectionMargin.X; radiusY -= SelectionMargin.Y; session.DrawEllipse( renderable.RenderBounds.Center, radiusX, radiusY, borderBrush, 2f, SelectionStrokeStyle); } RenderExpandButton(renderable, session); RenderNotesButton(renderable, session); }
public void Render(Win2DRenderable renderable, CanvasDrawingSession session) { using (session.StackTransform(Matrix3x2.CreateTranslation(renderPosition))) { #if DRAW_OUTLINE session.DrawRectangle(0, 0, renderSize.X, renderSize.Y, Colors.Purple); #endif session.FillRectangle(0, 0, renderSize.X, renderSize.Y, Colors.White); session.DrawRectangle(0, 0, renderSize.X, renderSize.Y, Colors.Black); if (renderable.Node.IsChecked) { RenderCheck(session); } } }
protected void RenderIcon(Win2DRenderable renderable, CanvasDrawingSession session) { if (renderable.Node.Icon == null) { return; } var image = renderable.Resources.Image(renderable.Node); if (image == null) { return; } var rect = new Rect( iconRenderPosition.X, iconRenderPosition.Y, iconRenderSize.X, iconRenderSize.Y); session.DrawImage(image, rect, image.GetBounds(session), 1, CanvasImageInterpolation.HighQualityCubic); }
public void Arrange(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { var renderNode = renderable as Win2DRenderNode; if (renderNode?.Parent == null) { return; } var currentPosition = renderable.RenderPosition; var parentPosition = renderNode.Parent.RenderPosition; if ((lastActualPosition == currentPosition) && (lastParentPosition == parentPosition)) { return; } lastActualPosition = currentPosition; lastParentPosition = parentPosition; ClearResources(); pathGeometries = CreateGeometries(renderNode, resourceCreator).ToArray(); }
public abstract void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderControls);
public override void Arrange(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { }
public override Vector2 Measure(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { return(size); }
protected void RenderText(Win2DRenderable renderable, CanvasDrawingSession session) { textRenderer.Render(renderable, session); }
public virtual void Arrange(Win2DRenderable renderable, ICanvasResourceCreator resourceCreator) { var iconOffset = Vector2.Zero; var textOffset = Vector2.Zero; var textRenderSize = textRenderer.RenderSize; if (renderable.Node.Icon == null) { textOffset.Y = 0.5f * (textIconRenderSize.Y - textRenderSize.Y); } else if (renderable.Node.IconPosition == IconPosition.Left) { textOffset.Y = 0.5f * (textIconRenderSize.Y - textRenderSize.Y); textOffset.X = iconRenderSize.X + IconMargin; iconOffset.Y = 0.5f * (textIconRenderSize.Y - iconRenderSize.Y); } else if (renderable.Node.IconPosition == IconPosition.Right) { textOffset.Y = 0.5f * (textIconRenderSize.Y - textRenderSize.Y); iconOffset.X = textRenderSize.X + IconMargin; iconOffset.Y = 0.5f * (textIconRenderSize.Y - iconRenderSize.Y); } else if (renderable.Node.IconPosition == IconPosition.Top) { textOffset.X = 0.5f * (textIconRenderSize.X - textRenderSize.X); textOffset.Y = iconRenderSize.Y + IconMargin; iconOffset.X = 0.5f * (textIconRenderSize.X - iconRenderSize.X); } else if (renderable.Node.IconPosition == IconPosition.Bottom) { textOffset.X = 0.5f * (textIconRenderSize.X - textRenderSize.X); iconOffset.X = 0.5f * (textIconRenderSize.X - iconRenderSize.X); iconOffset.Y = textRenderSize.Y + IconMargin; } if (MustRenderNotesButton(renderable)) { ArrangeNotesButton(renderable); } if (MustRenderExpandButton(renderable)) { ArrangeExpandButton(renderable); } if (MustRenderCheckBox(renderable)) { var checkBoxOffset = new Vector2( textIconPadding.X + (0.5f * CheckBoxSize), textIconPadding.Y + textOffset.Y + (0.5f * textRenderSize.Y)); checkBox.Arrange(renderable.RenderPosition + checkBoxOffset, CheckBoxSize); textOffset.X += CheckBoxSize + CheckBoxMargin; iconOffset.X += CheckBoxSize + CheckBoxMargin; } iconRenderPosition = renderable.RenderPosition + textIconPadding + iconOffset; var textRenderPosition = renderable.RenderPosition + textIconPadding + textOffset; textRenderer.Arrange(textRenderPosition); }
public override void Render(Win2DRenderable renderable, CanvasDrawingSession session, Win2DColor color, bool renderSelection) { var brush = renderable.Resources.Brush(Colors.Black, 0.5f); session.FillRectangle(renderable.RenderBounds.ToRect(), brush); }