|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This information is provided only for use by personality authors to make WindowBlinds personalities. All other uses of this information are strictly prohibited. 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 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 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]
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]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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 From version 0.86 onwards, 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}
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)
WindowBlinds version 0.86 introduces the long awaited animation facility. The following settings are for this option. 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 1So the inactive image is the last in the file. For vertical edges, the inactive frame is the right-most image. 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
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]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 = From 0.86 onwards, 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. MaxBorderCutLeft = MaxBorderCutTop = MaxBorderCutRight = MaxBorderCutBottom
=
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
* These styles do not permit the button to be pressed in
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} 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. You currently cannot assign a sound to the Close button. This is due to that option causing sound drivers to hang or crash. 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 |