Updated notifications for Mavericks APIs containing images.
Added EyeTunes submodule.
Begin prototype loading of Bowtie themes. Only the image is passed via the hardcoded artworkUpdate function right now.
Created models for the Javascript to Objective-C bridge. Use the Info.plist to get the function names and main html file location.
Remove main native artists view. Make window transparent (still with titlebar) to test out the look.
Load theme from the File menu, Open item.
Implemented basic player controls callback for theme. PlayPause, Play and Pause.
Updated Radium, Spotify and iTunes script definition header files.
Store previous track artwork in a variable and only update artwork if it's new. I may have wrote redundant checks for this. Artwork updating is now only called when we detect that the album changes. Sorry uncle, your folder albums are an edge use case (also unsupported) and this optimizes performance from 14% CPU usage down to 0-3%.
Converted MainMenu xib to autolayout.
Moved frame set from the theme dictionary from awakeFromNib to webView:didFinishLoadForFrame, this makes frame size setting from the theme actually work.
General messing about with drag and drop trying to get the WebView to move the window and also be responsive at the same time.
Dragging the window will now move it and not affect the mouse down usage of the theme. Accomplished this by forwarding the javascript mousedown, mouseup and mousemove events to the Bowtie object and detecting drags then moving the window accordingly.
Added BTPlayStateFunction to and only run it on detected play state changes. This should really be on KVC change notifications though.
Added next and previous track functions to bridge.
Exposed title, artist, album, genre and length properties as keys to the javascript bridge using the isKeyExcludedFromWebScript method in the Track model.
Added nil return for Player.rating() so that the default theme, Geeky wouldn't crash the javascript before displaying track info. TODO: Actually return useful information with the javascript function.
Image resizing for the themes that need it. It also seems that some are only content with @1x artwork. Added a compatibility mode for retina screens and the old themes.
Added Sonora and Ecoute header files from their AppleScript definitions.
Themes can be installed and applied. Just (File->Open) the theme and then apply it in the Preferences.
Added Scribbler submodule by 13Bold. Someone please find the irony in this.
Added log method to the Bowtie object.
Fixed propertyHTML selector name returned. Still doesn't return properly escaped HTML entities though.
Do something useful with the rating information. Theme now can receive rating info but not set it.
Construct Theme model from dictionary and init with URL. This has yet to be used by the main controller instead of the themeDictionary iVar. Replace at some point and singleton the ThemeLoader.
TransparentWindow now takes orders from themes if the user sets the preference.
Added a theme store and restoring theme window position.
Plug in Last.fm API key and shared secret key.
Order themes by name.
Begin Last.fm work.
Remove status item properly when the application is quit.
Add highlighted status item image.
Only set notification content image it's available.
Fix window level for pinned to desktop.
Add default bowtie themes to project.