Example: /Mac64bit/Media Library/Media Library

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/Mac64bit/Media Library/Media Library


Required plugins for this example: MBS MacBase Plugin, MBS Mac64bit Plugin, MBS Main Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /Mac64bit/Media Library/Media Library

This example is the version from Mon, 11th Mar 2018.

Project "Media Library.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class MainWindow Inherits Window
Control List Inherits Listbox
ControlInstance List Inherits Listbox
EventHandler Sub ExpandRow(row As Integer) dim v as Variant = me.RowTag(row) if v isa MLMediaSourceMBS then dim source as MLMediaSourceMBS = v dim group as MLMediaGroupMBS = source.rootMediaGroup if group <> nil then List.AddFolder group.Name List.RowTag(List.LastIndex) = group end if AddProperties source.Properties Return end if if v isa MLMediaGroupMBS then dim group as MLMediaGroupMBS = v dim childGroups() as MLMediaGroupMBS = group.childGroups for each childgroup as MLMediaGroupMBS in childGroups List.AddFolder childgroup.Name List.RowTag(List.LastIndex) = childgroup // trigger loading call childgroup.childGroups call childgroup.mediaObjects next dim mediaObjects() as MLMediaObjectMBS = group.mediaObjects for each mediaObject as MLMediaObjectMBS in mediaObjects List.AddFolder mediaObject.Name List.RowTag(List.LastIndex) = mediaObject next AddProperties group.Properties return end if if v isa MLMediaObjectMBS then dim item as MLMediaObjectMBS = v List.AddRow "Name", item.Name List.AddRow "ContentType", item.ContentType List.AddRow "FileSize", str(item.FileSize, "0") List.AddRow "MediaSourceIdentifier", item.MediaSourceIdentifier List.AddRow "ModificationDate", item.ModificationDate.SQLDateTime List.AddRow "OriginalURL", item.OriginalURL List.AddRow "ThumbnailURL", item.ThumbnailURL List.AddRow "URL", item.URL dim ArtworkImage as NSImageMBS = item.ArtworkImage if ArtworkImage <> nil then list.AddRow "ArtworkImage", "Image" List.RowTag(List.LastIndex) = item.ArtworkImage end if AddProperties item.Properties return end if if v isa NSImageMBS then dim n as NSImageMBS = v dim p as new PictureWindow p.Title = List.cell(row, 0) p.Backdrop = n.CopyPictureWithMask p.show end if End EventHandler
End Control
Control LoadSourcesTimer Inherits Timer
ControlInstance LoadSourcesTimer Inherits Timer
EventHandler Sub Action() dim sources as Dictionary = MediaLibrary.mediaSources if sources <> nil then for each key as Variant in sources.keys dim name as string = key dim source as MLMediaSourceMBS = sources.Value(key) 'dim p as Dictionary = source.Properties List.AddFolder source.mediaSourceIdentifier List.RowTag(List.LastIndex) = source // trigger loading call source.rootMediaGroup next me.Mode = timer.ModeOff end if End EventHandler
End Control
EventHandler Sub Open() if not MLMediaLibraryMBS.Available then MsgBox "Please run as 64-bit Mac app." quit else dim Options as new Dictionary MediaLibrary = new MLMediaLibraryMBS(Options) // trigger loading call MediaLibrary.mediaSources LoadSourcesTimer.Mode = timer.ModeMultiple end if End EventHandler
Sub AddProperties(p as Dictionary) for each key as Variant in p.keys dim vv as Variant = p.Value(key) if vv isa NSImageMBS then list.AddRow key.StringValue, "Image" List.RowTag(List.LastIndex) = vv else try List.AddRow key.StringValue, vv.StringValue catch r as runtimeException // ignore? end try end if next End Sub
Property MediaLibrary As MLMediaLibraryMBS
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class PictureWindow Inherits Window
End Class
End Project

See also:

The items on this page are in the following plugins: MBS Mac64bit Plugin.


💬 Ask a question or report a problem