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.
ITSM/.svn/pristine/e6/e6cd78087e9696017eb84942c6d...

257 lines
11 KiB

Imports MindFusion.Controls
Imports MindFusion.Diagramming
Imports MindFusion.Diagramming.WinForms
Public Class frmColorDialog
Private Node As Object
Public NodeType As Integer
Dim d As MindFusion.Diagramming.Diagram
Public Sub New(ByRef Node As Object, ByVal NodeType As Integer, ByRef din As MindFusion.Diagramming.Diagram)
InitializeComponent()
Me.Node = Node
Me.NodeType = NodeType
d = din
End Sub
Private Sub frmColorDialog_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown, txtText.KeyDown
If e.KeyCode = Keys.Escape Then
Me.Close()
End If
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
If NodeType = 2 Then
If d.Selection.Nodes.Count > 0 And d.Selection.Nodes.Count > 1 Then Me.txtText.Enabled = False Else Me.txtText.Enabled = True
Else
If NodeType = 0 And d.Selection.Links.Count > 0 And d.Selection.Links.Count > 1 Then Me.txtText.Enabled = False Else Me.txtText.Enabled = True
End If
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.ColorPicker4.Color = Node.pen.brush.color
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.txtText.Select()
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
For Each l As Object In d.Selection.Links
'LinkNode
l.Pen = New MindFusion.Drawing.Pen(New MindFusion.Drawing.SolidBrush(Me.ColorPicker4.Color), Me.ComboBox2.Text)
l.Brush = New MindFusion.Drawing.SolidBrush(Me.ColorPicker1.Color)
l.HeadPen.Brush = Node.Brush
If Me.txtText.Enabled = True Then l.Text = Me.txtText.Text
If Me.rbsingle.Checked Then
l.baseshape = MindFusion.Diagramming.ArrowHead.None
Else
l.baseshape = Node.headshape
End If
If Me.cboxShadow.Checked = False Then
l.ShadowOffsetX = 0
l.ShadowOffsetY = 0
l.ShadowColor = Color.Transparent
Else
l.ShadowColor = Me.ColorPicker3.Color
l.ShadowOffsetX = 1
l.ShadowOffsetY = 1
End If
Next
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
For Each n As ShapeNode In d.Selection.Nodes
n.Pen = New MindFusion.Drawing.Pen(New MindFusion.Drawing.SolidBrush(Me.ColorPicker4.Color), Me.ComboBox2.Text)
If Me.cboxGradient.Checked = True Then
n.Brush = New MindFusion.Drawing.LinearGradientBrush(Me.ColorPicker1.Color, Me.ColorPicker2.Color, 30)
Else
n.Brush = New MindFusion.Drawing.SolidBrush(Me.ColorPicker1.Color)
End If
If Me.cboxShadow.Checked = True Then
n.ShadowOffsetX = 1
n.ShadowOffsetY = 1
n.ShadowColor = Me.ColorPicker3.Color
Else
n.ShadowOffsetX = 0
n.ShadowOffsetY = 0
Node.ShadowColor = Color.Transparent
End If
Next
If Me.txtText.Enabled = True Then
Node.text = Me.txtText.Text
End If
Exit Sub
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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.ColorDialog1.ShowDialog()
Me.ColorPicker1.Color = Me.ColorDialog1.Color
End Sub
End Class