home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 6_2008-2009.ISO / data / zips / DM_INI_Edi2127419172008.psc / IniEditor / frm / frmmain.frm < prev    next >
Text File  |  2008-09-18  |  23KB  |  719 lines

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  4. Begin VB.Form frmmain 
  5.    Caption         =   "DM INI Editor"
  6.    ClientHeight    =   4905
  7.    ClientLeft      =   165
  8.    ClientTop       =   450
  9.    ClientWidth     =   8415
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   4905
  12.    ScaleWidth      =   8415
  13.    StartUpPosition =   2  'CenterScreen
  14.    Begin MSComctlLib.ListView Lst1 
  15.       Height          =   1335
  16.       Left            =   2415
  17.       TabIndex        =   3
  18.       Top             =   420
  19.       Width           =   1365
  20.       _ExtentX        =   2408
  21.       _ExtentY        =   2355
  22.       View            =   3
  23.       LabelEdit       =   1
  24.       LabelWrap       =   -1  'True
  25.       HideSelection   =   -1  'True
  26.       FullRowSelect   =   -1  'True
  27.       _Version        =   393217
  28.       SmallIcons      =   "ImageList1"
  29.       ForeColor       =   -2147483640
  30.       BackColor       =   -2147483643
  31.       BorderStyle     =   1
  32.       Appearance      =   1
  33.       NumItems        =   2
  34.       BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  35.          Text            =   "Name"
  36.          Object.Width           =   2540
  37.       EndProperty
  38.       BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  39.          SubItemIndex    =   1
  40.          Text            =   "Value"
  41.          Object.Width           =   2540
  42.       EndProperty
  43.    End
  44.    Begin MSComctlLib.ImageList ImageList1 
  45.       Left            =   4410
  46.       Top             =   540
  47.       _ExtentX        =   1005
  48.       _ExtentY        =   1005
  49.       BackColor       =   -2147483643
  50.       ImageWidth      =   16
  51.       ImageHeight     =   16
  52.       MaskColor       =   16711935
  53.       _Version        =   393216
  54.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  55.          NumListImages   =   8
  56.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  57.             Picture         =   "frmmain.frx":0000
  58.             Key             =   ""
  59.          EndProperty
  60.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  61.             Picture         =   "frmmain.frx":0352
  62.             Key             =   ""
  63.          EndProperty
  64.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  65.             Picture         =   "frmmain.frx":06A4
  66.             Key             =   ""
  67.          EndProperty
  68.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  69.             Picture         =   "frmmain.frx":09F6
  70.             Key             =   "Alpha"
  71.          EndProperty
  72.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  73.             Picture         =   "frmmain.frx":0B08
  74.             Key             =   "Digit"
  75.          EndProperty
  76.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  77.             Picture         =   "frmmain.frx":0C1A
  78.             Key             =   "Folder"
  79.          EndProperty
  80.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  81.             Picture         =   "frmmain.frx":0F6C
  82.             Key             =   "Top"
  83.          EndProperty
  84.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  85.             Picture         =   "frmmain.frx":12BE
  86.             Key             =   ""
  87.          EndProperty
  88.       EndProperty
  89.    End
  90.    Begin MSComctlLib.TreeView Tv1 
  91.       Height          =   1305
  92.       Left            =   0
  93.       TabIndex        =   2
  94.       Top             =   435
  95.       Width           =   2370
  96.       _ExtentX        =   4180
  97.       _ExtentY        =   2302
  98.       _Version        =   393217
  99.       Indentation     =   353
  100.       LabelEdit       =   1
  101.       Style           =   7
  102.       ImageList       =   "ImageList1"
  103.       Appearance      =   1
  104.    End
  105.    Begin MSComctlLib.StatusBar sBar1 
  106.       Align           =   2  'Align Bottom
  107.       Height          =   375
  108.       Left            =   0
  109.       TabIndex        =   1
  110.       Top             =   4530
  111.       Width           =   8415
  112.       _ExtentX        =   14843
  113.       _ExtentY        =   661
  114.       _Version        =   393216
  115.       BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
  116.          NumPanels       =   1
  117.          BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
  118.             AutoSize        =   1
  119.             Object.Width           =   14340
  120.          EndProperty
  121.       EndProperty
  122.    End
  123.    Begin MSComctlLib.Toolbar Toolbar1 
  124.       Align           =   1  'Align Top
  125.       Height          =   360
  126.       Left            =   0
  127.       TabIndex        =   0
  128.       Top             =   0
  129.       Width           =   8415
  130.       _ExtentX        =   14843
  131.       _ExtentY        =   635
  132.       ButtonWidth     =   609
  133.       ButtonHeight    =   582
  134.       Appearance      =   1
  135.       Style           =   1
  136.       ImageList       =   "ImageList1"
  137.       _Version        =   393216
  138.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  139.          NumButtons      =   7
  140.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  141.             Key             =   "NEW"
  142.             Object.ToolTipText     =   "New"
  143.             ImageIndex      =   1
  144.          EndProperty
  145.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  146.             Key             =   "OPEN"
  147.             Object.ToolTipText     =   "Open"
  148.             ImageIndex      =   2
  149.          EndProperty
  150.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  151.             Key             =   "SAVE"
  152.             Object.ToolTipText     =   "ExportXML"
  153.             ImageIndex      =   3
  154.          EndProperty
  155.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  156.             Style           =   3
  157.          EndProperty
  158.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  159.             Key             =   "SELECTION"
  160.             Object.ToolTipText     =   "Selection"
  161.             ImageIndex      =   6
  162.             Style           =   5
  163.             BeginProperty ButtonMenus {66833FEC-8583-11D1-B16A-00C0F0283628} 
  164.                NumButtonMenus  =   4
  165.                BeginProperty ButtonMenu1 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  166.                   Enabled         =   0   'False
  167.                   Key             =   "SelAdd"
  168.                   Text            =   "Add"
  169.                EndProperty
  170.                BeginProperty ButtonMenu2 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  171.                   Enabled         =   0   'False
  172.                   Key             =   "SelDel"
  173.                   Text            =   "Delete"
  174.                EndProperty
  175.                BeginProperty ButtonMenu3 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  176.                   Enabled         =   0   'False
  177.                   Key             =   "SelRename"
  178.                   Text            =   "Rename"
  179.                EndProperty
  180.                BeginProperty ButtonMenu4 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  181.                   Enabled         =   0   'False
  182.                   Key             =   "SelExport"
  183.                   Text            =   "Export"
  184.                EndProperty
  185.             EndProperty
  186.          EndProperty
  187.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  188.             Key             =   "ITEM"
  189.             Object.ToolTipText     =   "Item"
  190.             ImageIndex      =   8
  191.             Style           =   5
  192.             BeginProperty ButtonMenus {66833FEC-8583-11D1-B16A-00C0F0283628} 
  193.                NumButtonMenus  =   3
  194.                BeginProperty ButtonMenu1 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  195.                   Enabled         =   0   'False
  196.                   Key             =   "iNew"
  197.                   Text            =   "New"
  198.                EndProperty
  199.                BeginProperty ButtonMenu2 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  200.                   Enabled         =   0   'False
  201.                   Key             =   "iEdit"
  202.                   Text            =   "Edit"
  203.                EndProperty
  204.                BeginProperty ButtonMenu3 {66833FEE-8583-11D1-B16A-00C0F0283628} 
  205.                   Enabled         =   0   'False
  206.                   Key             =   "iDel"
  207.                   Text            =   "Delete"
  208.                EndProperty
  209.             EndProperty
  210.          EndProperty
  211.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  212.             Style           =   3
  213.          EndProperty
  214.       EndProperty
  215.    End
  216.    Begin MSComDlg.CommonDialog CD1 
  217.       Left            =   3855
  218.       Top             =   465
  219.       _ExtentX        =   847
  220.       _ExtentY        =   847
  221.       _Version        =   393216
  222.    End
  223.    Begin VB.Line Line1 
  224.       BorderColor     =   &H00FFFFFF&
  225.       Index           =   1
  226.       X1              =   0
  227.       X2              =   585
  228.       Y1              =   390
  229.       Y2              =   390
  230.    End
  231.    Begin VB.Line Line1 
  232.       BorderColor     =   &H00808080&
  233.       Index           =   0
  234.       X1              =   0
  235.       X2              =   585
  236.       Y1              =   375
  237.       Y2              =   375
  238.    End
  239.    Begin VB.Menu mnuFile 
  240.       Caption         =   "&File"
  241.       Begin VB.Menu mnuNew 
  242.          Caption         =   "New"
  243.          Shortcut        =   ^N
  244.       End
  245.       Begin VB.Menu mnuOpen 
  246.          Caption         =   "&Open..."
  247.       End
  248.       Begin VB.Menu mnuBlank1 
  249.          Caption         =   "-"
  250.       End
  251.       Begin VB.Menu mnuSave 
  252.          Caption         =   "&Export XML"
  253.          Shortcut        =   ^S
  254.       End
  255.       Begin VB.Menu mnuBlank2 
  256.          Caption         =   "-"
  257.       End
  258.       Begin VB.Menu mnuexit 
  259.          Caption         =   "E&xit"
  260.       End
  261.    End
  262.    Begin VB.Menu mnuEdit 
  263.       Caption         =   "Edit"
  264.       Begin VB.Menu mnuItem 
  265.          Caption         =   "Item"
  266.          Begin VB.Menu mnuNewi 
  267.             Caption         =   "&New"
  268.             Enabled         =   0   'False
  269.          End
  270.          Begin VB.Menu mnuEdit1 
  271.             Caption         =   "Edit"
  272.             Enabled         =   0   'False
  273.          End
  274.          Begin VB.Menu mnuDel1 
  275.             Caption         =   "Delete"
  276.             Enabled         =   0   'False
  277.          End
  278.       End
  279.       Begin VB.Menu mnuSel 
  280.          Caption         =   "Selection"
  281.          Begin VB.Menu mnuAdd1 
  282.             Caption         =   "Add"
  283.             Enabled         =   0   'False
  284.          End
  285.          Begin VB.Menu mnuDel2 
  286.             Caption         =   "Delete"
  287.             Enabled         =   0   'False
  288.          End
  289.          Begin VB.Menu mnuRename 
  290.             Caption         =   "Rename"
  291.             Enabled         =   0   'False
  292.          End
  293.          Begin VB.Menu mnuExport 
  294.             Caption         =   "Export"
  295.             Enabled         =   0   'False
  296.          End
  297.       End
  298.    End
  299.    Begin VB.Menu mnuHelp 
  300.       Caption         =   "&Help"
  301.       Begin VB.Menu mnuAbout 
  302.          Caption         =   "&About"
  303.       End
  304.    End
  305. End
  306. Attribute VB_Name = "frmmain"
  307. Attribute VB_GlobalNameSpace = False
  308. Attribute VB_Creatable = False
  309. Attribute VB_PredeclaredId = True
  310. Attribute VB_Exposed = False
  311. Option Explicit
  312.  
  313. Private mIni As dINIFile
  314. Private Const VBQuote As String = """"
  315. Private Const Filter1 As String = "INI Files(*.ini)|*.ini|"
  316. Private Const Filter2 As String = "XML Files(*.xml)|*.xml|"
  317.  
  318. Private Sub ExportXML(ByVal OutName As String)
  319. Dim oCol As Collection
  320. Dim iCol As Collection
  321. Dim sLine As String
  322. Dim sItem
  323. Dim iItem
  324. Dim fp As Long
  325.  
  326.     'Converts an INI File to XML
  327.     Set oCol = mIni.GetSelections()
  328.     fp = FreeFile
  329.     
  330.     Open OutName For Append As #fp
  331.         
  332.         Print #fp, "<?xml version=" & VBQuote & "1.0" & VBQuote & " encoding=" & VBQuote & "UTF-8" & VBQuote & "?>"
  333.         Print #fp, "<sections>"
  334.         
  335.         For Each sItem In oCol
  336.             Set iCol = mIni.GetValues(sItem)
  337.             '
  338.             Print #fp, Space(4) & "<section name=" & VBQuote & sItem & VBQuote & ">"
  339.             
  340.             For Each iItem In iCol
  341.                 sLine = mIni.ReadValue(sItem, iItem)
  342.                 Print #fp, Space(6) & "<item key=" & VBQuote & iItem & VBQuote & " value=" & VBQuote & sLine & VBQuote & " />    "
  343.             Next iItem
  344.             
  345.             Print #fp, Space(4) & "</section>"
  346.             
  347.         Next sItem
  348.     
  349.         Print #fp, "</sections>"
  350.     Close #fp
  351.     
  352.     Set oCol = Nothing
  353.     Set iCol = Nothing
  354.     sLine = vbNullString
  355.     
  356. End Sub
  357.  
  358. Private Sub ExportSelection(ByVal OutName As String, Selection As String)
  359. Dim oCol As Collection
  360. Dim tmp() As String
  361. Dim Cnt As Integer
  362. Dim fp As Long
  363.     
  364.     'Writes a selected selection to a file.
  365.     If mIni.SelectionExists(Selection) Then
  366.         Set oCol = mIni.GetValues(Selection)
  367.         
  368.         ReDim Preserve tmp(0 To oCol.Count - 1)
  369.         
  370.         For Cnt = 1 To oCol.Count
  371.             tmp(Cnt - 1) = oCol(Cnt) & "=" & mIni.ReadValue(Selection, oCol(Cnt))
  372.         Next Cnt
  373.         
  374.         fp = FreeFile
  375.         
  376.         Open OutName For Output As #fp
  377.             Print #fp, "[" & Selection & "]"
  378.             Print #fp, Join(tmp, vbCrLf)
  379.         Close #fp
  380.         
  381.     End If
  382.     
  383.     Erase tmp
  384.     Set oCol = Nothing
  385.     
  386.     
  387. End Sub
  388.  
  389. Private Sub LoadSelections()
  390. Dim oCol As Collection
  391. Dim sSel
  392.     
  393.     'Load INI selections into the Treeview control
  394.     With Tv1
  395.         Set oCol = mIni.GetSelections
  396.         .Nodes.Clear
  397.         If (oCol.Count > 0) Then
  398.             'Add top node
  399.             .Nodes.Add , tvwFirst, "TOP", GetFilename(mIni.Filename), "Top"
  400.             'Add child nodes INI Selection names.
  401.             For Each sSel In oCol
  402.                 .Nodes.Add 1, tvwChild, "c" & .Nodes.Count, sSel, "Folder"
  403.             Next sSel
  404.             'Select the first node
  405.             .Nodes(2).Selected = True
  406.             .Refresh
  407.         End If
  408.         
  409.         Call Tv1_Click
  410.     End With
  411.     
  412.     Set oCol = Nothing
  413.     Toolbar1.Buttons(5).ButtonMenus(1).Enabled = True
  414.     mnuAdd1.Enabled = True
  415. End Sub
  416.  
  417. Private Sub LoadValues(Selection As String, Optional SelectIdx As Integer = 1)
  418. On Error Resume Next
  419.  
  420. Dim sSel As String
  421. Dim oItems As Collection
  422. Dim sItem
  423. Dim SelName As String
  424. Dim sIcon As String
  425. Dim sVal As Variant
  426. Dim lItem As ListItem
  427.  
  428.     'LOads INI Value names and data into Listview control.
  429.     Set oItems = mIni.GetValues(Selection)
  430.     
  431.     With Lst1
  432.         'Clear control.
  433.         .ListItems.Clear
  434.         'Add each item to the listview.
  435.         For Each sItem In oItems
  436.             'Add vlaue name
  437.             sVal = mIni.ReadValue(Selection, sItem)
  438.             
  439.             If IsNumeric(sVal) Then
  440.                 'Add String bitmap
  441.                 sIcon = "Digit"
  442.             Else
  443.                 'Add Alpha bitmap
  444.                 sIcon = "Alpha"
  445.             End If
  446.             
  447.             .ListItems.Add , "c," & Selection & "," & .ListItems.Count, sItem, , sIcon
  448.             .ListItems(.ListItems.Count).SubItems(1) = sVal
  449.         Next sItem
  450.         
  451.         'Get list item
  452.         Set lItem = .ListItems(SelectIdx)
  453.         lItem.Selected = True
  454.         Call Lst1_ItemClick(lItem)
  455.         
  456.         Set lItem = Nothing
  457.         Set oItems = Nothing
  458.     End With
  459.     
  460.     
  461. End Sub
  462.  
  463. Private Sub Command1_Click()
  464. ExportXML "C:\work\ben.txt"
  465.  
  466. End Sub
  467.  
  468. Private Sub Form_Load()
  469.     LastDirLoc = FixPath(App.Path)
  470.     Set mIni = New dINIFile
  471. End Sub
  472.  
  473. Private Sub Form_Resize()
  474. On Error Resume Next
  475.  
  476.     Line1(0).X2 = frmmain.ScaleWidth
  477.     Line1(1).X2 = Line1(0).X2
  478.     
  479.     Tv1.Height = (frmmain.ScaleHeight - sBar1.Height) - Tv1.Top
  480.     Lst1.Height = Tv1.Height
  481.     Lst1.Width = (frmmain.ScaleWidth - Lst1.Left)
  482.     
  483. End Sub
  484.  
  485. Private Function GetNameFromDLG(ShowOpen As Boolean, dFilter As String, Optional Title As String = "Open") As String
  486. On Error GoTo OpenErr:
  487.     'Returns a filename from the Dialog control
  488.     With CD1
  489.         .CancelError = True
  490.         .DialogTitle = Title
  491.         .Filter = dFilter
  492.         .InitDir = LastDirLoc
  493.         .Filename = vbNullString
  494.         'What dialog to show, Open or save
  495.         If (ShowOpen) Then
  496.             .ShowOpen
  497.         Else
  498.             .ShowSave
  499.         End If
  500.         'Return Filename.
  501.         GetNameFromDLG = .Filename
  502.         'Preserve last known path
  503.         LastDirLoc = GetAbsPath(.Filename)
  504.     End With
  505.     
  506.     Exit Function
  507.     'Cancel Error flag
  508. OpenErr:
  509.     If (Err.Number = cdlCancel) Then
  510.         Err.Clear
  511.     End If
  512. End Function
  513.  
  514. Private Sub Form_Unload(Cancel As Integer)
  515.     Set mIni = Nothing
  516.     Set frmAdd = Nothing
  517.     Set frmmain = Nothing
  518. End Sub
  519.  
  520. Private Sub Lst1_ItemClick(ByVal Item As MSComctlLib.ListItem)
  521.     mValName = Lst1.SelectedItem.Text 'Item Name
  522.     mValData = Lst1.SelectedItem.SubItems(1) 'Item Data
  523.     
  524.     Toolbar1.Buttons(6).ButtonMenus(2).Enabled = True
  525.     Toolbar1.Buttons(6).ButtonMenus(3).Enabled = True
  526.     '
  527.     mnuEdit1.Enabled = True
  528.     mnuDel1.Enabled = True
  529. End Sub
  530.  
  531. Private Sub mnuAbout_Click()
  532.     MsgBox frmmain.Caption & "Ver 1.1" & vbCrLf & vbTab & "By Ben Jones" _
  533.     & vbCrLf & vbTab & vbTab & "Please vote if you like this code.", vbInformation, "About"
  534. End Sub
  535.  
  536. Private Sub mnuAdd1_Click()
  537.     'Add new Selection
  538.     mEditMode = INI_NEW_SELECTION
  539.     frmAdd.Show vbModal, frmmain
  540.     'Check if OK button was pressed
  541.     If (ButtonPress = vbOK) Then
  542.         Call mIni.AddSelection(mValName)
  543.     End If
  544.     'Update Treeview with new changes
  545.     Call LoadSelections
  546. End Sub
  547.  
  548. Private Sub mnuDel1_Click()
  549.     'Delete Item
  550.     If MsgBox("Are you sure you want to delete this item?", vbYesNo Or vbQuestion, "Delete Item") = vbYes Then
  551.         Call mIni.DeleteValue(mCurSelection, mValName)
  552.         Call LoadValues(mCurSelection)
  553.         Lst1.SetFocus
  554.         
  555.         Toolbar1.Buttons(6).ButtonMenus(2).Enabled = Lst1.ListItems.Count
  556.         Toolbar1.Buttons(6).ButtonMenus(3).Enabled = Lst1.ListItems.Count
  557.     End If
  558. End Sub
  559.  
  560. Private Sub mnuDel2_Click()
  561.     'Delete a selection and all it's keys
  562.     If MsgBox("Are you sure you want to delete this selection?", vbYesNo Or vbQuestion, "Delete Selection") = vbYes Then
  563.         Call mIni.DeleteSelection(mCurSelection)
  564.     End If
  565.     
  566.     Lst1.ListItems.Clear
  567.     'Update Treeview with new changes
  568.     Call LoadSelections
  569. End Sub
  570.  
  571. Private Sub mnuEdit1_Click()
  572.     'Edit Item
  573.     mEditMode = INI_EDIT_VALUE
  574.     'Show add form
  575.     frmAdd.Show vbModal, frmmain
  576.     'Check if OK button was pressed
  577.     If (ButtonPress = vbOK) Then
  578.         mIni.SetValue mCurSelection, mValName, mValData
  579.         Call LoadValues(mCurSelection, Lst1.SelectedItem.Index)
  580.         Lst1.SetFocus
  581.     End If
  582. End Sub
  583.  
  584. Private Sub mnuexit_Click()
  585.     Unload frmmain
  586. End Sub
  587.  
  588. Private Sub mnuExport_Click()
  589. Dim TmpFile As String
  590.  
  591.     'Export Selection
  592.     TmpFile = GetNameFromDLG(False, Filter2, "Export")
  593.     If Len(TmpFile) > 0 Then
  594.         Call ExportSelection(TmpFile, mCurSelection)
  595.     End If
  596. End Sub
  597.  
  598. Private Sub mnuNew_Click()
  599.     With mIni
  600.         .Filename = GetNameFromDLG(False, Filter1, "New")
  601.     
  602.         If Len(mIni.Filename) > 0 Then
  603.             Call .CreateIni
  604.             'Add default selection
  605.             Call .SetValue("Selection", "Default", "Test_Value")
  606.             'Open the ini file.
  607.             Call LoadSelections
  608.         End If
  609.     End With
  610.     
  611. End Sub
  612.  
  613. Private Sub mnuNewi_Click()
  614.     mEditMode = INI_NEW_VALUE
  615.     frmAdd.Show vbModal, frmmain
  616.     'Check if OK button was pressed
  617.     If (ButtonPress = vbOK) Then
  618.         mIni.SetValue mCurSelection, mValName, mValData
  619.         Call LoadValues(mCurSelection)
  620.         Lst1.SetFocus
  621.     End If
  622. End Sub
  623.  
  624. Private Sub mnuOpen_Click()
  625.     mIni.Filename = GetNameFromDLG(True, Filter1)
  626.     If Len(mIni.Filename) > 0 Then Call LoadSelections
  627. End Sub
  628.  
  629. Private Sub mnuRename_Click()
  630.     'Rename Selection
  631.     mEditMode = INI_RENAME_SELECTION
  632.     frmAdd.Show vbModal, frmmain
  633.     'Check if OK button was pressed
  634.     If (ButtonPress = vbOK) Then
  635.         Call mIni.RenameSelection(mCurSelection, mValName)
  636.     End If
  637.     'Update Treeview with new changes
  638.     Call LoadSelections
  639. End Sub
  640.  
  641. Private Sub mnuSave_Click()
  642. Dim TmpFile As String
  643.     TmpFile = GetNameFromDLG(False, Filter2, "ExportXML")
  644.     
  645.     If Len(TmpFile) > 0 Then
  646.         Call ExportXML(TmpFile)
  647.     End If
  648.     
  649. End Sub
  650.  
  651. Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
  652.     Select Case Button.Key
  653.         Case "OPEN"
  654.             Call mnuOpen_Click
  655.         Case "SAVE"
  656.             Call mnuSave_Click
  657.         Case "NEW"
  658.             Call mnuNew_Click
  659.     End Select
  660. End Sub
  661.  
  662. Private Sub Toolbar1_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu)
  663.     Select Case ButtonMenu.Key
  664.         Case "SelAdd"
  665.             Call mnuAdd1_Click
  666.         Case "SelDel"
  667.             Call mnuDel2_Click
  668.         Case "SelRename"
  669.             Call mnuRename_Click
  670.         Case "SelExport"
  671.             Call mnuExport_Click
  672.         Case "iNew"
  673.             Call mnuNewi_Click
  674.         Case "iEdit"
  675.             Call mnuEdit1_Click
  676.         Case "iDel"
  677.             Call mnuDel1_Click
  678.     End Select
  679.     
  680.     'Update Button status
  681.     ButtonPress = vbCancel
  682. End Sub
  683.  
  684. Private Sub Tv1_Click()
  685. On Error Resume Next
  686. Dim mKey As String
  687.     
  688.     If (Tv1.Nodes.Count = 0) Then
  689.         Exit Sub
  690.     End If
  691.     
  692.     'Treeview Node key
  693.     mKey = Tv1.SelectedItem.Key
  694.     'Treeview selected Node Text
  695.     mCurSelection = Tv1.SelectedItem.Text
  696.     
  697.     Toolbar1.Buttons(5).ButtonMenus(2).Enabled = (mKey <> "TOP")
  698.     Toolbar1.Buttons(5).ButtonMenus(3).Enabled = (mKey <> "TOP")
  699.     Toolbar1.Buttons(5).ButtonMenus(4).Enabled = (mKey <> "TOP")
  700.     Toolbar1.Buttons(6).ButtonMenus(1).Enabled = (mKey <> "TOP")
  701.     mnuNewi.Enabled = (mKey <> "TOP")
  702.     mnuDel2.Enabled = mnuNewi.Enabled
  703.     mnuRename.Enabled = mnuNewi.Enabled
  704.     mnuExport.Enabled = mnuNewi.Enabled
  705.     
  706.     Toolbar1.Buttons(6).ButtonMenus(2).Enabled = False
  707.     Toolbar1.Buttons(6).ButtonMenus(3).Enabled = False
  708.     mnuEdit1.Enabled = False
  709.     mnuDel1.Enabled = False
  710.     
  711.     If (Tv1.SelectedItem.Key = "TOP") Then
  712.         Exit Sub
  713.     Else
  714.         Call LoadValues(Tv1.SelectedItem.Text, 0)
  715.     End If
  716.     
  717. End Sub
  718.  
  719.