You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

224 lines
9.4 KiB

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