ISDBUI::AddPropertiesSheet

From MediaMonkey Wiki
Revision as of 12:56, 20 January 2010 by Ludek (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

CoClass SDBUI, Interface ISDBUI

Function AddPropertiesSheet(SheetLabel As String, ScriptFile As String, InitProcedure As String, TrackChangeProcedure As String, SaveProcedure As String) As Long


Parameters

Name Type Description
SheetLabel String A label that appears in the tab list of properties sheets (sheet name).
ScriptFile String A script file that contains event functions (InitProcedure, TrackChangeProcedure and SaveProcedure).
InitProcedure String A function from ScriptFile that is called when Properties dialog is created. There is one parameter present - a reference to the sheet (SDBUITranspPanel object)
TrackChangeProcedure String A function from ScriptFile that is called when track(s) are changed. Track(s) for those the properties are shown. There are two parameters presented - a reference to the tracks object (SDBSongData or SDBSongList object), object type identifier (0 - Object is SDBSongData, 1 - Object is SDBSongList)
SaveProcedure String A function from ScriptFile that is called when edited tracks(s) are to be saved (closed by OK button). There are three parameters presented - a reference to the sheet (SDBUITranspPanel object), a reference to the tracks object (SDBSongData or SDBSongList), object type identifier (0 - Object is SDBSongData, 1 - Object is SDBSongList)


Method description

Creates a new sheet that appears in Properties dialog.

MediaMonkey 4.0

Example code

Option Explicit

Sub OnStartUp
	Dim i : i = SDB.UI.AddPropertiesSheet("Sample sheet", Script.ScriptPath, "InitSheet", "TrackChange", "SaveSheet")
End Sub

Sub InitSheet(Sheet)
	Dim UI : Set UI = SDB.UI
	Dim ini : Set ini = SDB.IniFile
	
	Dim a : Set a = UI.NewGroupBox(Sheet) : a.Caption = "Settings" : a.Common.SetRect 10, 10, 230, 210

  Dim ch
  Set ch = UI.NewCheckbox(a)
  ch.Common.SetRect 15, 20, 250, 20
  ch.Common.ControlName = "CheckBox1" 
  ch.Caption = "Update to ini file"
  ch.Checked = true
  
  Dim e
  Set e = UI.NewEdit(a)
  e.Common.SetRect 15, 50, 250, 50
  e.Common.ControlName = "EditBox1"
  e.Text = "Song Title"
  e.Common.Enabled = True
  
  SDB.Objects("EditBox1") = e

End Sub

Sub TrackChange( Object, ObjectType)
  Dim e: Set e = SDB.Objects("EditBox1")
  
  If ObjectType = 0 then ' it is just Song 
    e.Text = Object.Title
  End If
    
  If ObjectType = 1 then ' it is SongList
    e.Text = Object.Count & " songs selected"
  End If
  
End Sub

Sub SaveSheet(Sheet, Object, ObjectType)
	Dim ini : Set ini = SDB.IniFile

  If ObjectType = 0 then ' it is just Song 
    If Sheet.Common.ChildControl("CheckBox1").Checked then
      ini.StringValue("SampleScript", "Updated Song") = Object.Title
    End If   
  End If  
   
  If ObjectType = 1 then ' it is SongList   
    If Sheet.Common.ChildControl("CheckBox1").Checked then
      Dim i   
      For i = 0 to Object.Count-1
        ini.StringValue("SampleScript", "Updated Songs - Song " & i ) = Object.Item(i).Title
	    Next 
    End If     
  End If   
  
End Sub

Related Topics