Sweet. Could this facilitate an optional skin chooser, so that when WinCab is started, you could choose from a list of available skins?
ebateman21
No, that's just to make it easier to specify skins and organize your skin folder. For example, you can have a skins/fonts, skins/labels, etc for your global resources and all of your skin specific files in a folder with the skin name and it will find all the files without you having to specify full paths for everything. You can actually do some of this now; in jukebox.ini, you'll see a setting for ResourcePath=skins. You can add ResourcePath1=skins\fonts, ResourcePath2=skins\labels, etc. For truly complicated skins, you can also add ResourcePaths in the [Skin] section in the skin and it will use those paths just for that skin. The only new thing here is using the skin name as an alternate ResourcePath (it looks for that in the jukebox's folder and in the first specified ResourcePath, which is usually skins) and automatically adding the .skn extension if it's not specified.
However... one of my unfinished features is to be able to change skins on the fly, either by toggling through a list of skins or with a particular button mapping directly to a particular skin. It doesn't work yet, though. The idea for this was to support cocktail cabinets or rotating monitor cabinets that may need multiple views, but since the skin has to re-load from scratch, there's no reason you couldn't flip to completely different skins rather than just change the rotation.
There are lots of other changes coming for skins, too, to make them more dynamic. I didn't want to talk about them too much in case I couldn't get them all in, but with all the hard work you're putting in on these I should probably give you a preview:
- Image maps: The image displayed for the icon is dependent on a value. So you could have a Volume icon of a LED bar that lights more LED's the higher the volume is, or display the selection digits as images rather than display text, or have a colored light that changes colors based on random numbers.
- Animation lists: The image for an icon cycles through a list of image, either looping beginning to end, beginning to end to beginning, or not looping at all and just going through the images once. (This can be used for animated buttons, standalone animations that always run like bubble tubes, or one shot animations in response to a message, like an animation of a record moving into place when a song is starting.)
- FocusImage: In addition to OffImage and OnImage, you'll be able to specify the FocusImage so you can, say, have a button light up when the mouse is over it rather than just have the little dotted line. And this could be specified as an animation list, so that light could flash or pulse.
- Labels: You'll be able to put a label on a button using text. If I get this to work right, that means you could make a skin with all blank buttons and assign those labels based on what selection method is in use (alphanumeric vs. numeric). This one's tricky. Ideally, labels could also be a label map, displaying specific text in response to a value rather than the value itself.
- Sliders: You'll be able to add sliders to control appropriate variables. Right now I'm thinking volume, page number, first letter of artist name... what other variables would respond well to using a slider as a control?
- Transparent Display Backgrounds: This is already implemented for the next version; rather than displays always having a solid color background you can let the background image show through.
Obviously, this is a huge list of improvements and will take a while to appear, but at least you can get an idea of what you'll be able to do with skins.
--Chris