The information contained within this document and the format of the image layout is considered to be the property of Stardock.net, Inc.  This information is provided 'as-is' and only for use by skin designers / authors to produce UIS skins for use with WindowBlinds.  All other uses of this information are strictly prohibited.

To avoid misunderstandings, this means that you may not read, create, write, translate, or otherwise convert .UIS files for any purpose other than using them with WindowBlinds. As an example, if you want to develop custom skinning support via a control or something, that's great, but reading, converting, or otherwise utilizing the .UIS format is forbidden. When in doubt or if interested in a license, contact wblinds@stardock.com

Although the format is very powerful and flexible, you should also find it quite easy to use as most  features are optional and WindowBlinds will use it's own defaults if you do not specify any section. This information is also available online at http://www.windowblinds.net/uis/.

Important Note to Personality Authors

When making a personality please make the .zip filename the same as the .uis filename.  WindowBlinds will create a folder named the same as the zip file (minus the .zip extension)

Also you should not use spaces or funny symbols in the name of the zip.  It is useful if you could name the zip (and therefore the .UIS file) something without the version of the personality.  Then if you make a change to the personality, it can be updated in the listings easier.

Please be sure to upload your skins to www.skinz.org and www.stardock.com/wb/upload.asp.

Be sure to check out BuilderBlinds at http://www.stardock.com/products/builderblinds as well! BuilderBlinds is also available as part of the Object Desktop Network.

[TitlebarSkin]

Firstly ALL .uis files must contain the personality name & author.  Without these, the user will not be able to select it as it will not show in the list of installed personalities.

 SkinName = World of Yellow
 SkinAuthor = Neil Banfield

The following are not used in the current public releases but later versions may do, so you may as well include them

 AuthorsURL = [Put your url here]
 AuthorEmail = [Put your e-mail address here]
 SpecialNotes = [Any special notes regarding this personality go here]

[Personality]

This is where the main details of the personality are specified.  This section lists the bitmaps, the sizing information and the number of buttons implemented

If your personality does not use transparency in the titlebar buttons then you should put the following line in the UIS file as it helps WindowBlinds and ensures greater performance when using this personality.

 UsesTran = 0

If your personality does not use transparency in the titlebar or window borders, put the following line in the UIS file as it ensures greater performance when using this personality.

 NoShape = 1

 buttonCount = [Number of buttons we have defined in this personality]

We now specify details about the titlebar text

 TextAlignment = [ 0 - Left, 1 - Centre, 2 - Right]
 TextShift = [Amount in pixels to shift the titlebar text by from the left] (A)
 TextShiftVert = [Amount in pixels to shift the titlebar text down by] (B)
 TextRightClip = [How far from the right edge should clipping of the text start] (C)

You should ensure you have set the TextShift & TextShiftVert settings correctly to prevent titlebar text overlapping any buttons or titlebar plugins you have added.

If you want to make the titlebar text appear on the bottom border, rather than the top border, then the next line is for you.

 TextOnBottom = [0 - Normal text behaviour, 1 - Place the text on the bottom on the window]

WindowBlinds also has the ability to add strings to the front and back of the titlebar text

 FrontString = "*** " [String to add]
 EndString = " ***" [String to add]

All UIS 2 based personalities include lines which relate to menu bars.  You should remember that the bitmap name is relative to the WindowBlinds install directory.

 menubar = yellow\menu.bmp

You can specify how many pixels from the left & how many pixels from the right end of the menu bar should not be stretched (horizontally)

 TileLeftMenu = {Amount of pixels}
 TileRightMenu = {Amount of pixels}

Sometimes you want to make the menus start a set number of pixels from the left of the window border. 

 MenuLeftTile = Specifies the amount to shift the menu text by again in pixels

When a menu item is selected, the item has a rectangle drawn behind it to indicate the selection.  The next lines define the colour of the rectangle in red, green & blue

 MenuR = 142
 MenuG = 109
 MenuB = 146

There are also some other colours which are added to the UIS file too.  These can be chosen by the user or they may choose to use their own system colours instead.  You MUST include all of the 3 colours definitions described below or the colours are ignored

 ActiveTextR
 ActiveTextG
 ActiveTextB

 InactiveTextR
 InactiveTextG
 InactiveTextB

 MenuTextR
 MenuTextG
 MenuTextB

Now we have the bitmaps for the window borders and titlebar.  Again they are relative to the WindowBlinds install directory.

 Top = yellow\top.bmp
 Left = yellow\left6.bmp
 Right = yellow\right6.bmp
 Bottom = yellow\bot5.bmp

These bitmaps use RGB(255,0,255) as a transparent area.  Currently the transparency is only obtained from the active titlebar.  Each bitmap consists of 2 images.  The active & inactive images are placed in the bitmap together.  For vertical sides, the active is on the left & the inactive on the right.  For horizontal images, the active is on the top and the inactive is on the bottom
 

Each border has areas which are not tiled and areas which are tiled or stretched

In the above, A & C are non tiled and B is an area which is either tiled or stretched

For each we specify the size of A & the size of C

 TopTopHeight = 45 (Size in pixels of A)

 TopBotHeight = 45 (Size in pixels of C)

This is repeated for the other 3 sides

 LeftTopHeight = 6
 LeftBotHeight = 10

 RightTopHeight = 6
 RightBotHeight = 10

 BottomTopHeight = 6
 BottomBotHeight = 6

Notes: The value of LeftBotHeight MUST be >= height of the bottom edge

We now specify is the area B should be tiled or stretched

 TopStretch = 0 (0 - Tile, 1 - Stretch)
 LeftStretch = 0 (0 - Tile, 1 - Stretch)
 RightStretch = 0 (0 - Tile, 1 - Stretch)
 BottomStretch = 0 (0 - Tile, 1 - Stretch)

The following settings are for the optional animation of the active titlebar.  You MUST do all the steps to get animation to work (This includes adding anim.dll to the personality)  Animation can only be used for the active titlebar.  It will not work for the inactive titlebar.

Firstly you need to add the extra frames in the border images.  Currently each border MUST contain the same number of frames. 

The you need to specify the time between frames.  This is specified in ms.  So 1000 = 1 sec

 AniRate = 0

Then you have to tell WindowBlinds how many frame there are in the image.  This includes the inactive state.  So a normal non animated titlebar would contain 2 frames.

These frames are ordered in the following way (assuming a horizontal border and N frames for the animation)

Active 1
Active 2
Active 3
   ....
Active N
Inactive

So the inactive image is the last in the file.  For vertical edges, the inactive frame is the right-most image.

By default WindowBlinds obtains the shape of the window from the first frame, but WindowBlinds can be set to use a different shape for each frame if the following line is included.

 DynamicFrame = 1

This option is NOT compatible with the MaxBorder* lines. and it will result in a 1 pixel transparent are on the right of a maximized window.  This is by design.

If you do not use animation then please set these values to 2.  If you want to be very memory efficient, you can now set any edge which has the same inactive & active image to have only one image and only include one in the image file.  This trick cannot be used for personalities which use animated titlebars / borders.

 TopFrame = 2
 LeftFrame = 2
 RightFrame = 2
 BottomFrame = 2

After doing the above steps there is one more thing to do.

You must create a button of type dll and assign the dll name to anim.dll (Its in the WB dir so no need to add the directory name or include the file in your .zip file).  The example below can be used.  The number of the button does not matter, but it must be included in the button count.

[Button8]
XCoord = 0
YCoord = 0
Align = 0
; Button of type DLL
Action = -3
Width = 0
Height = 0
DllName = anim.dll

Want to assign a bitmap to place behind the text?  This is split into 2 (active = top half, inactive = bottom half).  Tthis feature works for left, centred & right aligned text.

 textBack = MacPC\macback.bmp

Here we can set the alpha value for the text background image.  This is a value from 0 - 255 where 255 = totally visible and 0 = invisible.

 ActiveAlpha

 InactiveAlpha

See the notes for alpha in the titlebar buttons section to see limitations of this feature. 

We can tell WindowBlinds how much should be tiled at each end too.  These bits will overhang the caption text.  So to make the text background start 20 pixels to the left of the text and finish 30 pixels to the right, you would make TXTBackleft = 20 and TXTBackRight = 30.

 TXTBackleft = 4
 TXTBackRight = 4

You'll may want to specify a background wallpaper for the personality.  The user is asked if they wish to use it when they choose the personality. Keep in mind that including a wallpaper image can increase the size of a skin package very quickly. 

 Wallpaper = Yellow\bitmap.bmp

Remember the paths are as usual relative to the WindowBlinds directory.

We also have the ability to run a command when the personality is selected. WindowBlinds will ask the user if they wish to do this action specified.

 Exec = start readme.txt

You can specify the run style (3 = normal, 7 = hidden (use if you use start.exe to start something))

 RunStyle = {0,1,2,3,4,5,6,7}

You may want to include an IconPackager theme to be used with your personality.  WindowBlinds can be made to automatically apply the theme when the personality is selected.

 IconTheme = yellow\mytheme.zip

As usual the filename is relative to the WindowBlinds directory.

And of course you can specify some bitmaps to use for bitmap backgrounds etc

 ExplorerBmp

 DialogBmp

 MDIBmp =

Care to specify a bitmap to use for the menu borders?  Only the 3 pixel wide border around the edge of the bitmap is used.

 menuBorders =

The following lines specify the amount of each border which should be off the screen when the window is maximized.  This information is only used when the Show Window borders when maximized option is disabled (see the Tips and Tricks section of the help file).

 MaxBorderCutLeft =

 MaxBorderCutTop =

 MaxBorderCutRight =

 MaxBorderCutBottom =

WindowBlinds also includes the ability to have mouseover effects.  This can be turned on using the following line.  Mouseover is only for the active window.  The image for the mouseover is the 3rd in the button image.  I.e. the one reserved usually for disabled.  Please see the comments above the action codes for buttons as maximize and minimize buttons require special handling.

mouseOver = 1
 

Now we get onto the titlebar buttons

The images for a button are all stored one file.  The states are

  • Non Pressed
  • Pressed
  • Disabled / MouseOver

But we also support different images for when the titlebar is inactive (like in the picture above), so the following is defined to indicate to WindowBlinds if we are using this

 TripleImages = [1 - Use 6 images in one, 0 - Use 3 images]

We can assign sound effects to buttons so to enable this use the following line

 SoundEnabled = [1 - Sound effects on, 0 - Sound effects off]

Lastly as we can assign the rollup function to a button we have a line which lets us specify the minimum height to rollup to.  Without this line it will rollup to the height of the titlebar.

 RollupSize = [In Pixels]

We can also have an action assigned to the right click on the titlebar.  This code is as Action in the next section

 RightClickAction = See Action table

We can also now assign an action to double clicking the titlebar.  The default is to maximize the window

 DoubleClickAction = See Action table
 

As well as the fixed borders, WindowBlinds supports button objects.  These can be placed anywhere on the borders.  They can be pressable, like normal buttons, or just act as image layers.

This capability is very powerful and you may wish to experiment with it to get the best from it.

[Button#]

 # = Number of the button.  So [Button4] is the 5th button.  We start from 0

 Align = See table below
 
 

Align ID

Meaning

0

Align button relative to top left of window

1

Align button relative to the top right of window

2

Align button relative to bottom left of window

3

Align button relative to bottom right of window

4

Align button in the middle of the top edge*

5

Align button in the middle of the bottom edge*

6

Align button in the middle of the left edge*

7

Align button in the middle of the right edge*

8

Align to left of caption text*

 


* These styles do not permit the button to be pressed in


 XCoord = No of pixels to shift left edge of button from the alignment edge (Left or Right)
 YCoord = No of pixels to shift top edge of button from the alignment edge (Top or Bottom)

By default, WindowBlinds does not allow buttons to alter the shape of a window.  However this default action can be changed by using the following setting.  If you do not use this option, please do NOT include this line.  The default value is -1. 

By combining this option with the Visibility setting, you can change the shape of a window depending on it if has a minimize button, is sizable etc.

 CombineOp = {-1 =As Normal, 0 = Cut away from the border, 2 = Add to border}

This option needs some explaining.  When = 0, the RGB(255,0,255) section is used to cut into the shape.  If the RGB(255,0,255) section is over an area which is already transparent then it does not affect it.

When = 2, the area which is not RGB(255,0,255) is added to the window border (i.e. the button can extend into an area which was originally transparent.

There are two limits.  You CANNOT use Visibility = 1 or 2 for CombineOp buttons.  This will not work unless the DynamicFrame = 1 line is in the personality.  Also you cannot use the CombineOp line for certain Align settings.

 Action = See table below

The disabled image is only used for 2 button styles (1 & 2).  For all other action codes the 3rd image is used as a mouseover image IF mouseOver = 1 is defined in the [Personality] section of the .uis file.  To get mouseover to work for maximize and minimize buttons you should use codes 22 & 23 instead.

Action ID

Action Performed

0

Close this window

1

Maximize this window - Shows Disabled State

2

Minimize this window - Shows Disabled State

3

Help button

4

Rollup / Unroll this window

5

Execute this command (see Command line next)

6

Force this Window to be always on top

7

Attach this window to the desktop (Always on bottom)

8

Litestep Only - Keep this window visible always

9

Prevent this window from being sized or moved

10

Execute the screensaver

11

System icon (I.e. The icon used for this window)

12

System Menu (Does not show the system icon, but works just like it with the menus)

13

Size from the top

14

Size from the bottom

15

Size from the left

16

Size from the right

17

Size from top left

18

Size from the top right

19

Size from the bottom left

20

Size from the bottom right

21

Send to back of z-order

22

Maximize Button - For use with MouseOver

23

Minimize Button - For use with MouseOver

24

Unsupported Experimental Code - Minimize to Sys Tray

25

Unsupported Experimental Code - Windows 2000 specific

-1

Do nothing.  For when you just want to show an image.  This does not intercept mouse messages

-2

This is like the above but it intercepts mouse messages, so clicking it stops you moving the window

-3

This tells WindowBlinds that this is a dll button.  See later in this section

-4

Custom action.  Clicking is handled in a UIS2 plugin dll, but drawing is done by WindowBlinds

-5

Non clickable.  This is like an action 3, but it is treated as an integral part of the titlebar

WindowBlinds has the ability to assign a different command to a button if shift or control is pressed.  The following 2 lines take the same action codes as the Action line.

 ShiftAction

 CtrlAction =

 Command = [Filename to execute - for buttons with action = 5]

This is the bitmap which contains the button images.  Again RGB(255,0,255) is a transparent area. 

 ButtonImage = yellow\min.bmp

We can also specify the visibility for the button.  Using the codes below you can make a button appear only when certain conditions are true.

 Visibility = See table below (Also see text following it)
 
 

Visibility ID

Whats it mean

0

Always show this button

1

Show only when the window is active

2

Show only when the window is inactive

3

Show only when the window is maximized

4

Show only when the window is NOT maximized

5

Show only when window has been rolled up

6

Show only when window is NOT rolled up

7

Show only if this window has 'Always on top' set

8

Show only if window is NOT set as 'Always on top'

9

Show only if attached to desktop

10

Show only if NOT attached to desktop

11

Show only if 'Keep this window visible always'

12

Show if NOT 'Keep this window visible always'

13

Show only if window has WS_EX_CONTEXTHELP

14

Show only if window does NOT have help button

15

Show when window does NOT have either maximize or minimize button and is NOT maximized

16

Hides button if a maximize button exists or a minimize button exists

17

Show when window does NOT have either minimize or maximize button

18

Show if window is a MDI child

19

Show only if window is NOT a MDI child

20

Show if the window has a maximize button

21

Show only if the window does NOT have a maximize button

22

Show if the window has a minimize button

23

Show only if the window does NOT have a minimize button

24

Show if the window is sizable

25

Show if the window is NOT sizable

26

Show only if either a maximize of minimize button exists

27

Show only if the window has an icon

28

Show only if the window does NOT have an icon

You may define up to 10 visibility codes per button.  These are combined using the AND operator.

 Visibility1 = Value from above table.
 Visibility2
 Visibility3
 Visibility4
 Visibility5
 Visibility6
 Visibility7
 Visibility8
 Visibility9

All of the visibility options are optional.  You only need to include them if you need to combine visibility options.  The default value is always show .  Like Code 23 & Code 1.  This would result in a button which is only shown when the window is active & it does not have a minimize button.  To do this you would add the following lines :-

 Visibility = 23
 Visibility1 = 1

You can also set an alpha value.  WindowBlinds uses this to blend the image with whatever is below it.  WindowBlinds makes use of its own advanced image blender which supports many per pixel effects.  The alpha blender supports the RGB(255,0,255) transparency. 

The larger the area of alpha blending, the slower it will be to display.  However for normal sized buttons there is little performance hit that can be noticed.  The alpha blending does not require any additional support files. 

You can overlap blending and they will be blended in order.  The lower numbered buttons are drawn before the higher numbered ones.  So button 0 is drawn before button 5.

This option has no effect on button style 11 (sysmenu)

 Alpha = {0 - 255}, where 255 is normal and 0 is invisible.  All values between are different amounts to blend.

You can also specify the operation to use when combining the image

 AlphaOp = See Table Below
 
 

Operation Code

What it does

0

Simple Alpha Blend.  This uses the Alpha value to work out the blending

1

As above but the image is flipped

3

Darken.  This uses the darkest pixel from the images

4

Lighten.  This uses the lightest pixel from the images

5

Multiply.  This multiplies the images

6

Screen.

7

Difference.  The result is the difference between the 2 images.

8

Simple Transparency

9

Blur.  Alpha = the amount.  higher value = greater blur.

10

Graduated Alpha Blend

11

Slight blend horizontally

These operations are just like the ones you would find in a graphics package.  The performance is not bad on a typical system and it may be that in the future these operations are made faster.  If you would like any other per-pixel effects then please e-mail Neil@stardock.com with the algorithm for the operation and I will try to add it to a future release.

Most of the above operations would be used by a titlebar dll plugin as it is able to modify it's own look at runtime and so cannot have the operations carried out in a image package.

WindowBlinds also includes a dll plugin interface for buttons. 

Basically this allows a programmer to design their own items to be added to titlebars.  These could be clocks, animated buttons, almost anything!

The latest C SDK's can be downloaded from www.windowblinds.net. 

 DllName = the dll to use. Again relative to the WindowBlinds directory

The following have been added to help you size your new items

 Width = Width in pixels of the item
 Height = Height in pixels of the item

These values override the dimensions of the bitmap specified in ButtonImage.  It is advised not to have a ButtonImage line as it will just waste memory.  Use the Width & Height lines instead.

crzywin.zip contains a demo personality which uses the dll interface.  Plugin.dll is a clock.  Crzywin.uis contains a section called clock which holds the parameters that can be used to configure the clock module.

Please note that the crzywin personality (called 'Tech Demo for Win98') makes extensive use of alpha blending, and the clock module is running in the fade mode.  So it will fade in & out (using more CPU than in really needs)

crzywin.zip is not included in the WindowBlinds distribution due to size limitations.  It is included in the titlebar plugin sdk on http://www.windowblinds.net/uis/

Now for sound effects. 

 InSound = [Sound to play when a button is pressed in]

 OutSound = [Sound to play when a button is released]
 


WindowBlinds  supports bitmaps to replace the standard buttons, checkboxes, and radio buttons too.

[Buttons]

This is the checkbox bitmaps file. 

 CheckButton

This is the radio buttons bitmaps file.  If this is not specified then the checkbutton bitmap use used instead

 RadioButton

This is the button bitmaps

 Bitmap =

And the edge sizes for the buttons.  These edges are not stretched. 

 TopHeight = [Height of the top border]
 BottomHeight = [Height of bottom border]
 LeftWidth = [Width of the left border]
 RightWidth = [Width of the right border]

- Standard buttons

Button states in bitmaps are

1) Normal
2) Pressed
3) Disabled
4) Focus
5) Default

- Check box buttons

Checkbox states in bitmaps

1) Normal
2) Selected
3) Greyed non selected
4) Greyed selected

WindowBlinds has the capability to assign bitmaps to the taskbar. 

However the bitmap MUST be called TASK.BMP, but it can be in your directory.  So TaskImg = abc\fred.bmp will not work for a personality called abc, but TaskImg = abc\task.bmp will.

[TaskBar]

 TaskImg = image file (again relative to the WB directory)
 

WindowBlinds has the ability to include colour schemes in the UIS file.  As the user has the option NOT to apply the colours, you should still include the other colour definitions in the personality section.

[Colours]

If you want to leave some colours as they are, then just do not include the line for the colour to leave as it is.

The format of the lines is RRRGGGBBB

ActiveTitle=100 174 152
Background=0 0 128
Hilight=67 67 67
HilightText=143 174 165
TitleText=46 80 70
Window=173 194 185
WindowText=0 0 0
Scrollbar=143 174 165
InactiveTitle=143 174 165
Menu=143 175 166
WindowFrame=67 67 67
MenuText=0 0 0
ActiveBorder=67 67 67 
InactiveBorder=67 67 67 
AppWorkspace=143 174 165
ButtonFace=143 174 165
ButtonShadow=77 93 88
GrayText=103 128 118
ButtonText=0 0 0
InactiveTitleText=67 67 67
ButtonHilight=30 30 30
ButtonDkShadow=130 158 150
ButtonLight=130 158 150
InfoText=0 0 0
InfoWindow=100 174 152
 

WindowBlinds 1.06 UIS2 additions

[ToolBars]

You can specify a bitmap to be used for toolbar backgrounds.

This is the bitmap file

 Image =

And the edge sizes for the buttons.  These edges are not stretched. 

 TopHeight = [Height of the top border]
 BottomHeight = [Height of bottom border]
 LeftWidth = [Width of the left border]
 RightWidth = [Width of the right border]

Button states in bitmaps are

1) Normal
2) Pressed
3) Disabled
4) Focus
5) Default

Tab Skinning 

To skin tabs, a new section has to be added.  This is the [Tabs] section.

The basic idea is similar to that of skinning buttons.

You need 2 images for skinning tabs.  The 1st is in the same format as the button images (I.e. you could take a button image file and it would work) and the 2nd is identical to the menu borders bitmap.

You can specify the images as follows

Image = image file for 'tab' section
Border = image file for frame section

As with buttons, you can specify what not to stretch for the tab section.

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 
 

TaskBar skinning

The previous method of skinning the taskbar is NOT supported any more.

Instead the new more flexible system is used.

If the [Taskbar] section is missing, WindowBlinds will use the button bitmap for the taskbar items.  In some skins this will be a good solution and you will not need to spend any time making any images.  If your buttons look odd for taskbar images, or you want to use a different image then you need to add the section below

The image file is again in the same format as the button image, though only the non pressed, and pressed images are currently used.  However do not assume the other images will not be used in later versions of WindowBlinds.

[Taskbar]

Image = image file to use

As with buttons, you can specify what not to stretch for the taskbar.

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 

Also see the additions later in this document regarding buttons, toolbar buttons etc
 

TitleBar text effects
You can now add special effects to titlebar text to enhance your skins look.  Currently 2 extra effects have been implemented.  These are shadows and outline.

To turn these on, you use the following attribute to the new [Text] section

Use3DText = 0 (normal text), 1 (Shadow), 2 (Outlined)

You can set the colour of the shadow (or outline) by using the following 3 lines

ShadowTextR = 
ShadowTextG =
ShadowTextB =

If you do not want the effect to occur on the inactive titlebar text, then use the following line (This line is for outlined text also)

NoShadowInactiveText = 1

For shadows, you can set the offset value.  By default this is set to 1, but you can set any number of pixels (Negative values are also supported)

ShadowOffset = 
 

Menubar changes
You can now set the middle section of a menubar to tile instead of the old stretch method.  This was added at the request of some skin authors.

Simply add the following to the [Personality] section

TileMenu = 1
 

Text background visibility options
You can now set the visibility of the text background.  It accepts all the normal visibility options.

These attributes are added to the [Personality] section

TextBackVisibility = 
TextBackVisibility1 = 
TextBackVisibility2 = 
TextBackVisibility3 =

...

TextBackVisibility9 =
 

New Visibility options for Buttons
Some new button visibility codes have been added to support new features

One new attribute has been added to buttons to allow then to be linked to others. 

29 = Show if windowtext exists (i.e. > 0 chars long)
30 = Reverse of above

31 = Show button when mouse is over the button specified in the LinkedTo line
32 = Show button when button specified in the LinkedTo line is pressed in
33 = Show button when mouse is over the button specified in the LinkedTo line OR the button is pressed in

The LinkedTo attribute can also be used for the next ability

40 = Show button when the button specified in the LinkedTo line is toggled on.  This requires a button to have the toggle button action code
 

New button action codes
40 = Make this button a toggle button (for use with visibility 40 buttons - This button would not have visibility 40!)
 

Another change to button action codes, is to Code 5 (execute app)

If you now put an & in the front of the command line string, then WB will use the text you put after it as a special code and will lookup that value in the wbuser.ini file in the WindowBlinds dir.

So if you defined your button as

[Button1]
Action = 5
Command = &Mail

Then if the user has a wbuser.ini file containing the following...

[Programs]
&Mail = msimn.exe

Then WB will run msimn.exe instead.  This allows skins to have buttons defined to run certain apps (say an image editor app) but the user sets what app it loads.  You can use anything after the &sign, but the following are recommended as a standard.

&Editor = Text Editor
&WP = Word Processor
&Spread = SpreadSheet app
&Pim = Pim app
&Web = Web browser
&Mail = Mail app
&News = News app
&Paint = Image editor
 

Start Button skinning
WindowBlinds now has the ability to skin the start button.  If this section is missing, WindowBlinds will use the image used for normal buttons.

Unlike normal buttons, this image is simply stretched.  There are no border settings as the Start button is unlikely to change in size.  The image format as the same as normal buttons

[StartButton]
Image = image file (again relative to the WB dir)
 
 

New Button / Toolbar button etc features
WindowBlinds now allows parts of buttons to be transparent.  Simply set the bits to be transparent = RGB(255,0,255) and add the following line to the section relating to that item (I.e. [Buttons] [Toolbar] [TaskBar] etc)

Trans = 1

You can also now set the middle section of a button to tile rather than stretch.  The border parts are done as normal.

Tile = 1
 

Progress bar skinning support
You can now set a skin for progress bars too.  The form is similar to that of buttons and toolbars, but the image file only has 2 images in it.

The background of the progress bar comes first, followed by the part which is used as the 'bar'

[Progress]

First define the bitmap

Bitmap = source image file

Then you have the usual settings for defining the border

TopHeight = 1
BottomHeight = 3
LeftWidth = 1
RightWidth = 2

Then you can support transparency or not

Trans = 1  (Default = 0)

The parts can be tiled or not tiled.  To turn on support add the following line

Tile = 1  (Default = 0)

If you want the back and the bar to tile, then set TileMode = 0

If you want the background to stretch and the bar to tile, then set TileMode = 1

If you want the background to tile, but the bar to stretch then set TileMode = 2

You can also set the alpha value for the bar.  Setting this will make the bar semi transparent to what is under it (I.e. the background image)

Alpha  = 0-255   (Off = 0)

 

WindowBlinds 1.08 UIS2 additions

Firstly the 1.08 UIS2 engine supports mouseovers on normal buttons (OK, Cancel etc)

This can be enabled by adding the following line to the [Buttons] section

MouseOver = 1
 

The other big change is the support of scrollbars

The main part of the format is stored in the Scrollbar section. 
 

[Scrollbar]
This is the image file for the up, down, left & right buttons
They are stored as Normal, pressed, disabled and mouseover
So 4 x 4 (LEFT, RIGHT, UP, DOWN) 
+ 6 images for the scrollbars to put in the middle
+ 1 image for the bit between 2 scrollbars
So first is horizontal and 2nd is vertical

These contain the usual normal, pressed and mouseover images

Could be used as a 'DOT' on the scrollbar
This does NOT have different states.
So there are 23 images of the same size in this file.
Suggested size is 16x16 for each image as this seems to be the normal windows dimensions

Image = MacPC\macSB.bmp
 

This line tells WB to enable or disable mouseovers
Right now they are not implemented, but they will be in the near future

MouseOver = 0

If you want the base image to appear pressed when any part of the scrollbar is pressed then the following attribute is used

BasePress = 2

if you want BOTH scrollbars to have their base pressed when either has a part pressed then use

BasePress = 1

If you use the dot images and want transparency in them then the following attribute should be used

Trans = 1
 

; Horizontal scrollbars
[HorzScroll]

We need some images for the base part of the scrollbar.  This contains 4 images as follows

 inactive base, pressed base, disabled base, mouseover base

Currently the mouseover image is not used.

Image = MacPC\macHB.bmp

These images can have the usual edges etc (like buttons..)

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 

Tile = 0 = no, 1 = yes

[HorzScrollThumb]

Then we have images for the bar part.  These are inactive bar, pressed bar and mousover bar

Image = MacPC\macBar.bmp

This has its own border settings

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 

Tile = 0 = no, 1 = yes

It also supports additional attributes

Alpha = (alpha value - 0 -255) 255 = VISIBLE, 0 = INVISIBLE

If you use alpha blending then the following attribute lets you control how it works.

AlphaMode = 0 (All bar images are blended) 1 (Only the inactive image is blended)

Finally we have an attribute for showing the dot image or not on the middle of the bar

ShowDot

; Vertical scrollbars
[VertScroll]

We need some images for the base part of the scrollbar.  This contains 4 images as follows

 inactive base, pressed base, disabled base, mouseover base

Currently the mouseover image is not used.

Image = MacPC\macHB.bmp

These images can have the usual edges etc (like buttons..)

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 

Tile = 0 = no, 1 = yes

[VertScrollThumb]

Then we have images for the bar part.  These are inactive bar, pressed bar and mouseover bar

Image = MacPC\macBar.bmp

This has its own border settings

TopHeight = [Height of the top border] 
BottomHeight = [Height of bottom border] 
LeftWidth = [Width of the left border] 
RightWidth = [Width of the right border] 

Tile = 0 = no, 1 = yes
 

It also supports additional attributes

Alpha = (alpha value - 0 -255) 255 = VISIBLE, 0 = INVISIBLE

If you use alpha blending then the following attribute lets you control how it works.

AlphaMode = 0 (All bar images are blended) 1 (Only the inactive image is blended)

Finally we have an attribute for showing the dot image or not on the middle of the bar

ShowDot

; Menubars

[menubar]
UseCustomBackground =
1
Image = macpc\button.bmp 
Trans = 1 (contains transparency, = 0 if not)

The order of the images is:

Active window, non pressed
Active window, pressed
Reserved
Reserved
Inactive window (non pressed obviously as it cannot be pressed in this mode)



The .UIS file format is 1998-2000 Stardock.net, Inc.
All rights reserved