BBShelf v1.1
description
BBShelf is a Blackbox for Windows plugin that holds shortcut icons. The shelf can be opened or closed by clicking on the button.

BBShelf v1.1 has been tested with Blackbox for Windows v0.0.92 on Windows 2000. I'm pretty sure it's Xoblite compatible too.

Have fun, you crazy monkeys. :P

Luxuriantly hand-crafted of only the finest ASCII.

Fatman

revision history
BBShelf v1.1 (2004-09-20) / Fatman
  • Tooltips! [Finally! :)]
  • Icon menus
  • Delete icons
  • "Drag-n-Drop" now works!
  • Don't even try to keep BBShelf.rc neat and tidy
  • Link file parsing
  • Shelf classes need a redesign
  • BBShelf v1.0 (2004-09-19) / Fatman

  • The "Yay, It Works!" Release
  • Upgraded to BBWrapper v3.2.1 baseline
  • Icon selection [see under "BBShelf.rc settings"]
  • Multiple shelves
  • Better glue to edge
  • Slightly less evil icon handling
  • Some path variables
  • Arrow removed
  • Better look [IMHO]
  • Menu redesigned
  • Double click mode
  • A command can be a bro@m! :D
  • Now we can execute batch files too
  • known bugs
  • None!
  • future releases?
  • Redesign of shelf and shortcut classes
  • Wrap/scroll for large shelves
  • %BBDIR% and %PROGDIR% substitutions
  • Env vars in params
  • "Create Shortcut" menu option
  • Load dirs containing .lnk files
  • Rollover bevelling [ala Quickbar]
  • Other image formats
  • Select RT_ICON from RT_GROUP_ICON
  • Better batch file handling
  • Rollover images
  • Remove maxWidth hack
  • Improve accuracy of FindWhichIcon function
  • Icon justification in maxWidth mode
  • Bring back button arrow?
  • Suggestions? Tell me!
  • license information
    Copyright © 2003-2004 Adam J Richardson [Fatman]

    BBSHELF IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. THE AUTHOR DISCLAIMS ALL WARRANTIES, EITHER EXPRESSED OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF THE AUTHOR OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

    initial setup

    To load BBShelf, just add the relative path of the plugin (from your Blackbox directory) to the Blackbox configuration file plugins.rc (located in the Blackbox directory). For example, if you installed Blackbox into C:\Blackbox, and BBShelf.dll is located in C:\Blackbox\Plugins\BBShelf, you should add the line Plugins\BBShelf\BBShelf.dll to plugins.rc. Simple, eh? :)

    Please note that BBShelf is NOT a slit plugin. Loading it in the slit has no effect, except that it will show up in the slit's "About Slit Plugins" dialog.

    BBShelf.rc settings

    I have included a default configuration file (BBShelf.rc) in the archive, but if a configuration file can't be found at startup (BBShelf will first search for it in the same directory as the plugin, then in the Blackbox directory), BBShelf will automatically create one for you in the same directory as the plugin. Currently, BBShelf supports the following settings.

    bbshelf.alpha: 0-255    Transparency setting [optional]
    bbshelf.toggle: true|false    Toggle with plugins?
    bbshelf.border: true|false    Draw borders?
    bbshelf.dblClick: true|false    Double click mode?
    bbshelf.shelf1.x: 0    X position
    bbshelf.shelf1.y: 0    Y position
    bbshelf.shelf1.transparent: true|false    Make shelf transparent, assuming OS supports it?
    bbshelf.shelf1.alwaysOnTop: true|false    Always on top?
    bbshelf.shelf1.glueWindow: true|false    Glue to screen edge?
    bbshelf.shelf1.maxWidth: true|false    Use max width mode?
    bbshelf.shelf1.tooltip: true|false    Allow tooltips for this shelf?
    bbshelf.shelf1.iconSize: 16|32|48|64    Size of icons to use
    bbshelf.shelf1.icon1.command: notepad.exe    Command to run
    bbshelf.shelf1.icon1.params: C:\Blackbox\Blackbox.log    Arguments to command
    bbshelf.shelf1.icon1.image: notepad1.ico    Image for icon [optional]
    bbshelf.shelf1.icon1.rollover: notepad2.ico    Rollover image for icon [not implemented yet]
    bbshelf.shelf1.icon1.tooltip: Notepad - The Windows Text Editor    Content of tooltip [optional]
    bbshelf.shelf1.icon2.command: calc.exe    Command to run
    bbshelf.shelf1.icon2.tooltip: Calc - The Windows Calculator    Content of tooltip [optional]
    bbshelf.shelf1.icon3.command: explorer.exe    Command to run
    bbshelf.shelf1.icon3.image: explorer.exe,1    Image for icon [optional]
    bbshelf.shelf1.icon3.tooltip: Explorer - The Windows File Manager    Content of tooltip [optional]

    As of v0.2, BBShelf saves settings as they are changed.

    Icons are specified in a shelf by using 1-based names, so the next icon in the example would be icon4, followed by icon5, etc. If you leave a gap, the program won't complain but you won't see any icons after the gap. There is no way to do separators just yet. Shelves also use 1-based names. The same rules apply as for icons.

    Currently, the image setting can be an executable [EXE or DLL] or an icon file [ICO]. Other formats will be available soon.

    You can specify which icon to use if an executable has multiple icon resources! Follow the image filename with a comma and then a number, no spaces. For example: "explorer.exe,2". Try it and see!

    additional notes

    Rollover images and bevels aren't available just yet. To be implemented soon[tm].

    Currently BBShelf defaults to extracting a 32x32 icon from an icon resource. I'm not sure how to force it to get the appropriate icon to match the shelf's settings, but I'll look into it. Of course, it still works in other sizes, but it looks a bit crap.

    Windows env vars such as %WINDIR% work in the command string. To check out what other env vars are available, crank open a DOS prompt and type "set" [without the quotes]. I know "set" works on Windows 2000, other Windows might not have it.

    Until I implement wrapping and/or scrolling, try not to create shelves with enough icons to fill the screen. There shouldn't be a problem but you just might lose the shelf button. [In which case, restart Blackbox to get it back.]

    The BBShelf windows will steal focus occasionally. This is by design, not a bug.

    acknowledgements
    Thanks to all the core BB devs and the denizens of Loose-Screws.com and #bb4win. Hugs especially to NC-17, Tres'ni, Mortar, qwilk, maaneeack, Jesterace, and of course Tux for helping, hindering and heckling, in no particular order. :P