VERSION 2.00
Begin MDIForm Editor 
   Caption         =   "Magma Editor VBX Demo"
   ClientHeight    =   3870
   ClientLeft      =   1470
   ClientTop       =   2070
   ClientWidth     =   7425
   Height          =   4875
   Left            =   1395
   LinkTopic       =   "MDIForm1"
   ScrollBars      =   0   'False
   Top             =   1140
   Width           =   7575
   Begin PictureBox Picture1 
      Align           =   1  'Align Top
      Height          =   495
      Left            =   0
      ScaleHeight     =   465
      ScaleWidth      =   7395
      TabIndex        =   0
      Top             =   0
      Width           =   7425
      Begin CommonDialog CMDialog1 
         Filter          =   "(Text *.txt)|*.txt"
         Left            =   6960
         Top             =   0
      End
   End
   Begin Menu mnuFile 
      Caption         =   "&File"
      Index           =   0
      Begin Menu mnuFileNew 
         Caption         =   "&New"
      End
      Begin Menu mnuFileOpen 
         Caption         =   "&Open..."
      End
      Begin Menu mnuSave 
         Caption         =   "&Save"
      End
      Begin Menu mnuSaveAs 
         Caption         =   "Save &As..."
      End
      Begin Menu mnuSep3 
         Caption         =   "-"
      End
      Begin Menu mnuFileExit 
         Caption         =   "E&xit"
         Shortcut        =   ^X
      End
   End
   Begin Menu mnuEdit 
      Caption         =   "&Edit"
      Begin Menu mnuMarkLine 
         Caption         =   "Mark &line"
         Shortcut        =   ^L
      End
      Begin Menu mnuMarkRange 
         Caption         =   "Mark line &range"
         Shortcut        =   ^R
      End
      Begin Menu mnuMarkStream 
         Caption         =   "Mark &stream"
         Shortcut        =   {F7}
      End
      Begin Menu mnuMarkRect 
         Caption         =   "Mark &rectangle"
         Shortcut        =   +{F7}
      End
      Begin Menu mnuClearmark 
         Caption         =   "Clear marks"
         Shortcut        =   ^{F8}
      End
      Begin Menu mnuSep6 
         Caption         =   "-"
      End
      Begin Menu mnuCut 
         Caption         =   "&Cut"
         Shortcut        =   {F8}
      End
      Begin Menu mnuCutAppend 
         Caption         =   "Cut and &Append"
         Shortcut        =   +{F8}
      End
      Begin Menu mnuClear 
         Caption         =   "C&lear"
         Shortcut        =   ^D
      End
      Begin Menu mnuCopy 
         Caption         =   "C&opy"
         Shortcut        =   +{F9}
      End
      Begin Menu mnuDupl 
         Caption         =   "&Duplicate"
         Shortcut        =   {F11}
      End
      Begin Menu mnuPaste 
         Caption         =   "&Paste"
         Shortcut        =   {F9}
      End
      Begin Menu mnuCase 
         Caption         =   "Change Case"
         Begin Menu mnuCaseLower 
            Caption         =   "Lower"
         End
         Begin Menu mnuCaseUpper 
            Caption         =   "Upper"
         End
      End
      Begin Menu mnuSep4 
         Caption         =   "-"
      End
      Begin Menu mnuUndo 
         Caption         =   "&Undo"
         Shortcut        =   ^Z
      End
      Begin Menu mnuRedo 
         Caption         =   "&Redo"
         Enabled         =   0   'False
         Shortcut        =   ^A
      End
      Begin Menu mnuSep5 
         Caption         =   "-"
      End
      Begin Menu mnuDelEOL 
         Caption         =   "Delete to EOL"
         Shortcut        =   ^K
      End
      Begin Menu mnuDelWord 
         Caption         =   "Delete Word"
         Shortcut        =   +{DEL}
      End
   End
   Begin Menu mnuLine 
      Caption         =   "&Line"
      Begin Menu mnuAppendLine 
         Caption         =   "&Append Line"
      End
      Begin Menu mnuInsertLine 
         Caption         =   "&Insert Line"
      End
      Begin Menu mnuDeleteLine 
         Caption         =   "&Delete Line"
      End
   End
   Begin Menu mnuFormat 
      Caption         =   "Fo&rmat"
      Begin Menu mnuReformPara 
         Caption         =   "Reformat Paragraph"
         Shortcut        =   ^P
      End
      Begin Menu mnuReformDoc 
         Caption         =   "Reformat Document"
      End
      Begin Menu mnuCenterLine 
         Caption         =   "Center Line"
      End
      Begin Menu mnuInsPic 
         Caption         =   "Insert Picture..."
         Enabled         =   0   'False
      End
   End
   Begin Menu mnuSearch 
      Caption         =   "&Search"
      Begin Menu mnuFSearch 
         Caption         =   "Search Forward..."
         Shortcut        =   {F5}
      End
      Begin Menu mnuBSearch 
         Caption         =   "Search Backward..."
         Shortcut        =   +{F5}
      End
      Begin Menu mnuSearchAgain 
         Caption         =   "Search Again"
         Shortcut        =   ^{F5}
      End
      Begin Menu mnuFReplace 
         Caption         =   "Replace Forward"
         Shortcut        =   {F6}
      End
      Begin Menu mnuRReplace 
         Caption         =   "Replace Backward"
         Shortcut        =   +{F6}
      End
      Begin Menu mnuReplaceAgain 
         Caption         =   "Replace Again"
         Shortcut        =   ^{F6}
      End
      Begin Menu mnuSep2 
         Caption         =   "-"
      End
      Begin Menu mnuBraceMatch 
         Caption         =   "Match Brace"
         Shortcut        =   ^B
      End
   End
   Begin Menu mnuMacros 
      Caption         =   "&Macros"
      Begin Menu mnuCapture 
         Caption         =   "Begin Capture"
         Shortcut        =   {F4}
      End
      Begin Menu mnuReplay 
         Caption         =   "&Replay"
      End
   End
   Begin Menu mnuOpt 
      Caption         =   "&Options"
      Begin Menu mnuOptions 
         Caption         =   "Set &options..."
      End
      Begin Menu mnuColor 
         Caption         =   "&Color"
         Begin Menu mnuColorFg 
            Caption         =   "&Foreground..."
         End
         Begin Menu mnuColorBg 
            Caption         =   "&Background..."
         End
      End
      Begin Menu mnuFont 
         Caption         =   "&Font..."
      End
      Begin Menu mnuWordwrap 
         Caption         =   "&Wordwrap"
      End
   End
   Begin Menu mnuWindow 
      Caption         =   "&Window"
      Begin Menu mnuTile 
         Caption         =   "&Tile"
      End
      Begin Menu mnuCascade 
         Caption         =   "&Cascade"
      End
      Begin Menu mnuArrangeIcons 
         Caption         =   "Arrange &Icons"
      End
      Begin Menu mnuCloseAll 
         Caption         =   "Close &All"
      End
   End
   Begin Menu mnuHlp 
      Caption         =   "&Help"
      Begin Menu mnuHelpEdit 
         Caption         =   "Help on MagmaEdit"
      End
      Begin Menu mnuHelpWord 
         Caption         =   "&Help on &Word"
      End
      Begin Menu mnuSep 
         Caption         =   "-"
      End
      Begin Menu mnuAbout 
         Caption         =   "&About MEWIN..."
      End
   End
   Begin Menu mnuProp 
      Caption         =   "&Properties"
      Begin Menu mnuPropSel 
         Caption         =   "&Selection..."
      End
   End
End

Function AllocNewChildForm () As Integer
    
    Dim newMDIChild As MDIChild1
    Dim idx As Integer

    idx = FindEmptySlot()
    If (idx = -1) Then
        ' Create a new instance on an MDI child
        ReDim Preserve MDIDoc(EditorInfo.nDocuments + 1)
        ReDim Preserve DocInfo(EditorInfo.nDocuments + 1)
        idx = EditorInfo.nDocuments
        
        ' Bump up the number of docs we have
        EditorInfo.nDocuments = EditorInfo.nDocuments + 1
    
    Else
    
    End If

    
    Set newMDIChild = MDIDoc(idx)
    
    ' Return the index of the new MDI child
    AllocNewChildForm = idx
    newMDIChild.Tag = idx
    DocInfo(idx).bDeleted = False
    
    ' Enable the properties menu
    Editor.mnuProp.Enabled = True
    
End Function

Function FindEmptySlot () As Integer
    Dim i As Integer
    Dim nDocuments As Integer

    For i = 0 To EditorInfo.nDocuments - 1
        If (DocInfo(i).bDeleted = True) Then
            FindEmptySlot = i
            Exit Function
        End If
    Next i
    
    FindEmptySlot = -1
End Function

Sub MDIForm_Load ()
    mnuProp.Enabled = False
End Sub

Sub mnuAppendLine_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_APPENDLINE
End Sub

Sub mnuBraceMatch_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_MATCHBRACE
End Sub

Sub mnuBSearch_Click ()
        Editor.ActiveForm.MagmaEdit1.Action = ME_BSEARCH
End Sub

Sub mnuDeleteLine_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_DELLINE
End Sub

Sub mnuFileExit_Click ()
    End
End Sub

Sub mnuFileNew_Click ()
    Dim idx As Integer
    Dim newMDIChild As MDIChild1

    idx = AllocNewChildForm()
    Set newMDIChild = MDIDoc(idx)
    
    ' Display the MDI child
    newMDIChild.Show

End Sub

Sub mnuFileOpen_Click ()
    Dim idx As Integer
    Dim newMDIChild As MDIChild1
    
    ' Show the File Open dialog and let the user choose a file
    On Error GoTo nofile
    CMDialog1.Action = 1

    
    ' Allocate a new MDI child
    idx = AllocNewChildForm()
    Set newMDIChild = MDIDoc(idx)
    
    ' Set the caption to the file name
    newMDIChild.Caption = CMDialog1.Filename
    
    ' Display the MDI child
    newMDIChild.Show

    newMDIChild.MagmaEdit1.Filename = CMDialog1.Filename

    ' The user pressed the cancel button in the FileOpen dialog
nofile:
    Exit Sub

End Sub

Sub mnuFReplace_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_FREPLACE
End Sub

Sub mnuFSearch_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_FSEARCH
End Sub

Sub mnuInsertLine_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_INSERTLINE
End Sub

Sub mnuMarkLine_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_MARKLINE
End Sub

Sub mnuMarkRange_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_MARKLINERANGE
End Sub

Sub mnuPropSel_Click ()
    SelPropDlg.Show 1
End Sub

Sub mnuReplaceAgain_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_REPLACEAGAIN
End Sub

Sub mnuRReplace_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_BREPLACE
End Sub

Sub mnuSearchAgain_Click ()
    Editor.ActiveForm.MagmaEdit1.Action = ME_SEARCHAGAIN
End Sub

