/// <inheritdoc /> public override void Paint(Graphics graphics) { // background DrawingTools.SolidBrush.Color = ColorSettings.ForVariableBackground(Variable.VariableType, SelectState); graphics.FillPath(DrawingTools.SolidBrush, roundedRectangle); // border float originalPenWidth = DrawingTools.Pen.Width; DrawingTools.Pen.Color = ColorSettings.ForVariable(Variable.VariableType, SelectState); DrawingTools.Pen.Width = 2f; graphics.DrawPath(DrawingTools.Pen, roundedRectangle); DrawingTools.Pen.Width = originalPenWidth; // name (value) DrawingTools.SolidBrush.Color = ColorSettings.VariableText; graphics.DrawString(Name, DrawingTools.Font, DrawingTools.SolidBrush, nameLocation); // paint comment text if (!String.IsNullOrEmpty(Variable.Comment)) { DrawingTools.SolidBrush.Color = ColorSettings.CommentText; graphics.DrawString(Variable.Comment, DrawingTools.Font, DrawingTools.SolidBrush, commentLocation); } }
/// <inheritdoc /> public override void Paint(Graphics graphics) { // paint variable socket if (this.SelectState == Scripting.SelectState.Default) { DrawingTools.SolidBrush.Color = ColorSettings.ForVariable(VariableNodeSocket.VariableType); } else if (this.SelectState == Scripting.SelectState.Hover) { DrawingTools.SolidBrush.Color = ColorSettings.Hover; } if (Type == NodeSocketType.VariableIn) { // variable in = rectangle graphics.FillRectangle(DrawingTools.SolidBrush, Bounds); } else { // variable out = triangle PointF[] triangle = new PointF[3]; triangle[0] = new PointF(Bounds.X, Bounds.Y); triangle[1] = new PointF(Bounds.X + Bounds.Width, Bounds.Y); triangle[2] = new PointF(Bounds.X + Bounds.Width / 2f, Bounds.Y + Bounds.Height); graphics.FillPolygon(DrawingTools.SolidBrush, triangle); } // paint name text DrawingTools.SolidBrush.Color = ColorSettings.NodeSocketText; graphics.DrawString(Name, DrawingTools.Font, DrawingTools.SolidBrush, textLocation); // paint default value text if (VariableNodeSocket.Type == NodeSocketType.VariableIn && VariableNodeSocket.Connections.Count == 0 && !VariableNodeSocket.NodeSocketData.CanBeEmpty) { DrawingTools.SolidBrush.Color = ColorSettings.NodeVariableSocketValueText; graphics.DrawString(VariableNodeSocket.Value.ToString(), DrawingTools.Font, DrawingTools.SolidBrush, valueTextRectangle, valueTextFormat); } }