Ok, this one’s been a long time coming, but I’ve finally got a new version out!
* The FLAC and Ogg-Vorbis libraries are now embedded and integrated into the juce build. Previously these could only be used if you linked to their library files, which needed building separately, but now it all just works without any external dependencies. * Jucer: a very useful change allows each co-ordinate of a component to now be made relative to another component instead of the parent, allowing some complex layout behaviour. * Handy new macro: numElementsInArray() * Improved menu highlighting of custom menu components * Win32 windowing changes to avoid problems with plugins messing up their host's keyboard accelerators * New class: ApplicationProperties - this is a handy singleton for managing PropertyFile objects when you need both user-specific settings and settings that are common to all users of a machine * Extra options for PopupMenu to allow more control over the width and number of columns used. Note that there's a small change to the prototype of LookAndFeel::getIdealPopupMenuItemSize, in case you've overridden this in your code * For consistency, changed the ComboBox to use a normal menu as its popup component, instead of the slightly-different component it had been using. This also involved ditching a load of LookAndFeel methods that were for drawing the old popup. * Tweaked the AudioDeviceSelectorComponent to give more flexible control over which channels are enabled in a multi-channel soundcard * Linux + Mac: added a sockets-based HTTP stream class, so that linux now has this functionality. On the Mac, this replaces the old version which used deprecated OS functions (and which kept randomly crashing deep inside Apple's HTTP code) * Altered the AudioFormat::createWriterFor method to take an OutputStream rather than a FileOutputStream - if you've written a custom AudioFormat you'll have to tweak your method prototypes * More efficient zip file parsing * Renamed MemoryBlock::to64BitEncoding and MemoryBlock::from64BitEncoding because they're a misnomer, and I must have been a bit muddled when I wrote those. They're now called toBase64Encoding and fromBase64Encoding. * New methods: String::indexOfAnyOf and lastIndexOfAnyOf * Changes to the prototype of File::findChildFiles, DirectoryIterator, and a couple of other related methods, so that you can use an enum to specify whether to search for files, directories, or both. * Added some methods to ListBox and TableListBox to return the position of rows and cells * Added a method to allow easy drag-and-dropping of treeview items * Added support for the numeric keypad in KeyPress * Added methods to create custom buttons in TabbedComponents, and to save/restore the scroll position of a ListBox * Fixed whitespace display in a password textbox * Linux: added support for dealing with drag-and-dropped files (thanks to kraken for the code behind that one!) * Lots of other miscellaneous changes and fixes that have come up on the forum recently, but which I forgot to write down here.
I’ve also put up a new version of the plugin framework with some tweaks, and have updated binarybuilder to work with the latest version.