Added example for point button and fixed a function for creating an angled corner

This commit is contained in:
Anton 2021-01-28 12:50:45 +01:00
parent 15dcfcab2d
commit a97a0d2cec
2 changed files with 67 additions and 1 deletions

View File

@ -32,6 +32,7 @@ Partial Class GUI
Me.Label1 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label()
Me.ExportSWButton = New System.Windows.Forms.Button() Me.ExportSWButton = New System.Windows.Forms.Button()
Me.AngleButton = New System.Windows.Forms.Button()
Me.SuspendLayout() Me.SuspendLayout()
' '
'DrawingPanel 'DrawingPanel
@ -111,11 +112,21 @@ Partial Class GUI
Me.ExportSWButton.Text = "Export" Me.ExportSWButton.Text = "Export"
Me.ExportSWButton.UseVisualStyleBackColor = False Me.ExportSWButton.UseVisualStyleBackColor = False
' '
'AngleButton
'
Me.AngleButton.Location = New System.Drawing.Point(54, 153)
Me.AngleButton.Name = "AngleButton"
Me.AngleButton.Size = New System.Drawing.Size(122, 75)
Me.AngleButton.TabIndex = 7
Me.AngleButton.Text = "Add Angle"
Me.AngleButton.UseVisualStyleBackColor = True
'
'GUI 'GUI
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 16.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1199, 614) Me.ClientSize = New System.Drawing.Size(1199, 614)
Me.Controls.Add(Me.AngleButton)
Me.Controls.Add(Me.ExportSWButton) Me.Controls.Add(Me.ExportSWButton)
Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.Label1)
@ -140,4 +151,5 @@ Partial Class GUI
Friend WithEvents Label1 As Label Friend WithEvents Label1 As Label
Friend WithEvents Label2 As Label Friend WithEvents Label2 As Label
Friend WithEvents ExportSWButton As Button Friend WithEvents ExportSWButton As Button
Friend WithEvents AngleButton As Button
End Class End Class

View File

@ -16,6 +16,7 @@ Public Class GUI
Dim points As New Dictionary(Of String, Decimal()) Dim points As New Dictionary(Of String, Decimal())
Dim pointsOrder As New List(Of String) Dim pointsOrder As New List(Of String)
'Dim PointButtons As New Dictionary(Of String, Button)
' --- Start method when GUI loads --- ' --- Start method when GUI loads ---
Sub GUI_load() Handles MyBase.Load Sub GUI_load() Handles MyBase.Load
@ -28,6 +29,31 @@ Public Class GUI
Set_ContainerPointsY() Set_ContainerPointsY()
Create_StartPoints() Create_StartPoints()
Temp_Create_PointButton()
End Sub
' --- TEMP ---
Private Sub Temp_Create_PointButton()
Dim PointButton As New Button
PointButton.Top = 15
PointButton.Left = 15
PointButton.Width = 30
PointButton.Height = 30
PointButton.Name = "PointButton"
PointButton.Text = ""
PointButton.BackColor = Color.Transparent
PointButton.FlatStyle = FlatStyle.Flat
PointButton.FlatAppearance.BorderSize = 0
PointButton.FlatAppearance.MouseOverBackColor = Color.Red
PointButton.FlatAppearance.MouseDownBackColor = Color.DarkRed
Dim gp As New Drawing.Drawing2D.GraphicsPath
gp.AddEllipse(New Rectangle(New Point(0, 0), New Size(30, 30)))
PointButton.Region = New Region(gp)
containerPanel.Controls.Add(PointButton)
End Sub End Sub
' --- Retrive parameters for the drawing box --- ' --- Retrive parameters for the drawing box ---
@ -145,7 +171,7 @@ Public Class GUI
Set_ContainerPointsY() Set_ContainerPointsY()
End If End If
'Redraw rectangle 'Redraw grating
Me.Refresh() Me.Refresh()
'SW X-values 'SW X-values
@ -161,6 +187,34 @@ Public Class GUI
pCon4(3) = (-gratingMaxH / 2) / 1000 pCon4(3) = (-gratingMaxH / 2) / 1000
End Sub End Sub
' --- When angle button is pressed ---
Private Sub AngleButton_Click(sender As Object, e As EventArgs) Handles AngleButton.Click
'Determine which point is being pressed
Dim pointPressed As String
pointPressed = "p1" ' Fix this
Dim index As Integer = pointsOrder.IndexOf(pointPressed)
'Retrive that points coords
Dim tempX, tempY As Integer
tempX = points(pointPressed)(0)
tempY = points(pointPressed)(1)
'Insert two new points
points.Add("pT1", {tempX, tempY + 80, 0, 0})
pointsOrder.Insert(index + 1, "pT1")
points.Add("pT2", {tempX + 50, tempY, 0, 0})
pointsOrder.Insert(index + 2, "pT2")
pointsOrder.RemoveAt(index)
'Fix those points coords
'Add those points in pointsOrder and remove orignal point
'Redraw grating
Me.Refresh()
End Sub
' --- When export to SW button is pressed --- ' --- When export to SW button is pressed ---
Private Sub ExportSWButton_Click(sender As Object, e As EventArgs) Handles ExportSWButton.Click Private Sub ExportSWButton_Click(sender As Object, e As EventArgs) Handles ExportSWButton.Click
Dim pointTable As New DataTable Dim pointTable As New DataTable