- on_focus callback was not always being triggered
- A new
IGdiBitmap
InvertColours
method has been added. - Minor sample fixes.
- Add
plman.GetPlaylistLockFilterMask
. It's recommended that you replace any usage ofplman.IsPlaylistLocked
with this as you can now determine the type of locks in place. - Add
plman.GetPlaylistLockName
. - Restore compatibility with
foo_popup_panels
when used from within default UI. This was broken inv2.3.4
. fb.CheckClipboardContents
andfb.GetClipboardContents
no longer require awindow_id
parameter. If supplied, it will be silently ignored.- Minor sample fixes.
- The size and position of the
Properties Window
is now remembered. In addition, the size and position of theConfiguration Window
is now shared as a global setting rather than per panel instance like it was previously. on_size
calls are now suppressed when the panel width or height is zero.- Improve behaviour of
Pseudo Transparent
mode to be like older versions. Some changes were made during the2.2.x
series that made panels not configured with thePanel Stack Splitter
Forced layout
option glitch more than they should. - The project is now MIT licensed.
- Add
utils.ReadUTF8
. It's preferable to use this when you know the file isUTF8
encoded... such as ones written byutils.WriteTextFile
. Continue to useutils.ReadTextFile
if the files areUCS2-LE
,ANSI
or unknown.
- Fix rare crash with
utils.ReadTextFile
.
- Add
IMetadbHandleList
OptimiseFileLayout
. Also takes an optionalminimise
argument. Withminimise
set tofalse
, provides the functionality ofUtilities>Optimize file layout
or ifminimise
istrue
thenUtilities>Optimize file layout + minimize file size
. Unlike the context menu versions, there is no prompt. - Properly fix
Return
/Tab
key usage in theFind
/Replace
dialog.
- Fix a nasty editor bug that caused the component to crash while typing. Versions
2.3.0
-2.3.0.2
were all affected so upgrading immediately is highly recommended!
Find
/Replace
dialog fixes.- Fix
Thumbs
sample so Last.fm artist art downloads work again. - Restore
Clear
button to theProperties
dialog.
- Make
utils.ColourPicker
rememberCustom colours
for the lifetime offoobar2000
being open.
- Drop support for
foobar2000
v1.3.x
. Now requiresv1.4
or later. - Add
utils.DateStringFromTimestamp
andutils.TimestampFromDateString
. - The
Properties
dialog has been rewritten and there is no longer anyClear
orDelete
buttons. Now you can multi-select using your mouse and combinations ofCtrl
/Shift
keys. There is a right click menu toSelect All
/Select None
/Invert selection
andRemove
.Ctrl+A
and theDelete
keyboard shortcuts are also supported. - The list view under
File>Preferences>Tools>JScript Panel
now supports inline editing from a single click on the value. You no longer double click items to open a new dialog. - The following methods no longer support the previously optional
force
parameter.
window.Repaint();
window.RepaintRect(x, y, w, h);
ITitleFormat Eval() // returns an empty string when not playing
- The following methods no longer support the previously optional
flags
parameter. All commands are ran if they exist. It no longer matters if they are hidden or not.
fb.RunContextCommand(command);
fb.RunContextCommandWithMetadb(command, handle_or_handle_list);
- These previously optional parameters have been removed:
IContextMenuManager BuildMenu "max_id"
IMainMenuManager BuildMenu "count"
utils.CheckComponent "is_dll"
utils.WriteTextFile "write_bom" (writing a BOM is no longer supported)
plman.PlayingPlaylist
is now a read-only property.- The
IPlaylistRecyclerManager
interface has been removed and replaced with fixedplman
methods. All previous functionality remains. Look at the docs forplman.RecyclerCount
. fb.GetLibraryRelativePath
has been removed. UseIMetadbHandleList
GetLibraryRelativePaths
instead.utils.FileTest
has been removed and replaced with the following 4 new methods. There is no replacement forsplit
mode.
utils.Chardet(filename)
utils.GetFileSize(filename)
utils.IsFile(filename)
utils.IsFolder(folder)
- The
Grab focus
checkbox in the Configuration Window and thedragdrop
PREPROCESSOR
have both been removed. Both features are disabled by default but are automatically enabled if relevant callbacks likeon_drag_drop
oron_key_up
are present in the script.
- Fix bug introduced in
v2.2.2.1
which prevented images loaded withgdi.Image
/gdi.LoadImageAsync
being deleted/overwritten afterDispose()
had been called.
- Fix
IMetadbHandleList
MakeDifference
method.
- Fix broken descriptions for main menu items in the keyboard shortcut preferences. Thanks to TheQwertiest for spotting and providing the fix.
- Remove optional
force
argument fromfb.GetFocusItem
as it had no effect. No errors will be thrown if present but it will be ignored. - Various sample fixes. Volume now scales at the same rate as the
Default UI
volume slider. Thumbs has been fixed to work with Last.fm site update. - Compiled with latest
foobar2000
SDK
.
- Fix broken colour handling in
IGdiBitmap
GetColourSchemeJSON
. The original code by MordredKLB was good but I broke it so apologies for that. IGdiBitmap
GetColourScheme
has been removed. See this page for how to use the betterJSON
method mentioned above.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
- Restore access to the Configuration Window via the
Columns UI
Preferences layout tab. Although buggy, access needs to remain to recover from installing bad scripts. - Fix various sample problems reported on the
foobar2000
forums such as main menuEdit
items not always being available and someJS-Smooth
overflow
errors.
- Revert all timer related changes made in
v2.2.0.2
-v2.2.0.3
. Although tested and working fine on my main machine, it caused crashes onWindows XP
andfoobar2000
not to exit properly when running inside aWindows 7
virtual machine. Apologies for any inconvenience!
- Fix potential freeze on shutdown caused by timer threads. Thanks to TheQwertiest.
- Access to the Configuration Window via the
Layout
tab in theColumns UI
Preferences has been blocked. TheConfigure Panel...
button will now be grayed out. Always use the context menu on the panel itself. - Some minor sample bugs have been fixed.
- Revert some changes made in
v2.2.0
which may have broken various scripts that made use ofplman
(Playlist Manager) methods/properties. It would typically be noticeable if you had no playlists on startup or removed all playlists.
- Fix issue introduced in
v2.2.0
where some colours with certain levels of alpha transparency were not handled properly.
- Remove
window.DlgCode
. The docs were wrong, behaviour was inconsistent betweenDefault UI
andColumns UI
and it's just not needed. Support for all keys will be enabled if you checkGrab focus
in the Configuration Window. All instances will need removing from scripts. If you want to support this and older components with the same script, do something like:
if ('DlgCode' in window) { window.DlgCode = 4; }
fb.RunMainMenuCommand
,fb.RunContextCommand
,fb.RunContextCommandWithMetadb
have all been rewritten and must be supplied with the full path to their commands. Case is not important. You should use forward slashes with no spaces. eg:fb.RunMainMenuCommand("Library/Search")
.- All files imported to the Configuration Window, Preferences>Tools or included in a script via the
import
PREPROCESSOR
directive must beUTF8
encoded (with or withoutBOM
).utils.ReadTextFile
is unaffected although it should have betterUTF8
detection than before. - The default
write_bom
argument forutils.WriteTextFile
when omitted is nowfalse
. - The code that parses the
PREPROCESSOR
section has been rewritten from scratch. The only difference is that double quotes in the name/author no longer need to be escaped so they will be duplicated if you did this previously. window.GetColourCUI
andwindow.GetFontCUI
no longer accept the previously optionalclient_guid
argument.- Add menu toolbar to Configuration Window which provides quick access to all included samples and docs. You can now Import/Export scripts via the
File
menu. TheReset
option now properly resets all settings. - The preset colour schemes previously bundled inside the
Colour Schemes
folder can now be loaded directly from the main preferences underTools>JScript Panel
. - Add
utils.ListFiles
andutils.ListFolders
. - Update
fb.CreateHandleList
to take an optional handle argument to create a list containing a single item. - Add
IMetadbHandle
GetAlbumArt
method which returns the image and path without the need for usingutils.GetAlbumArtAsync
andon_get_album_art_done
. utils.FileTest
can now query files over 4GB in size when ins
mode.- Various sample fixes.
- Lots of internal code refactoring and external dependency updates.
- If you browse the component folder and notice the
jscript.api
andinterface.api
files are missing, it's intentional. The contents are now included inside the component.
- Add
IMetadbHandleList
RemoveAttachedImages
method. - There are no longer any limitations managing attached images. Working with the playing file is now supported. Thanks to Peter for the new
SDK
release and the help I needed!
- Fix various sample bugs.
- Compile component with latest
foobar2000
SDK
.
- Images loaded by
gdi.LoadImageAsync
are no longer locked by the process. - Correctly bump
utils.Version
- it wasn't updated inv2.1.7
.
- Add
IMetadbHandleList
AttachImage
/RemoveAttachedImage
methods. There are some limitations!!
- Add
IContextMenuManager
InitContextPlaylist
method which shows playlist specific options not available when passing a handle list toInitContext
. - Update
JSPlaylist
andJS Smooth Playlist
samples with the above method.
utils.InputBox
is now centred when you open it plus you can now detect when the user pressesCancel
.- Fix bug with
Autoplaylists
sample which prevent existing queries from being edited. gr.GdiDrawText
no longer has any return value.
- Fix incorrect spelling on the
Cancel
button inutils.InputBox
.
- Add
utils.InputBox
method. - Update samples in
complete
folder with above method - input is no longer truncated at 254 characters. - Remove
fromhook
argument fromon_metadb_changed
callback. From now on, it will always beundefined
. - Ensure
JSPlaylist
doesn't load the same font more than once. Previously it was usinggdi.Font
insideon_paint
which is bad practice.
- Add
on_dsp_preset_changed
callback. - Add
fb.GetDSPPresets
andfb.SetDSPPreset
methods. - Add
IMetadbHandleList
GetLibraryRelativePaths
method. - Add
IMetadbHandleList
Convert
method which converts a handle list to an array of handles.
- Add
fb.GetOutputDevices
andfb.SetOutputDevice
methods. - Add
on_output_device_changed
callback. JSPlaylist
/JS Smooth Browser/Playlist
, make right click behaviour consistent with other playlist/library viewers. HoldingShift
should now show hidden context menu items.- Playback now restarts when changing replaygain mode with
fb.ReplaygainMode
.
foobar2000
v1.3.x
is now supported.v1.3.x
users must make sure they have theVisual C++ 2017
redist installed: https://aka.ms/vs/15/release/vc_redist.x86.exe
- A new
IGdiBitmap
GetColourSchemeJSON
method has been added. Thanks to MordredKLB for the contribution. - Fix script error when dragging items on to
JSPlaylist
/JS Smooth Playlist
with no active playlist.
- Fix crash when supplying
plman.IsAutoPlaylist
/plman.IsPlaylistLocked
with an invalidplaylistIndex
.
- Add
plman.RemovePlaylistSwitch
method. Unlikeplman.RemovePlaylist
, this automatically sets another playlist as active if removing the active playlist. - Update
JS Smooth Playlist Manager
andJSPlaylist
to make use of the above method which should fix some previous buggy behaviour whem removing playlists.
- Requires
foobar2000
v1.4
Beta 8
or later. - The drag/drop functionality has been completely rewritten by TheQwertiest. This will break all existing scripts which allow dragging in files from external sources. The ability to drag handle lists from
JScript Panel
to other panels has been added. The included playlist samples have been updated so they're compatible but they do not make use of the new functionality. - Add
on_replaygain_mode_changed
callback. - The behaviour of
plman.AddLocations
with theselect
argument set totrue
has been slightly modified.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Drag-and-Drop.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
- Add
fb.CopyHandleListToClipboard
method. Contents can then be pasted in other components or as files inWindows Explorer
. - Add
fb.CheckClipboardContents
/fb.GetClipboardContents
. Contents can be handles copied to the clipboard in other components or a file selection fromWindows Explorer
. JSPlaylist
has been updated for full clipboard functionality with updated context menu items and keyboard shortcut support (CTRL+C
,CTRL+X
andCTRL+V
).
- Add
ITitleFormat
EvalWithMetadbs
method that takes a handle list as an argument. Returns a VBArray. - Add
plman.SortPlaylistsByName
. - The
IMetadbHandleList
OrderByRelativePath
method now takes subsong index in to account. Thanks to WilB for reporting. plman.GetPlaybackQueueContents
has been restored after being removed in thev2
cleanse. It's the only way to determine if a single playlist item has been queued more than once. Note that eachIPlaybackQueueItem
is read-only.- The
Properties
dialog size and layout have been tweaked.
- New
plman.FindPlaylist
andplman.FindOrCreatePlaylist
methods have been addded. on_library_items_added
,on_library_items_changed
,on_library_items_removed
now return a handle list of affected items.- Various doc tidy up/fixes. Some
plman
methods have been updated to return-1
on failure.
utils.WriteTextFile
now takes an optionalwrite_bom
argument. It defaults totrue
if omitted. Iffalse
, then the resulting file should beUTF8
withoutBOM
.- Tidy up docs and
IMenuObj
interface. See the Breaking Changes page for details.
- Fix random component crash caused by
utils.WriteTextFile
. - Fix
JS-Smooth
script image caching feature choking on some images. The breakage was introduced by me inv2.0.1.2
as I attempted to update some old code. Thanks to always.beta for reporting.
- As part of the
v2
update, I accidentally broke the ability to drag tracks withinJSPlaylist
. This has now been fixed.
- Add usage notes to
Rating
andLast.fm Lover
samples.Rating
can now tag files or use theJScript Panel
Playback Stats
database in addition to usingfoo_playcount
like it did before. - A
Queue Viewer
script has been added to thesamples\complete
folder. It has a couple of basic options on the right click menu.
- Add
Last.fm Lover
sample. Imports all loved tracks from Last.fm in to the newJScript Panel
Playback Stats
database. All loved tracks will have the value of%JSP_LOVED%
set to1
which is available in all components/search. You can then love/unlove tracks by clicking the heart icon. Obviously this requires a Last.fm account. Use the right click menu to set your username and authorise the script. - The timer mechanism behind
window.SetInterval
andwindow.SetTimeout
has been completely rewritten by TheQwertiest. Previously, it was limited to 16 instances and then it would fail causing random buggy behaviour in some advanced scripts. - Fix
ListenBrainz
not clearing its cache after a successful submission. Thanks to zeremy for reporting. - Fix
Thumbs
sample not deleting images.
- Requires
foobar2000
v1.4
. It will not load with anything earlier. fb.Trace
has been removed and replaced with a nativeconsole.log
method. It takes multiple arguments as before.- All callbacks/methods with
Color
in the name have been renamed withColour
. This will break most scripts!
on_colors_changed -> on_colours_changed
utils.ColorPicker -> utils.ColourPicker
utils.GetSysColor -> utils.GetSysColour
window.GetColorCUI -> window.GetColourCUI
window.GetColorDUI -> window.GetColourDUI
IGdiBitmap GetColorScheme -> GetColourScheme
- The
IPlaybackQueueItem
interface andplman.CreatePlaybackQueueItem
method have been removed. plman.GetPlaybackQueueContents
has been replaced withplman.GetPlaybackQueueHandles
which returns a handle list. You can check theCount
property so there is no longer any need forplman.GetPlaybackQueueCount
andplman.IsPlaybackQueueActive
which have been removed.on_refresh_background_done
andwindow.GetBackgroundImage
have both been removed.- The
IGdiBitmap
BoxBlur
method has been removed. UseStackBlur
instead. IContextMenuManager
InitContext
only accepts a handle list as an argument.- Anyone who has a
js_settings
folder in theirfoobar2000
profile folder from using my previous samples should move the contents in to thejs_data
folder. Typically, this would beautoplaylists.json
,thumbs.ini
,listenbrainz.ini
. - Enable
Windows XP
support. Also, support forWindows Vista
,Windows 7
andWINE
withIE7
/IE8
has been restored.ES5
features are still supported for those withIE9
or later. If your scripts crash after upgrading and making the changes outlined above, make sure to check theScript Engine
setting in the Configuration Window. - Add
utils.WriteTextFile
. Always creates aUTF8-BOM
file. - Add
window.Name
property. - Add a custom
Playback Stats
backend andhandle
methods for writing values.
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Breaking-Changes.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Configuration-Window.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/WINE.html
https://kbuffington.github.io/foo_jscript_panel/foo_jscript_panel/Playback-Stats.html
https://github.com/marc2k3/foo_jscript_panel/tree/master/foo_jscript_panel/samples
- Component now reports version on script error.
JSPlaylist
andJS Smooth Playlist
have been unable to tag files sincev1.3.0
whenfoo_playcount
was missing.
- Add
fb.AlwaysOnTop
property. Can be used to read or write the setting. A newon_always_on_top_changed
callback has been added to detect when it changes via any other means such as using the menu, keyboard shortcuts, etc.
- Improved handling of
UTF8
files withoutBOM
. This affects files loaded via thePREPROCESSOR
section and theConfiguration Window>Tools>Import
button. They should now be treated the same as files withBOM
.
- Fixed a bug where
plman.IsPlaylistItemSelected
didn't return a properboolean
value. Thanks to TheQwertiest for reporting. - Fixed a bug where
plman.ShowAutoPlaylistUI
didn't always return the correctboolean
value. plman.MovePlaylistSelection
now returns aboolean
value to indicate success or failure.- Update docs for consistency with actual component behaviour. Some methods which returned useless values have been updated to return nothing.
- On failure, these now return
-1
.
IFileInfo InfoFind
IFileInfo MetaFind
IMetadbHandleList BSearch
IMetadbHandleList Find
plman.ActivePlaylist
plman.CreateAutoPlaylist
plman.PlayingPlaylist
- Remove the whole
IStyleTextRender
interface. Anything that usesgdi.CreateStyleTextRender
or was based onglow text sample.txt
will no longer work - Remove these
IPlaylistRecyclerManager
properties/methods:
Id
FindById
RestoreById
- Support for
IE7
,IE8
andWINE
users has been dropped. Your computer must haveIE9
or later installed. - The
UpdateFileInfoSimple
handle and handle list methods are now gone. - A new
UpdateFileInfoFromJSON
method has been added. If anyone needs help with this, just ask. - Add
fb.CreateHandleList
method for creating empty handle lists.
- Add
utils.ColorPicker
which is a popup dialog for selecting colours. - Fix various bugs in
samples\complete
folder. ListenBrainz
sample now has an on/off toggle on the menu.
- Fix typo in
MusicBrainz
sample. Thanks to zeremy for spotting. ListenBrainz
now has caching/retry support. It's my first attempt at this so please report any issues! I also need reports of any code 400 errors from the server as the script will need updating before these tracks can be submitted successfully.- Br3tt's
JS Smooth
scripts are now bundled with the component and the separate repository has been nuked.
ListenBrainz
sample - fixmusicbrainz track id
not being submitted fromm4a
files.
- Add
Last.fm Bio
,Allmusic
andListenBrainz
samples.Thumbs
can download images from Last.fm again but only manually. - Most samples are now DPI aware so text/tooltips should increase inline with other desktop elements. For existing users, each panel script should be re-imported from the
samples\complete
folder.
- Add
fb.ReplaygainMode
. Can be used to retrieve or set the value. - Hide
JScript Panel
main menu items. Given they're meant for binding to to keyboard shortcuts/standard buttons, there is no need for them to be visible. HoldShift
if you really want to access them from the menu. - Fix
IMetadbHandleList
MakeUnion
method and update docs with examples forMakeUnion
,MakeDifference
andMakeIntersection
methods.
- Add new
on_main_menu
callback. 10 main menu items have been created meaning you can now bind them to global keyboard shortcuts, standard toolbar buttons, etc and have them run your own custom code.
- Fix bug where the playing item handle was never sent to the
on_playback_edited
callback even though the docs said it would. - Tidy up docs and auto-complete hints for
on_metadb_changed
andon_selection_changed
.
- Minor code cleanups but no new component features for now.
- Add
Last.fm Similar Artists / Charts
andMusicBrainz
samples.
- If your computer has
IE9
or later installed, newerECMAScript5
features are now available. Many thanks to TheQwertiest for discovering how to do this. - The
Script engine
option has been removed from the Configuration Window. The newerChakra
engine is always used if available but will fall back toJScript
if not. - Add
utils.Version
which reports the component version. - Minor tweaks to Configuration Window.
- Update
JSPlaylist
so it works withChakra
engine. Thanks to zeremy for reporting - A previous
window.RepaintRect
bug reported by Wilb has now been fixed. - Zap a few more compiler warnings.
- Remove trailing space in
Console
when usingfb.Trace
. Text Reader
sample fix. EnsureOpen containing folder
works when specifiying a folder rather than a full path to a file.Thumbs
sample fix. Addresses an issue where using%profile%
in theCustom folder
setting would fail if the profile path contained special title formatting characters like%()[]'
.- Remove
Delay load
from Configuration Window.
- Fix bug with
plman.AddLocations
where the original order of the suppliedarray
wasn't maintained. Also, the progress dialog should be hidden for short operations.
- Minor changes to
Console
logging on startup. - The
complete
samples folder has 2 new scripts:Thumbs
andText reader
.Thumbs
allows the display/cycling of multiple images in a given folder.Text reader
displays the contents of any plain text file. Title formatting can be used to specify the folder/file paths.
- Add
IGdiBitmap
StackBlur
method. - Update
ApplyMask
sample.
- Add
Open component folder
to default right click menu. This provides quick access to the docs and samples.
plman.IsPlaylistLocked(playlistIndex)
.on_playlists_changed
is now called when a playlist's lock status changes through the use of components such asfoo_utils
orfoo_playlist_attributes
.- Existing samples moved in to new
basic
subfolder. - Add new
complete
samples folder containing some more feature complete samples. - Add updated
JSPlaylist
forJScript Panel
.
- Prevent old tooltips lingering after script error.
- Fix bug where keyboard shortcuts from the main
Preferences
were never processed inColumns UI
whenJScript Panel
had focus.
- Add
IGdiBitmap
SaveAs
method.
- Fix
on_mouse_wheel
not being called with certain trackpads.
- New
on_mouse_wheel_h
callback for left/right scrolling.
GetQueryItems
should be afb
method, notplman
.- Fix crash when using
GetQueryItems
with dates as part of the query. - Update
Columns UI
SDK
.
- Add
fb.GetLibraryRelativePath(handle)
.
- Add
IMetadbHandleList UpdateFileInfoSimple
method.
- Update
Columns UI
SDK
. - Tidy up docs/samples.
- Add
utils.MapString(text, lcid, flags)
.
- Revert previous
Columns UI
SDK
update.
- Update
Columns UI
SDK
. - Hopefully removed all traces of
WSH Panel Mod
from sources and documentation!
- Update default script so you know a blank panel is
JScript Panel
as opposed toWSH Panel Mod
.
- Given the name, it obviously doesn't support
VBScript
. - Due to using updated library files, support for
Windows XP
has been dropped. - Compiled with new
foobar2000
SDK
. Requiresfoobar2000
v1.3
or above. - Remove functions marked as obsolete 3+ years ago. Obviously there are replacements that been around even longer.
window.WatchMetadb
window.UnWatchMetadb
window.CreateTimerTimeout
window.CreateTimerInterval
window.KillTimer
UpdateFileInfo
- Remove all these
fb
methods becauseplman
(Playlist Manager) methods also exist.
fb.CreatePlaylist
fb.RemovePlaylist
fb.RenamePlaylist
fb.DuplicatePlaylist
fb.MovePlaylist
fb.ActivePlaylist
fb.PlayingPlaylist
fb.PlaylistCount
fb.PlaylistItemCount
fb.GetPlaylistName
fb.PlaybackOrder
- Even though
plman
alternatives of thesefb
methods did not exist, I've removed them for consistency.
fb.CreateAutoPlaylist
fb.IsAutoPlaylist
fb.ShowAutoPlaylistUI
- Because of the above change,
plman.CreateAutoPlaylist
,plman.IsAutoPlaylist
andplman.ShowAutoPlaylistUI
have been created to replace them. plman.GetPlaylistFocusItemHandle
has been removed because it's identical tofb.GetFocusItem
which is more commonly used.utils.GetAlbumArt
removed as the corresponding function has been removed from thefoobar2000
SDK
.utils.GetAlbumArtAsync
,utils.GetAlbumArtEmbedded
andutils.GetAlbumArtV2
are still present.AppendMenuItem
no longer acceptsMF_POPUP
as a flag. UseAppendTo
instead.- Remove
on_tooltip_custom_paint
callback.window.CreateTooltip
has been updated to accept custom font paramters. Properties
dialog has a larger default size.Safe mode
is no longer an option.- Tidy up samples.
- Tidy up
PREPROCESSOR
handling. You no longer have to specify these when using theon_metadb_changed
callback.
// @feature "v1.4"
// @feature "watch-metadb"
- Due to the above change,
on_metadb_changed
will only receive ahandle list
and never ahandle
as the first argument. Also,on_selection_changed
won't receive ahandle
argument. - Add
fb.GetLibraryItems()
method. Returns a handle list of all items in library. - Add
fb.IsLibraryEnabled()
. - Add
fb.ShowLibrarySearchUI(query)
opens theLibrary>Search
window populated with the query you set. - Add
on_library_items_added
callback. - Add
on_library_items_removed
callback. - Add
on_library_items_changed
callback. - Add
plman.AddLocations(playlistIndex, paths[, select])
. - Add
plman.ClearPlaylist(playlistIndex)
. Use to clear a specified playlist.fb.ClearPlaylist
still exists because it is just a shortcut to theEdit
menu command which clears the active playlist. - Add
plman.GetQueryItems(source_handlelist, query)
returns an unsorted handle list. Consider usingOrderByFormat
, etc on the result. - Add
plman.UndoBackup(playlistIndex)
. If you call this before adding/removing/reordering playlist items, you will be able to use the undo/redo commands on theEdit
menu. - Add
CalcTotalDuration()
handle list method. returns the total in seconds. - Add
CalcTotalSize()
handle list method. returns the total in bytes. - Add
utils.FormatDuration(seconds)
. Returns astring
like3wk 2d 1:30:21
. - Add
utils.FormatFileSize(bytes)
. Returns astring
like7.9 GB
. window.CreateToolTip
now takes optional fontname
,font size (px)
andstyle
arguments. egwindow.CreateToolTip("Segoe UI", 32, 1)
. Defaults ofSegoe UI
,12
and0
are used if omitted.- Default right click menu now has a
Reload
script option. This saves opening/closing the dialog when working on external files. In addition, a newwindow.Reload
method has been added so you can force a panel reload with your own menus, buttons, etc. - Script errors are now displayed in a popup window in addition to the
Console
like it was previously. EstimateLineWrap
no longer leaves stray punctuation when wrapping text at end of line.IMetadbHandle
FileSize
now works withJScript
engine. Previously, it only worked withJScript9
.