Currently working on another of my creations, this time it is a steampunk media player. It runs on Windows and Mac os/x and uses each system's default media player to interact with music files. It is not really possible for one person to write the code to interact with every known file format that exists (I would be forever writing codecs) so instead I just use the in-built media player that already knows the majority of formats and interface with it via an o/s API.

Fig 01. The player in simple mode.
On Windows it is the WMP (Windows Media Player) and on os/X it is QT (QuickTime). The same logic/code is used for each and the steampunk player acts/responds the same on each platform, not quite multi-platform but dual certainly. It may well work on the Ubuntu 13.03 with the Yahoo connect TV engine but that is completely untested.
It has two modes, simple compact mode where it takes up very little screen space and allows you to resize the thing to tuck it away anywhere you like. On a small pull of the keychain it enters normal mode where it shows you all the tracks in its current list.

Fig 02. The player in simple mode showing it in operation.
I am just updating the widget's menus, fixing the help screens and adding new folder browsing functionality. The old YWE engine provides access to the standard Windows folder browsing API but it does not allow you to determine where the default folder location is, instead always starting at the computer's drive root which is a pain. I am just recreating that folder browsing functionality and adding the folder start parameter that the YWE developers forgot. I am creating a browser window that looks like an old XP classic frame but I will create a more steampunk look-and-feel for it later using photoshop.
You might think it would be more sensible to use active X to use a system-level call to bring up a folder browser window and you'd be quite correct for almost all programming languages except javascript. Javascript traditionally runs in a browser and is restricted from being able to access desktop APIs. Even with these desktop engines your javascript still code runs in a browser context, in the konfabulator engine it has embedded the webkit browser and the javascript engine that comes with it. Since NT6 (Vista) access to certain activeX APIs has been restricted/deprecated, it now seems to check the language type and so you can no longer fire up a folder browser as you'd like to. Instead you have build your own from scratch.
Note: Microsoft's own jscript which runs natively on the desktop can still access these APIs, it is just those embedded in the context of 3rd party browsers that are now forbidden to access certain Windows APIs, thanks Microsoft - we know what you are doing there...

Fig 03. Displaying the original folder browser, styled to look like XP classic, new skin yet to arrive...

Fig 03a. Displaying the new folder browser, a medieval skin
Isn't it amazing how a simple skin changes the whole? The two skins above were formally created using the same methods and form but the skin changes everything.

Fig 04. Displaying the help for the player in 'simple' mode.

Fig 05. Displaying the help for the player in 'full' mode.

Fig 06. The player on my desktop with a few other steampunk creations.
Steampunk Weather (top)
Steampunk Volume Control (top right)
Steampunk Clock Calendar (left)

Fig 07. The right click menu
The right click menu showing the RJtextEd shortcut link that allows me to edit the program project files at a simple select and click

Fig 08. The build button used to initiate the program.
For each project the build button is set to simply run the project's KON file, the file that is recognised by the engine by default to initiate the running of your program. You set this using the following menu option:
Project - configuration - run settings - run
These two simple configurations speed up the debugging/development process considerably.
part II
On the steampunk media player I have modified the folder and file listing code to allow displaying both folders and files on the same pane, previously it was was just folders or files. A simple
filesystem.getDirectoryContents using the konfabulator API listing just gives you an alphabetical dump so in some way you have to sort the contents, display the folders first, then the files afterwards.
I am in the process of adding a slider to allow scrolling up/down which only appears when there is more than one screen of files/folders. Also allowing the manual selection of files using the up/down keys as well as scrolling pages using the mouse scroll wheel. It indentifies known file types as they are displayed and allows you to interact with the folders alone as this is a folder selector.

Why am I doing this? Not quite sure, it started out as a fix to the limitations of the engine but suddenly I am writing a full folder/file browser pop-up in javascript and starting to replicate default Windows functions. As you get stuck into something I feel the need to do it 'right' and not to alienate Windows users which means doing it roughly the same way.
It is only when you try to recreate something from the o/s yourself that you realise what a lot of code goes into a simple folder browser window...
Part III

// now allows selection of files but not to drill down into...
// now allows the up and down key selection of tracks/folders
// does not allow the selection to go above or below the list on a key up/down
// if a track is clicked upon or key'd then the default folder is chosen.
// implemented a return to open a sub-folder
// implemented the CTRL+HOME to return to the top screen and select the top track
// implemented the CTRL+END to go to the bottom screen and select the last track
// changed the selected track colour to match the rest of the window
More recently:
// selection by mouse only allowed on populated folder/tracks
// up icon click now correctly calcualtes from current tree position
// onMouse Scroll movements to select up/and down - WIP
// up icon now checks to see if the folder is a drive, if so now passes a boolean variable to cause the drives to be displayed
// added folder exclusion list to prevent the Windows folder from being browsed - ERROR!
// the readfolderslist now shows drives
// added a drive icon for drives only
// changed text alert for folders that contain no audio files
// changed the tooltip texts to be more relevant and informative
// changed the play button to a select button
// added ting and page turn sounds to navigation events
// added folder list refresh function to F5
// added back button code to handle the very last folder selection
// remove back icon when showing drives only
// when a folder has no files but still has sub-folders within, it requests to turn recursive searching on and do a rescan.

Part IV
I've added a help screen for the folder manager

A working version is now out:
https://www.deviantart.com/yereverluvinuncleber/art/Steampunk-MediaPlayer-Ywidget-780346607// fixed a bug with some CDs that have no track information causing no track title to trim()
// up to drive e: when the tooltip should say drive root, added code to handle the up icon mouse enter root identification
// added help screen and menu item
// added roll over highlight of the buttons
// added tooltip change to reflect file or folder selection
// created file background with file plaque changed according to type
// fixed the file/folder browser type as called from the various places.
// there is no selected file by default any more
// no file selection does nothing as it should
// double click a file in file mode must play it
// the 2nd and 3rd folders selected should not replicate the first if the folder selected is the same
// right click select fourth saved folder selects the wrong one, now calls setmenu
// save the selected folder to the current prefs so that when opening the new folder selector the previous position is retained.
// back pressed twice, the up location is not set correctly
Unfortunately, there may be one or two bugs but in general it works and does not crash. It is a fairly basic file/folder explorer with no drag/drop nor filename editing on-the-fly but it allows navigation, file or folder selection, has full help and does the job it was designed to do. It also has a unique look that appeals to me.