Global ToolStatus As String
Global SelectObject As String
Global A_filename As String, temp_filename As String
Global SaveOrLoad As String
Global CurrentNo As Integer
Global DataText(1 To 1000) As Integer, MaxText As Integer
Global DataLine(1 To 1000) As Integer, MaxLine As Integer
Global DataRectangle(1 To 1000) As Integer, MaxRectangle As Integer
Global DataRoundrectangle(1 To 1000) As Integer, MaxRoundrectangle As Integer
Global DataCircle(1 To 1000) As Integer, MaxCircle As Integer
Global DataDiamond(1 To 1000) As Integer, MaxDiamond As Integer

Sub DiamondDraw (S As Control, ByVal i As Integer)
    main.Diamond(i).Visible = False
    main.Diamond1(i * 4).X1 = S.Left + S.Width / 2: main.Diamond1(i * 4).Y1 = S.Top
    main.Diamond1(i * 4 + 1).X1 = S.Left: main.Diamond1(i * 4 + 1).Y1 = S.Top + S.Height / 2
    main.Diamond1(i * 4 + 2).X1 = main.Diamond1(i * 4).X1: main.Diamond1(i * 4 + 2).Y1 = S.Top + S.Height
    main.Diamond1(i * 4 + 3).X1 = S.Left + S.Width: main.Diamond1(i * 4 + 3).Y1 = main.Diamond1(i * 4 + 1).Y1
    main.Diamond1(i * 4).X2 = main.Diamond1(i * 4 + 1).X1: main.Diamond1(i * 4).Y2 = main.Diamond1(i * 4 + 1).Y1
    main.Diamond1(i * 4 + 1).X2 = main.Diamond1(i * 4 + 2).X1: main.Diamond1(i * 4 + 1).Y2 = main.Diamond1(i * 4 + 2).Y1
    main.Diamond1(i * 4 + 2).X2 = main.Diamond1(i * 4 + 3).X1: main.Diamond1(i * 4 + 2).Y2 = main.Diamond1(i * 4 + 3).Y1
    main.Diamond1(i * 4 + 3).X2 = main.Diamond1(i * 4).X1: main.Diamond1(i * 4 + 3).Y2 = main.Diamond1(i * 4).Y1
    main.Diamond1(i * 4).Visible = True
    main.Diamond1(i * 4 + 1).Visible = True
    main.Diamond1(i * 4 + 2).Visible = True
    main.Diamond1(i * 4 + 3).Visible = True
    main.Diamond1(i * 4).BorderStyle = main.Diamond(i).BorderStyle
    main.Diamond1(i * 4).BorderWidth = main.Diamond(i).BorderWidth
    main.Diamond1(i * 4 + 1).BorderStyle = main.Diamond(i).BorderStyle
    main.Diamond1(i * 4 + 1).BorderWidth = main.Diamond(i).BorderWidth
    main.Diamond1(i * 4 + 2).BorderStyle = main.Diamond(i).BorderStyle
    main.Diamond1(i * 4 + 2).BorderWidth = main.Diamond(i).BorderWidth
    main.Diamond1(i * 4 + 3).BorderStyle = main.Diamond(i).BorderStyle
    main.Diamond1(i * 4 + 3).BorderWidth = main.Diamond(i).BorderWidth
End Sub

Sub DisableTool ()
    Select Case ToolStatus$
      Case "pointer":
        tools.toolPointerOFF.Visible = True
        tools.toolPointerON.Visible = False
      Case "text":
        tools.toolTextOFF.Visible = True
        tools.toolTextON.Visible = False
      Case "line":
        tools.toolLineOFF.Visible = True
        tools.toolLineON.Visible = False
      Case "rectangle":
        tools.toolRectangleOFF.Visible = True
        tools.toolRectangleON.Visible = False
      Case "roundrectangle":
        tools.toolRoundRectangleOFF.Visible = True
        tools.toolRoundRectangleON.Visible = False
      Case "circle":
        tools.toolCircleOFF.Visible = True
        tools.toolCircleON.Visible = False
      Case "diamond":
        tools.toolDiamondOFF.Visible = True
        tools.toolDiamondON.Visible = False
    End Select
End Sub

Sub DotAllHide ()
    main.Dot1.Visible = False
    main.Dot2.Visible = False
    main.DotLU.Visible = False
    main.DotLD.Visible = False
    main.DotRU.Visible = False
    main.DotRD.Visible = False
End Sub

Sub FileSave ()
    On Error GoTo ERR_SAVE
    Dim FileNum, i As Integer
    Dim tempInt As Integer
    Dim tempStr As String
    FileNum = FreeFile

    Screen.MousePointer = 11 'Wait Icon
    Open A_filename For Output Access Write As FileNum
    Write #FileNum, "MacbearERModel1.0 "
    'Write Diamond Data
    tempInt = 0
    For i = 1 To MaxDiamond
      If DataDiamond(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxDiamond
      If DataDiamond(i) = 1 Then Write #FileNum, main.Diamond(i).BorderStyle, main.Diamond(i).BorderWidth, main.Diamond(i).Height, main.Diamond(i).Left, main.Diamond(i).Top, main.Diamond(i).Width
    Next i

    'Write Circle Data
    tempInt = 0
    For i = 1 To MaxCircle
      If DataCircle(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxCircle
      If DataCircle(i) = 1 Then Write #FileNum, main.Circle1(i).BorderStyle, main.Circle1(i).BorderWidth, main.Circle1(i).Height, main.Circle1(i).Left, main.Circle1(i).Top, main.Circle1(i).Width
    Next i

    'Write Roundrectangle Data
    tempInt = 0
    For i = 1 To MaxRoundrectangle
      If DataRoundrectangle(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxRoundrectangle
      If DataRoundrectangle(i) = 1 Then Write #FileNum, main.RoundRectangle1(i).BorderStyle, main.RoundRectangle1(i).BorderWidth, main.RoundRectangle1(i).Height, main.RoundRectangle1(i).Left, main.RoundRectangle1(i).Top, main.RoundRectangle1(i).Width
    Next i
    
    'Write Rectangle Data
    tempInt = 0
    For i = 1 To MaxRectangle
      If DataRectangle(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxRectangle
      If DataRectangle(i) = 1 Then Write #FileNum, main.Rectangle1(i).BorderStyle, main.Rectangle1(i).BorderWidth, main.Rectangle1(i).Height, main.Rectangle1(i).Left, main.Rectangle1(i).Top, main.Rectangle1(i).Width
    Next i
    
    'Write Line Data
    tempInt = 0
    For i = 1 To MaxLine
      If DataLine(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxLine
      If DataLine(i) = 1 Then Write #FileNum, main.Line1(i).BorderStyle, main.Line1(i).BorderWidth, main.Line1(i).X1, main.Line1(i).X2, main.Line1(i).Y1, main.Line1(i).Y2
    Next i

    'Write Text Data
    tempInt = 0
    For i = 1 To MaxText
      If DataText(i) = 1 Then tempInt = tempInt + 1
    Next i
    Write #FileNum, tempInt
    For i = 1 To MaxText
      If DataText(i) = 1 Then
        Write #FileNum, main.Text1(i).FontBold, main.Text1(i).FontItalic, main.Text1(i).FontName, main.Text1(i).FontSize, main.Text1(i).FontStrikethru, main.Text1(i).FontUnderline, main.Text1(i).Height, main.Text1(i).Left, main.Text1(i).Top, main.Text1(i).Width
        Write #FileNum, main.Text1(i).Text
      End If
    Next i
    SaveOrLoad$ = "SaveSuccess"

OVER_SAVE:
    Close FileNum
    Screen.MousePointer = 0 'Default Icon
    Exit Sub
ERR_SAVE:
    Screen.MousePointer = 0 'Default Icon
    If Right$(CurDir$, 1) = "\" Then tempStr$ = "" Else tempStr$ = "\"
    MsgBox CurDir$ + tempStr$ + A_filename$ + " file created error", 48, "Error Message"
    A_filename$ = temp_filename$
    SaveOrLoad$ = "SaveFailure"
    Resume OVER_SAVE

End Sub

