Advanced Categorize toolbar

Any ideas about how to improve MediaMonkey? Let us know!

Moderator: Gurus

Advanced Categorize toolbar

Postby JonasFermefors » Tue Jul 15, 2008 4:44 am

Request for official wishlist entry.

The categorize toolbar is a very useful MM feature that could be made a lot more powerful with some simple modifictions.
Currently it holds classification for Rating, Tempo, Mood, Occasion & Quality.

Suggested New classes
There are several classifications I would like to see:
Genre - Quick access to genre settings.
Artist/View Album - Change album to one listed in the current view.
Artist/View Date - Change date to one listed in the current view.
Custom Fields - Set a custom field (a size limit may need to be implemented for this - to avoid problems :wink: )

Menu Options
An option for the toolbar to set which icons to use and to enable multi-value menues for applicable classes (e.g. Genre/Occasion/Mood) - see next section.

Multiple entries.
By adding a checkbox to fields that have multiple entries it would be easy to set several entries i.e. a multi-value drop down menu shows a check box to the left of each entry allowing several to be checked.
The view would still display entries with a ";" separator as it does today.
JonasFermefors
 
Posts: 4
Joined: Wed Feb 06, 2008 5:59 pm

Re: Advanced Categorize toolbar

Postby mutronbiphase » Thu May 31, 2012 12:10 am

I made this script to give you one-click access to multiple moods.
It only works for the currently PLAYING song.
You need to save it in the Auto scripts section as a .vbs file, and reload media monkey. It will create a dockable panel. If you close the panel you can reopen it by going to the View menu, go to the bottom, and it's "Mood Setting Panel"

When you click one of the mood checkboxes, it adds that to the mood for the song if it's not already on there. It also adds the semicolons for multiple moods.

By editing the below code in the places I marked out, you can change the position and number of the checkboxes as well as the genres you want them to set.

It should be easy enough to modify the code to make another panel that lets you do the same thing with Occasions or any other text field.

I hardly know VBScript or Mediamonkey programming so any requests on this I will not be able to do, someone with more time and inclination can pick that up for you!
Enjoy

I would like to thank Mediamonkey's dev team for making such an awesome product that allows you to do so much on its own, and then expand it using code. Beats Itunes easy.


Code: Select all

 
 
Dim Mnu, Pnl, Lbl, Lbl2
 
Sub OnStartup
  Set UI = SDB.UI
 
  Set Pnl = UI.NewDockablePersistentPanel("TestingPanel")
  if Pnl.IsNew then
    Pnl.DockedTo = 2
    Pnl.Common.Width = 250
  end if
  Pnl.Caption = "Mood Setting Panel"
  Script.RegisterEvent Pnl, "OnClose", "PnlClose"
 
  Set Lbl = UI.NewLabel(Pnl)
  Lbl.Autosize = false
  Lbl.Multiline = true
  Lbl.Common.SetRect 10, 10, Pnl.Common.Width-20, Pnl.Common.Height-20
  Lbl.Common.Anchors = 15  '1+2+4+8

'don't change anything above this line


' USE THIS PART TO EDIT CHECK BOXES GENRE and position
'Change Checkbox Captions to Genres you want
'Use "SetRect" to change position of each checkbox
'Copy paste 6 lines of checkbox code to add a new checkbox
'All clicks to checkboxes are handled by the 1 event handler at the bottom
'which looks at the caption of the control that calls it



 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
ChB.Common.SetRect 3, 0, 100, 20
'left, top, width, height
  ChB.Caption = "Epic"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 0, 100, 20
  ChB.Caption = "Determined"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 20, 100, 20
  ChB.Caption = "Sad"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 20, 100, 20
  ChB.Caption = "Happy"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 40, 100, 20
  ChB.Caption = "Ethereal"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 40, 100, 20
  ChB.Caption = "Peaceful"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 60, 100, 20
  ChB.Caption = "Goofy"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 60, 100, 20
  ChB.Caption = "Scary"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 80, 100, 20
  ChB.Caption = "Angry"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 80, 100, 20
  ChB.Caption = "Romantic"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"

 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 100, 100, 20
  ChB.Caption = "Adventurous"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 100, 100, 20
  ChB.Caption = "Popular"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set Chb = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 3, 120, 100, 20
  ChB.Caption = "Cool"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"


 Set ChB = UI.NewCheckBox( Pnl)
  ChB.Common.ControlName = "ChB"
 ChB.Common.SetRect 123, 120, 100, 20
  ChB.Caption = "Fun"
  Script.RegisterEvent ChB.Common, "OnClick", "ChBClick"







''don't change anything below this line

 
  ' Add menu item that shows panel after it is closed
  Set Sep = SDB.UI.AddMenuItemSep(SDB.UI.Menu_View,0,0)
  Set Mnu = SDB.UI.AddMenuItem(SDB.UI.Menu_View,0,0)
  Mnu.Caption = "Mood Setting Panel"
  Mnu.Checked = Pnl.Common.Visible
  Script.RegisterEvent Mnu, "OnClick", "ShowPanel"
 
  Script.RegisterEvent SDB, "OnChangedSelection", "OnSelection"
End Sub
 
Sub ShowPanel(Item)
  Pnl.Common.Visible = not Pnl.Common.Visible
  Mnu.Checked = Pnl.Common.Visible
End Sub
 
Sub PnlClose( Item)
  Mnu.Checked = false
End Sub
 
Sub OnSelection
 
End Sub


Sub ChBClick( ChB)



Dim objSongList   , objSongData
 Set objSongList = SDB.NewSongList   

 Set objSongData = SDB.Player.CurrentSong
 objSongList.Add(objSongData)   

Dim StringMood, StringNewMood, StringAddMood
 StringMood = objSongData.Mood

StringAddMood =  ";" & ChB.Caption


If InStr(StringMood,ChB.Caption) = 0 Then
'Old Mood does not contain the one you checked.
StringNewMood = StringMood & StringAddMood

objSongData.Mood = StringNewMood
objSonglist.UpdateAll           

End If '   If Old Mood contains New Mood, no action is taken.
ChB.Checked = false
                       
End Sub





mutronbiphase
 
Posts: 1
Joined: Thu May 31, 2012 12:02 am


Return to Wishlist (mmw)

Who is online

Users browsing this forum: No registered users and 10 guests