Imports MindFusion.Controls Public Class frmColorDialog Private Node As Object Private NodeType As Integer Public Sub New(ByRef Node As Object, ByVal NodeType As Integer) InitializeComponent() Me.Node = Node Me.NodeType = NodeType End Sub Private Sub frmColorDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Me.GrpLine.Visible = False Me.rbsingle.Visible = False Me.rbdouble.Visible = False Me.Label4.Visible = False Select Case NodeType Case 0 Me.GrpLine.Visible = True 'LinkNode Me.rbsingle.Visible = True Me.rbdouble.Visible = True Me.Label4.Visible = True If Node.BaseShape = MindFusion.Diagramming.ArrowHead.None Then Me.rbsingle.Checked = True Me.rbdouble.Checked = False Else Me.rbsingle.Checked = False Me.rbdouble.Checked = True End If Me.ComboBox2.Text = Node.Pen.width Dim b As MindFusion.Drawing.SolidBrush = Me.Node.Brush Me.ColorPicker1.Color = Node.Pen.Color Me.ColorPicker2.Color = Node.Pen.Color Me.ColorPicker3.Color = Node.ShadowColor Me.cboxGradient.Checked = False Me.cboxGradient.Visible = False Me.ColorPicker2.Visible = False If Me.Node.ShadowOffsetX = 0 Then Me.cboxShadow.Checked = False Else Me.cboxShadow.Checked = True End If Me.txtText.Text = Me.Node.Text Case 1 'ContainerNode Try Dim p As MindFusion.Drawing.Pen = Node.pen Me.ComboBox2.Text = p.Width Dim b As MindFusion.Drawing.LinearGradientBrush = Me.Node.Brush Dim cols() As System.Drawing.Color = b.LinearColors Me.ColorPicker1.Color = cols(0) Me.ColorPicker2.Color = cols(1) If cols(0) <> cols(1) Then Me.cboxGradient.Checked = True Me.ColorPicker2.Visible = True Else Me.cboxGradient.Checked = False Me.ColorPicker2.Visible = False End If Catch ex As Exception Dim b As MindFusion.Drawing.SolidBrush = Me.Node.Brush Me.ColorPicker1.Color = b.Color Me.ColorPicker2.Color = b.Color Me.ColorPicker2.Visible = False End Try If Me.Node.ShadowOffsetX = 0 Then Me.cboxShadow.Checked = False Me.ColorPicker3.Color = Me.Node.shadowcolor Else Me.cboxShadow.Checked = True Me.ColorPicker3.Color = Me.Node.shadowcolor End If Me.txtText.Text = Node.caption Case 2 'ShapeNode Dim p As MindFusion.Drawing.Pen = Node.pen Me.ComboBox2.Text = p.Width Try Dim b As MindFusion.Drawing.LinearGradientBrush = Me.Node.Brush Dim cols() As System.Drawing.Color = b.LinearColors Me.ColorPicker1.Color = cols(0) Me.ColorPicker2.Color = cols(1) If cols(0) <> cols(1) Then Me.cboxGradient.Checked = True Me.ColorPicker2.Visible = True Else Me.cboxGradient.Checked = False Me.ColorPicker2.Visible = False End If Catch ex As Exception Dim b As MindFusion.Drawing.SolidBrush = Me.Node.Brush Me.ColorPicker1.Color = b.Color Me.ColorPicker2.Color = b.Color Me.ColorPicker2.Visible = False End Try If Me.Node.ShadowOffsetX = 0 Then Me.cboxShadow.Checked = False Me.ColorPicker3.Color = Me.Node.shadowcolor Else Me.cboxShadow.Checked = True Me.ColorPicker3.Color = Me.Node.shadowcolor End If Me.txtText.Text = Node.text End Select Me.txtText.Focus() Me.Panel1.Refresh() End Sub Private Sub ColorPicker1_ColorChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorPicker1.ColorChanged, ColorPicker2.ColorChanged Me.Panel1.Refresh() Me.Panel2.Refresh() End Sub Private Sub cboxGradient_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboxGradient.CheckedChanged If Me.cboxGradient.Checked = True Then Me.ColorPicker2.Visible = True Else Me.ColorPicker2.Visible = False End If Me.Panel1.Refresh() End Sub Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint If Me.cboxGradient.Checked = True Then Dim B As Brush Try B = New Drawing2D.LinearGradientBrush(Me.ClientRectangle, Me.ColorPicker1.Color, Me.ColorPicker2.Color, Drawing2D.LinearGradientMode.ForwardDiagonal, True) e.Graphics.FillRectangle(B, Me.Panel1.ClientRectangle) Catch Finally If Not B Is Nothing Then B.Dispose() End If End Try Else Me.Panel1.BackColor = Me.ColorPicker1.Color End If End Sub Private Sub Panel2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint Me.Panel2.BackColor = Me.ColorPicker3.Color End Sub Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click Select Case Me.NodeType Case 0 'LinkNode Node.Pen = New MindFusion.Drawing.Pen(New MindFusion.Drawing.SolidBrush(Me.ColorPicker4.Color), Me.ComboBox2.Text) Node.Brush = New MindFusion.Drawing.SolidBrush(Me.ColorPicker1.Color) Node.HeadPen.Brush = Node.Brush Node.Text = Me.txtText.Text If Me.rbsingle.Checked Then Node.baseshape = MindFusion.Diagramming.ArrowHead.None Else Node.baseshape = Node.headshape End If If Me.cboxShadow.Checked = False Then Node.ShadowOffsetX = 0 Node.ShadowOffsetY = 0 Node.ShadowColor = Color.Transparent Else Node.ShadowColor = Me.ColorPicker3.Color Node.ShadowOffsetX = 1 Node.ShadowOffsetY = 1 End If Case 1 'ContainerNode Node.Pen = New MindFusion.Drawing.Pen(New MindFusion.Drawing.SolidBrush(Me.ColorPicker4.Color), Me.ComboBox2.Text) Dim x As New MindFusion.Diagramming.ContainerNode If Me.cboxGradient.Checked = True Then Me.Node.Brush = New MindFusion.Drawing.LinearGradientBrush(Me.ColorPicker1.Color, Me.ColorPicker2.Color, 30) Else Me.Node.Brush = New MindFusion.Drawing.SolidBrush(Me.ColorPicker1.Color) End If If Me.cboxShadow.Checked = True Then Me.Node.ShadowOffsetX = 1 Me.Node.ShadowOffsetY = 1 Me.Node.ShadowColor = Me.ColorPicker3.Color Else Me.Node.ShadowOffsetX = 0 Me.Node.ShadowOffsetY = 0 Node.ShadowColor = Color.Transparent End If Node.caption = Me.txtText.Text Case 2 'ShapeNode Node.Pen = New MindFusion.Drawing.Pen(New MindFusion.Drawing.SolidBrush(Me.ColorPicker4.Color), Me.ComboBox2.Text) If Me.cboxGradient.Checked = True Then Me.Node.Brush = New MindFusion.Drawing.LinearGradientBrush(Me.ColorPicker1.Color, Me.ColorPicker2.Color, 30) Else Me.Node.Brush = New MindFusion.Drawing.SolidBrush(Me.ColorPicker1.Color) End If If Me.cboxShadow.Checked = True Then Me.Node.ShadowOffsetX = 1 Me.Node.ShadowOffsetY = 1 Me.Node.ShadowColor = Me.ColorPicker3.Color Else Me.Node.ShadowOffsetX = 0 Me.Node.ShadowOffsetY = 0 Node.ShadowColor = Color.Transparent End If Node.text = Me.txtText.Text End Select End Sub Private Sub ColorPicker3_ColorChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorPicker3.ColorChanged Me.Panel2.Refresh() End Sub Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged End Sub End Class