MyAES skinning can be simple or complex, now available in seperate skin types: new (Eric Reboux), original (Zorro). The original skinning gives a traditional window frame theme, including scroll bars, and bottom right sizer. As of v0.92 Olivier Landemarre's MyAES now provides a window frame style somewhat more flexible, allowing for example, a BeOS style window frame, also including scroll bars, and this time with multiple sizers.
(ERS windfram - by Eric Reboux)
(zPro windfram - by Paul Wratt)
Zorro windfram:
Zorro's windfram is fairly straight forward, works well for porting most IceWM and Fluxbox/Blackbox themes. There are two drawbacks to
this though, 1) there is no mouse over for the widgets, and 2) the scrollbars are part of the windfram textures. I will be releasing various
scrollbar styles to help make skinning easier. There are also some other tricks which need to be taken into account when designing a skin for this
windfram type. The bonus of this windfram is that buttons can be placed at various positions.
There are no bottom left corner textures, and when the window is not resizable, no bottom right corner
textures either. This makes flat color textures or ones that are easily tiled ok, but rounded or gradients wont look perfect. Also the right border
without scrollbars, uses the left border texture, which again can look less than perfect with certain themes. The last thing is that although title bar
buttons positions can be padded (x_space=), this also affects the spacing, which is undesirable in most situations (smal buttons should be ok).
Because they must be square images, and they align directly to the right edge, there is a workaround for this outlined below which will give the correct
results (buttons padded in from the right edge, see: Tips & Tricks). Also note that y_space= affects both title text and title buttons.
OK, so know you know this, and want to get down to business. Zorro's windfram uses JPEG images. If you use the Baseline algorithm (Progressive
or Huffman may also work, untested) with 1x1,1x1,1x1 (best quality) subsampling, and a high image quality setting (90% or higher), then you will end up
with image textures that look great in low resolutions, and on digital or LCD displays. The textures will still be under 1Kb in size, except for the
title and menu images. This is basically lossless compression for JPEG images, but you can get a bit of compression out of it, especially
if you are judicious with color use and placement.
The following lists the files require for a full theme. There are 32 images that make up a window theme for Zorro's windfram (not including the
menu or desk images) made up of two lots of 16 images. *_1.jpg for currently active window and *_2.jpg for unfocused
windows:
closer_1.jpg - close
dn_arw_1.jpg - scroll down
full_1.jpg - fuller (max)
hbar_1.jpg - bottom edge without scrollbars
hscrll_1.jpg - bottom edge with scrollbar background
hslide_1.jpg - bottom edge with slider
info_1.jpg - info area (status)
lf_arw_1.jpg - scroll left
rt_arw_1.jpg - scroll right
sizer_1.jpg - sizer
small_1.jpg - iconize
title_1.jpg - title bar
up_arw_1.jpg - scroll up
vbar_1.jpg - left and right edge without scrollbars
vscrll_1.jpg - right edge with scrollbar background
vslide_1.jpg - right edge with slider
desk.jpg - destop background
menu.jpg - menu bar background
dwidgets.inf - windfram library info file
dwidgets.ldg - windfram as LDG library
skin.cnf - the actual config file
That makes a total of 37 files (minimum) for a complete theme. For an explanation of the config file, have a look here. If you grab the Milk theme by Zorro, and my EcoGreen theme, you can compare configs to see how
things are done. When designing skins and testing them with Zorro's windfram, if there is no title image, or scroll images, (ie any image that gets sliced and diced), the theme will fail to load.
Also note that if there is no defualt folder in the skins directory, but there are others, you will be forced to select a theme at boot time. If there is only one directory in the skin folder, even if that folder is not called defualt, it will be used. desk.jpg in the skin folder is optional, the desktop replacement will supply color and pattern. Desktop replacement must use color:white and pattern:solid for desk.jpg to be seen. desk.jpg is tiled, with no resize done (squash or stretch).
Folder names in the skin directory should be 8 characters max. dwidgets.inf contain the text present in the windfram chooser list. Lastly, if there are no skin folders, or the LDG library (windfram) fails to load, the internal windfram will be used, as of v0.93, a GEM like one.
Color Values:
The config allows certain colors to be defined, however the coloring is different
for the menu (see here). For title and info text *_color1 is the first color drawn,
*_color2 is then drawn on top (offset down & left by 1px). Their numbering matches the current palette, so if you change any of the first 16
colors in the palette, those described below will not be correct. The default values are as follows:
0 - white
1 - black
2 - red
3 - green
4 - blue
5 - teal (cyan)
6 - yellow
7 - magneta
8 - light grey
9 - dark grey
10 - dark red
11 - dark green
12 - dark blue
13 - dark teal
14 - dark yellow
15 - purple (dark magenta)
16 - black (near black)
17 - dark blue (navy blue)
18 - dark blue (near dark blue)
19+ see common-palette (right)
Widget Placement:
Along with the title text, both the window widgets, and scrollbar buttons have multiple placement styles, although this is different per
item.
title (title_x_pos=n):
0 - left
1 - centered
2 - right
3 - none
close (closer_pos=n):
1 - far right
2 - far left
x - far left
fuller/max (fuller_pos=n):
1 - far right (left of close if they==1)
2 - far left (right of close if they==2)
x - far left (right of close if they==2)
iconize (smaller_pos=n):
1 - far right (left of fuller & close if they==1)
2 - far left (right of fuller & close if they==2)
x - far left (right of fuller & close if they==2)
scroll up (up_arrow_pos=n):
1 - top on bottom
2 - top on top
3 - bottom on top
x - top on bottom
scroll down (down_arrow_pos=n):
1 - top on top
2 - top on bottom
3 - bottom on bottom
x - top on top
scroll left (left_arrow_pos=n):
0 - left on left
1 - right on left
2 - left on right
x - left on right
scroll right (right_arrow_pos=n):
0 - left on right
1 - right on right
2 - left on left
x - left on left
Tips & Tricks with Zorro's windfram Themes:
The first tip is how to get the right hand button (close) to sit properly with a right hand border (or a left hand one). Note that this
effectively hard codes the button positions, that is, the postion of buttons can not be changed without also changing the image. However the workaround can be done easily, simply add the right edge to the image, and pad the bottom of the image so it is square, making sure that any visual parts of the
title bar (under the button) are also included in the image. The excess can be any color, as the rest of the image will be clipped, rendered underneath
the info image or actual window contents. The rest of the buttons will be aligned next to that one.
Another trick is, if you dont mind plain backgrounds, either image or desktop as a solid color, you can fake transparent title bar edges. Note that
overlapping windows and desktop icons may look a bit wierd with a skin done this way, but they do look gorgious on large screen desktops. An extension
of this trick is to add window shadows and/or rounded corners to the theme textures, again it will look great on large screen desktops, but will be
restricted to certain background types or colors.
A word on textures. If they are too small (1px or 2px) they will take longer to tile. The larger they are, the more memory they will take up. By
examining the Milk and EcoGreen themes, you can see how to achieve a good balance. Also a note about texture tiling with JPEG images. This can be an
issue, and took many hours of playing around to get the unfocused info to tile correctly in the EcoGreen theme, without artifacts or tearing.
Design Tips:
A word on skin design. If you are careful, use specific colors, especially from the first 16 colors, then it is possible to do complete theme
recolors, just by changing the palette. You need to be careful when creating graphics with palettes (4,16,256 colors), as they may not look correct when
viewed with the a standard machine (read: standard palette). Keep a eye out for a chocolate theme using the this palette technique.
The default style in Fluxbox, Openbox, and Blackbox themes, for the bottom of the window, lends itself to minimilist scroll bars, especially due to
the fact that they are bewteen 1px and 4px wide, and flat in style, making them ideal for a near perfect finish, and a good basis for shadowing.