vbAccelerator - Contents of code file: frmMultiColumn.frm

VERSION 5.00
Object = "{38167397-66B9-4B6F-ABB4-FD1040E7B79B}#1.0#0";
 "vbalColumnTreeView.ocx"
Begin VB.Form frmMultiColumn 
   Caption         =   "vbAccelerator Multi-Column TreeView"
   ClientHeight    =   5340
   ClientLeft      =   3300
   ClientTop       =   3165
   ClientWidth     =   6120
   BeginProperty Font 
      Name            =   "Tahoma"
      Size            =   8.25
      Charset         =   0
      Weight          =   400
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   Icon            =   "frmMultiColumn.frx":0000
   LinkTopic       =   "Form1"
   ScaleHeight     =   5340
   ScaleWidth      =   6120
   Begin VB.CheckBox chkGridLines 
      Caption         =   "&Grid Lines"
      Height          =   195
      Left            =   180
      TabIndex        =   1
      Top             =   120
      Value           =   1  'Checked
      Width           =   3735
   End
   Begin vbalCTreeViewLib.vbalColumnTreeView tvwColumns 
      Height          =   4695
      Left            =   180
      TabIndex        =   0
      Top             =   420
      Width           =   4875
      _ExtentX        =   8599
      _ExtentY        =   8281
      Style           =   3
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "Tahoma"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
   End
End
Attribute VB_Name = "frmMultiColumn"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private m_cIml As cVBALSysImageList

Private Enum EItemIconTypes
   eItemIconArtist = 247
   eItemIconAlbum = 41
   eItemIconTrack = 260
End Enum

Private Sub setUpColumns()
Dim cCol As cCTreeViewColumn
   With tvwColumns
      With .Columns
         .Item(1).Width = 128
         Set cCol = .Add("TRACK", "Track")
         Set cCol = .Add("LENGTH", "Length")
         Set cCol = .Add("SIZE", "Size")
      End With
   End With
End Sub

Private Function iconIndex(ByVal eType As EItemIconTypes)
Dim sFile As String
   sFile = App.Path
   If (Right(sFile, 1) <> "\") Then sFile = sFile & "\"
   sFile = sFile & eType & "/home/VB/Code/Controls/TreeView/Multi_Column_TreeView_Control/.ico"
   iconIndex = m_cIml.ItemIndex(sFile)
End Function

Private Function addArtist(ByVal sArtist As String) As cCTreeViewNode
   Set addArtist = tvwColumns.Nodes.Add(, , sArtist, sArtist,
    iconIndex(eItemIconArtist), iconIndex(eItemIconArtist))
End Function
Private Function addAlbum(cArtistNode As cCTreeViewNode, ByVal sAlbum As
 String) As cCTreeViewNode
   Set addAlbum = cArtistNode.AddChildNode(sAlbum, sAlbum,
    iconIndex(eItemIconAlbum), iconIndex(eItemIconAlbum))
End Function
Private Function addTracks(cAlbumNode As cCTreeViewNode, ParamArray vTracks()
 As Variant)
Dim nod As cCTreeViewNode
Dim i As Long
Dim min As Long
Dim sec As Long
Dim size As Long

   For i = LBound(vTracks) To UBound(vTracks)
      Set nod = cAlbumNode.AddChildNode(vTracks(i), vTracks(i),
       iconIndex(eItemIconTrack), iconIndex(eItemIconTrack))
      nod.SubItem(1).Text = i + 1
      min = Rnd * 5 + 1
      sec = Rnd * 60
      nod.SubItem(2).Text = Format(TimeSerial(0, min, sec), "nn:ss")
      size = 1024 * 1.4 * (min + sec / 60#)
      nod.SubItem(3).Text = Format(size, "#,##0 KB")
   Next i
   
End Function

Private Sub setUpData()
Dim nodArtist As cCTreeViewNode
Dim nodAlbum As cCTreeViewNode
   
   Set nodArtist = addArtist("Autechre")
   
   Set nodAlbum = addAlbum(nodArtist, "AE5")
   addTracks nodAlbum, _
      "acroyear2", "777", "rae", "maleve", "in", _
      "wrap5", "Under BOAC", "corc", "caliper remote", _
      "arch carrier", "drane2"
   nodAlbum.Expanded = True
   
   Set nodAlbum = addAlbum(nodArtist, "Amber")
   addTracks nodAlbum, _
      "Foil", "Montreal", "Silverside", "Slip", "Glitch", _
      "Piezo", "Nine", "Further", "Yulquen", "Nil", "TearTear"
   nodAlbum.Expanded = True
      
   Set nodAlbum = addAlbum(nodArtist, "Chiassic Slide")
   addTracks nodAlbum, _
      "cipater", "rettic ac", "trewe", "chicli", _
      "hub", "calsruc", "recury", "pule", "muane"
   nodAlbum.Expanded = True
      
   Set nodAlbum = addAlbum(nodArtist, "Confield")
   addTracks nodAlbum, _
      "VI scose pose", "cfern", "per expers", "sim gishel", _
      "parhelic triangle", "bine", "eidetic casein", "uviol", _
      "lentic catachresis"
   nodAlbum.Expanded = True
      
   Set nodAlbum = addAlbum(nodArtist, "Draft 7.30")
   addTracks nodAlbum, _
      "Xylin Room", "IV VV IV VV VII", "6ie.cr", "Tapr", _
      "Surripere", "Theme Of Sudden Roundabouts", _
      "VL AI 5", "P.-NTIL", "V-Proc", "Reniform Puls"
   nodAlbum.Expanded = True

   Set nodAlbum = addAlbum(nodArtist, "tri repetae")
   addTracks nodAlbum, _
      "dael", "clipper", "leterel", "rotar", "stud", _
      "eutow", "c-pach", "gnit", "overand", "rsdio"
   nodAlbum.Expanded = True
   
   nodArtist.Expanded = True
   
   Set nodArtist = addArtist("Plaid")
   Set nodAlbum = addAlbum(nodArtist, "Double Figure")
   addTracks nodAlbum, _
      "Eyen", "Squance", "Assault on Precinct Zero", _
      "Zamami", "Silversum", "Ooh Be Do", _
      "Light Rain", "Tak 1", "New Family", "Zala", _
      "Twin Home", "Tak 2", "Sincetta", "Tak 3", _
      "Porn Coconut Co", "Tak 4", "Ti Bom", "Tak 5", "ManyMe"
   nodAlbum.Expanded = True
   
   Set nodAlbum = addAlbum(nodArtist, "Spokes")
   addTracks nodAlbum, _
      "Even Spring", "Crumax Rias", "Upona", "Zeal", _
      "Cedar City", "B Bora Droid", "Marry", "Get What You Gave", _
      "Bunz", "Quick Emix"
   nodAlbum.Expanded = True
   
   Set nodAlbum = addAlbum(nodArtist, "Rest Proof Clockwork")
   addTracks nodAlbum, _
      "Shackblu", "Ralome", "Little People", "3 Recurring", _
      "Buddy", "Dead Sea", "Gel Lab", "Tearisci", "Dang Spots", _
      "Pino Pomo", "Last Remembered Thing", "Lambs Eye", _
      "New Bass Hippo", "Churn Maiden", "Air Locked"
   nodAlbum.Expanded = True
   
   nodArtist.Expanded = True
      
End Sub

Private Sub setUpImageList()
   Set m_cIml = New cVBALSysImageList
   m_cIml.IconSizeX = 16
   m_cIml.IconSizeY = 16
   m_cIml.Create
   tvwColumns.ImageList = m_cIml.hIml
End Sub

Private Sub chkGridLines_Click()
   tvwColumns.GridLines = (chkGridLines.Value = vbChecked)
End Sub

Private Sub Form_Load()
   setUpImageList
   setUpColumns
   setUpData
End Sub

Private Sub Form_Resize()
   tvwColumns.Move tvwColumns.left, tvwColumns.tOp, _
      Me.ScaleWidth - tvwColumns.left * 2, _
      Me.ScaleHeight - tvwColumns.tOp - tvwColumns.left
End Sub