Brainfart: A skinners tale

Saturday, March 10, 2007

Singularity v0.004 for LiteStep - Menus/Popups

Well, I've reinstalled Windows2000 on a partition on the Linux box to get back to LiteStep skinning (rather than doing it all through VirtualPC on the Mac.... SLOW). The next step was to get LiteStep installed, for which several installation options exist. I opted for one I'd never tried before, the LiteStep Open Source Installer (LOSI), principally because it's using the latest LiteStep core files by default. Although the installation and configuration of LiteStep through this installer appeared to go fine, installation of 3 out of 5 themes resulted in errors that completely hung the computer and required resetting of the shell back to Explorer through the Task-Manager. Not entertaining.

After uninstalling LOSI, Omar's 3.0.2 installer was my fall-back, the tried-and-true method with a mighty fine default LiteStep theme (one of my favorites, truly). Since the core files in this installer are a bit outdated, I quickly downloaded and installed the latest LiteStep 0.24.7 Core files in my LiteStep directory and updated to the latest version of NetLoadModule. All went well, and in the end, I had no problems installing themes. I've praised Omar before, but I'll do it again... fantastic installer, fantastic utilities, and it just plain works.

Minor Setback: no backup...
After all the LiteStep installation, I was eager to fire up my work-in-progress, Singularity v0.004. A thorough sweep of my archives, however, revealed that the config files for the theme were nowhere to be found. All the graphics were there, but the previous theme.rc, script.rc, themevars.rc, and popup configs were non-existant. Dang.

Starting over quickly: Menus
Without further ado, I began crafting what to me is the most critical part of any LiteStep theme: the Popup Menu. Without this, you're not going to be navigating far. I quickly set-up a new theme.rc file and gave it some basic instructions for where to find files (the typical directory tree, config, images, misc...) and then added the line to get NetLoadModule to load an old favorite, and something cutting edge:

*NetLoadModule jdesk-0.73
*NetLoadModule xpopup-1.3.1

jDesk is an old desktop module that will let the user right-click the desktop to activate a popup menu, the traditional way, and xPopup is Andymon's incredible popup module. I specifically went for xPopup over alternatives because of its ability to quickly render alpha-transparent images as the menu, allowing me to do cool things with drop-shadows and glass effects.

In the graphical design stage, I couldn't figure out which prototype popup menu I liked most, so I decided to include all three and let the user pick what they want. This means unique settings for each popup menu, as icons and text position is slightly different between them. This necessitated splitting the popup configuration parameters into 4 parts:

  1. Theme.rc: all popup settings common
  2. Popup-1.rc: all settings specific to popup style 1.
  3. Popup-2.rc: all settings specific to popup style 2.
  4. Popup-3.rc: all settings specific to popup style 3.

After all the configuration, here's a preview of the three different styles in action:


Now I'm working on getting the graphics layout completed using either the Layer-Cuts module or one of Andymon's shortcut modules. The taskbar and system tray will be soon to follow!

Labels: , , ,

11 Comments:

  • i guess you figured out that you have to manually install the xpaintclass.dll to the litestep folder with omars litestep installer?
    also there is a newer version of the LOSI on ls-themes.org. i had troubles with the others but not the 0.8 version.
    things look great so far!
    as far as the layercuts and shortcuts there has been alot of work done with the Xlable module. look at the REFLECTION theme on litestep.net. for a good example.

    By Anonymous Anonymous, at 12:13 PM  

  • Good suggestions... xLabel's on tap, although the theme is currently using LayerCuts1.72 to get everything in place. xLabel's in active development while layercuts hasn't been touched for years apparently.

    Since you brought it up... I've seen the gobs of documentation on LS-Themes.org regarding xPaintClass but still haven't a real clue what it does or is used for. In several of the downloadable themes it specifies which version of xPaintClass.dll is required although very few themes seem to require it at all. Is it something I should be playing with?

    By Blogger mrbiotech, at 1:05 PM  

  • Re: xPaintClass.dll

    ...nevermind. I'm coding up the taskbar right now using xtaskbar-2.0.2, which requires xPaintClass to run.

    What xPaintClass.dll does
    Just in case other users reading this have the same question I did.

    Andymon's fantastic X modules for LiteStep can permit multiple definitions of system trays, taskbars, menus, etc.... By default, each has settings for just one instance. Many of these, however, have certain parameters that are universal, such as placement of an icon in the system-tray, taskbar, or menu. These configuration settings that are frequently in-common between the different modules have been centralized in a DLL file by Andymon, xPaintClass.

    This module is principally going to help the theme-developer, not the theme-user (who probably won't notice it doing anything at all unless they don't have it installed and a theme doesn't work). This somewhat narrows the amount of reference work I have to do in order to build a theme: if I use Andymon's x-modules, the configuration is essentially the same.

    Example:
    Making a background image for a system-tray:
    xTrayImage traybg.png

    Making a background image for the taskbar:
    xTaskbarImage taskbar.png

    Making a background for the button of an active task:
    xTaskbarActiveImage active_button.png

    By Blogger mrbiotech, at 10:23 PM  

  • just in case you forgot or i have not told you in a while, your a genius!!

    By Anonymous Anonymous, at 9:30 AM  

  • Most definitely not!!! :D

    As powerful as the whole xPaintClass/xTaskbar combo is, I end up screwing up the syntax quite a bunch. At least one version of the taskbar works, and I've got two more styles in the works.

    I think I need to post another update - at this point the whole upper-left instrument cluster is up and running with functional VWM, taskbar, and system tray.

    Dude, I've gotta give you props... I never would even be working on this now if it wasn't for your encouragement :D

    By Blogger mrbiotech, at 10:49 AM  

  • oh ya there are some other dll's you have to manually put in the litestep folder(3 to be exact), oops.
    give me a sec to get the link.

    By Anonymous Anonymous, at 2:11 PM  

  • http://www.nbi-studio.com/images/newspost_images/system_dll.zip
    sorry it took so long. :|

    By Anonymous Anonymous, at 7:12 AM  

  • http://www.nbi-studio.com/images/newspost_images/system_dll.zip
    oops, DANG

    By Anonymous Anonymous, at 7:13 AM  

  • mmmmmmmmm.......
    for some reason it wont publish the whole link?? im going to have to break it up.

    http://www.nbi-studio.com/images/
    newspost_images/system_dll.zip

    By Anonymous Anonymous, at 7:15 AM  

  • What does the system.dll do exactickley?

    By Blogger mrbiotech, at 7:11 PM  

  • not really sure??

    By Anonymous Anonymous, at 2:41 PM  

Post a Comment

<< Home