Muzys is fully skinnable, and these skins are 100% platform-independent.
This means that if you make a skin on Windows, it will work on MacOS too ! And vice versa !
Just as with your Muzys projects ;-)
The best way to start creating a new skin is by duplicating an existing skin folder, and start changing the bitmaps with a painting program like Photoshop or Paint Shop Pro etc ...
The Basics
Muzys' skins resides in your Muzys/Skins subfolder.
Each skin is put into a seperate subfolder, and must contain a "Preview.Bmp" of 320x240 pixels, which is used as a preview for when the user is choosing a skin (via System menu : Skins), and an "Interface.Set" file which contains this skins' Layout assignments. Layouts are explained below.
Some of these bitmaps have a "mask" on top, which is used to blend the bitmap with the background. More on such masks below.
Note that all bitmaps must have even widths. And if a bitmap may vary in size, it is best to make them as small as possible so not to spoil the users' memory and cpu resources.
Now lets go into the details ...
The Background
The very background in Muzys comes from "Backgroundtexture.Bmp". Changing this bitmap changes the Muzys background. It's as simple as that.
The Icons
The icon files are named "Icon___.Bmp", and they have this graphical format :
An icon bitmap has 1 mask on top, and some states below. The above example has, like most icons, 2 states.
An icon comes in 3 different sizes :
The Pictures
The bitmaps listed below don't have many special properties.
Most of them have the typical Muzys graphical format : a mask on top, and some states below.
Texture bitmaps
If a bitmap "Texture0.Bmp" to "Texture15.Bmp" exists, it's loaded on startup.
They can be used on certain places as an alternative to a solid color.
The Templates
A Template is a combination of a Bitmap File (.Bmp) and a Setup File (.Set).
The bitmap contains the graphical info, and the setup file lists a number of 'fields' within that bitmap. Every field is a rectangular region in the bitmap that has a special purpose, and it is defined by the following line in the .Set file :
field 'name':rect=x,y,w,h;[forecolor=r,g,b;][backcolor=r,g,b;][xinfo=x;]
(note that the [ and ] characters are just to indicate that that parameter is optional. They are not really used in the .Set file)
Here is the explanation :
If you've started editing a Muzys Skin from an existing one - which is recommended - you don't have to worry about these template fields as long as you don't change field positions or sizes. Otherwise you have to update the relevant .Set file !
Muzys 2.0 uses the following 3 Templates, with their fields listed :
The Layout system
A Layout is also a combination of a Bitmap File (.Bmp) and a Setup File (.Set), but it is used in another way.
The bitmap contains the graphical info, and the setup file contains a number of parameters telling Muzys how to use that bitmap. All possible parameters are listed below.
But let me first explain you the basic principle :
A Layout is meant to be stretched / shrinked to a new size. That's why we divide the bitmap in 9 pieces.
The 4 corners are never stretched, and stay always the same.
The top and bottom sections are only stretched horizontally.
The left and right sections are only stretched vertically.
And the body section can be stretched in both directions.
For now, stretching is done by repeating.
Beside this cut-up, each layout can have some margins for its contents.
Lets say we have a layout for a button.
Though, for example, the top-, left-, bottom- and right-sections may be, for example, 32 pixels,
we may not want the text in that button to be that far from the borders.
That's why we can define the margins, which are quite independent from the above described sections.
To summarize :
* The top-, left-, bottom- and right-sections are used to stretch / shrink a bitmap.
* The top-, left-, bottom- and right-margins are used to place the contents.
A Layout can contain different 'states'.
For example, a layout for a button needs 2 states : one for the Off state, and 1 for the On state.
These different states are put vertically, thus each below the other.
Most of the times, a layout bitmap has also a mask, which is a full RGB mask for the layout.
Such a mask is used to tell where the background should come through, and were the layout should come through.
But since a mask can use full RGB values, anything in between is possible too !
But please note already that these 'in between' values cost more calculation time, and thus slow down your skin !
Muzys automatically detects what kind of mask you use, and that can be :
Now here are the possible parameters of a Layout.Set :
Only the statecount parameter MUST be given.
Other parameters may be omitted, since Muzys will calculate good defaults for them :
A last thing to tell is how we can use these layouts to make a skin.
The answer is in the "Interface.Set" file.
This file contains all the names of the variables that Muzys uses when building the Grafical User Interface.
But don't edit this file while Muzys is running and your skin is loaded.
Instead, use [Control]+[Alternate]+[F4].
This will call a 'hidden' menu from which you can choose "Start editing layouts ...".
From then on, where ever you [Control]+click on a GUI object, a special window comes up where you can edit the
layout-assignments for that object.
If you don't find the right parameter, press [Control]+[Alternate]+[F4] and choose "Edit InterFace Settings"
which really lists all possible parameters (cfr. "Interface.Set").
When editing is done, you may press [Control]+[Alternate]+[F4] and choose "Stop !", but this is not necessary. Your skin edits are automatically saved when you change skins (via System menu:Skins), or quit Muzys.
The Font
Muzys uses a private font format because of platform independency, and fixed font heights.
The are 3 fonts :
Additional notes