ISDBUI::AddPropertiesSheet

From MediaMonkey Wiki
Revision as of 21:15, 20 April 2013 by Michal.kocarek (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

CoClass SDBUI, Interface ISDBUI

Function AddPropertiesSheet(SheetLabel As String, ScriptFile As String, InitProcedure As String, TrackChangeProcedure As String, SaveProcedure As String, Order As Integer) 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)
Order Integer Order (Page index) of the newly added sheet. If the value is out of range (like -1) then the sheet is added as the last (rightmost).


Method description

Creates a new sheet that appears in Properties dialog.

Introduced in MediaMonkey version 4.0.


Example code

Option Explicit

Sub OnStartUp
	Dim i : i = SDB.UI.AddPropertiesSheet("Sample sheet", Script.ScriptPath, "InitSheet", "TrackChange", "SaveSheet", 2)
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