|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
You should read this entire document before designing your own personality and you may like to look at the UIS files which come with other personalities to get a general idea of how everything works |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [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
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]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [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 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 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]
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]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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 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
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
=
InactiveTextR
=
MenuTextR =
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Now we have the bitmaps
for the window borders and titlebar. Again they are relative to the
WindowBlinds install directory.
Top = yellow\top.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
RightTopHeight
= 6
BottomTopHeight
= 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)
Later versions will support animation of active titlebar images. So the following bits should be added for future compatibility AniRate = 0 The number of frames in the border images (This is 2 as its the inactive + active state). YOU MUST make these values = 2. TopFrame = 2
New for 0.40 is the ability to assign a bitmap to place behind the text. This is split into 2 (active = top half, inactive = bottom half). In version 0.63 and later, this feature works for left, centred & right aligned text. textBack = MacPC\macback.bmp Also new in version 0.63 is the ability to 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
New for version 0.41 is the ability to specify a background wallpaper for the personality. The user is asked if they wish to use it when they choose the personality. 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} From 0.45 onwards you can specify some bitmaps to use for bitmap backgrounds etc ExplorerBmp = DialogBmp = MDIBmp = For 0.85 and later, you can specify a bitmap to use for the menu borders. Only the 3 pixel wide border around the edge of the bitmap is used. menuBorders
=
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Now we get onto the titlebar
buttons
The images for a button are all stored one file. The states are 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [Button#]
# = Number of the button. So [Button4] is the 5th button. We start from 0 Align = See
table below
* These styles do not permit the button to be pressed in
Action = See
table below
New in 0.85 is 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
New for 0.63 is the ability to 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
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. New for 0.77 0.77 introduces the 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 SDK's can be downloaded from www.windowblinds.net. The C SDK is included in this distribution and is called UIS2Plug.zip. Look for it in your WindowBlinds directory. 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
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 www.windowblinds.net Now for sound effects InSound = [Sound to play when a button is pressed in] OutSound = [Sound
to play when a button is released]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WindowBlinds 0.39g and later
supports bitmaps to replace the standard buttons and checkboxes.
0.45 introduces bitmaps for 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]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WindowBlinds 0.50 introduces
the capability to assign bitmaps to the taskbar. Due to a bug in
the public release of 0.50 this option did not work as intended.
This now works properly.
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)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The .UIS file format is ©1998-9 Neil Banfield & Stardock Systems, Inc |