MyStyle (1) defines combination of color, font, style, background to be used together

CONFIGURATION OPTIONS

BackColor color

Specifies the background color associated with this style. color is a color definition in one of the color formats supported by AfterStep.

BackColor is also used to calculate bevel colors used to draw a border around a widget.

BackGradient type from to

Specifies that a gradient should be used as a background instead of a solid color. The gradient colors start at from and end at to . from and to are color definition in one of the supported color formats . If gradient includes at least one transparent color ( alpha value set to be below FF ), gradient will be alpha-blended over the root background image. type can be 1, 2, 3, 4, or 5:

1: Wharf-style diagonal gradient 2: Horizontal from top to bottom 3: Horizontal from top/bottom to center 4: Vertical from left to right 5: Vertical from left/right to center 6: Top-Left to Bottom Right diagonal ( same as 1 ) 7: Bottom-Left to Top-Right diagonal 8: Vertical Top to Bottom ( same as 2 ) 9: Horizontal Left to Right ( same as 4 )

BackMultiGradient type offset1 color1 ... offsetN colorN

Specifies that a gradient should be used as a background instead of a solid color. The gradient colors start at color1 and end at colorN . Each color has an offset associated with it. The offset is a number between 0.0 and 1.0, and specifies where in the gradient the colors are to be placed. The colors are in one of the color formats supported by AfterStep. At least two colors must be given. If gradient includes at least one transparent color ( alpha value set to be below FF ), gradient will be alpha-blended over the root background image. The offsets are non-decreasing numbers between 0.0 and 1.0. If the first offset is not 0.0, it will be set to 0.0. If the last offset is not 1.0, it will be set to 1.0. type may be any of the following:

6: Top-Left to Bottom Right diagonal 7: Bottom-Left to Top-Right diagonal 8: Vertical Top to Bottom 9: Horizontal Left to Right

BackPixmap type pixmap_name|color_name

Specifies that a pixmap should be used as a background instead of a solid color. This option has two forms, depending on the value of type :

If type is 125, 126, 127, 128, 130-144, 150-164 - the second parameter, pixmap_name must be the name of an image file which can be found in PixmapPath .

If type is 129 or 149 the root pixmap (desktop background) will be used, and the optional second parameter must be a color with which the root pixmap will be shaded/tinted.

Depending on the value of type AfterStep will render pixmap in many different ways :

125
Image is SCALED to the size of the widget, and its opacity is used to set the shape of the widget/window decoration, achieving non-rectangular window effect.
126
Image is TILED to the size of the widget, and its opacity is used to set the shape of the widget/window decoration, achieving non-rectangular window effect.
127
Image is SCALED to the size of the widget.
128
Image is Tiled to the size of the image.
129
Underlying desktop background is tinted/shaded with the color specified with the second parameter.
130
Underlying desktop background is combined with tiled image, using "allanon" method - taking average of pixel values.
131
Underlying desktop background is alpha-blended with tiled image.
132
Underlying desktop background is tinted using pixel values of the tiled image, as a tint values on per-pixel basis.
133
Each pixel of underlying desktop background has value of tiled image's pixel added to it.
134
Each pixel of underlying desktop background has value of tiled image's pixel subtracted from it.
135
Result consists of pixels representing absolute value of difference between underlying desktop background and tiled image.
136
Underlying desktop background is darkened using luminocity of the tiled image's pixels.
137
Underlying desktop background is lightened using luminocity of the tiled image's pixels.
138
Underlying desktop background is "screened" by the tiled image.
139
Underlying desktop background is "overlayed" by the tiled image.
140
Underlying desktop background's hue is substituted with the hue of the tiled image.
141
Underlying desktop background's saturation is substituted with the saturation of the tiled image.
142
Underlying desktop background's value (in HSV colorspace) is substituted with the value of the tiled image.
143
Underlying desktop background is "colorized" by the tiled image.
144
Underlying desktop background is "dissipated" by the tiled image.
149
Underlying desktop background is tinted/shaded with the color specified with the second parameter. It differs from 129 so that desktop background could be both darkened and brightened. If tint color channel is greater the 7F (127 decimal) - then respective channel of background will be brightened.
150 - 164
Same as 130-144 but specified image is scaled to the size of the widget.

BlurSize

FIXME: add proper description here.

DrawTextBackground [ 0|1 ]

Specifies that the area behind text drawn in this style should be cleared to BackColor . The argument is optional. If the argument is 0, this option is turned off; if it is omitted or is nonzero, the option is turned on.

Font font

Specifies the font associated with this style. font copuld beeither a standard X11 font definition, or a filename of the TrueType font that could be found in FontPath. To specify the size of the TrueType font - use format like that : FontName.ttf-Size.

Example :        Font DefaultSans.ttf-14

ForeColor color

Specifies the text color associated with this style. color is color definition in one of the color formats supported by AfterStep.

Inherit " style_name "

Specifies a MyStyle to inherit options from. Options from style_name will override previously specified options for this style. Inherit is a good way to save memory and network bandwidth if the same BackPixmap is used for several styles, as the pixmap will only be loaded for the inherited style.

MyStyle " style_name "

style_option

~MyStyle

Specifies the beginning of a look style definition. The style can be referred to later by style_name . ~MyStyle ends a look style definition.

Overlay

FIXME: add proper description here.

SliceXEnd val

When used with scalable BackPixmap it will make image sliced instead scaled. Which means that its borders will remain unchanged, but center part will get tiled to fill empty space. SliceXEnd is the left edge of the right border.

SliceXStart val

When used with scalable BackPixmap it will make image sliced instead scaled. Which means that its borders will remain unchanged, but center part will get tiled to fill empty space. SliceXStart is the width of the left border.

SliceYEnd val

When used with scalable BackPixmap it will make image sliced instead scaled. Which means that its borders will remain unchanged, but center part will get tiled to fill empty space. SliceYEnd is the top edge of the bottom border.

SliceYStart val

When used with scalable BackPixmap it will make image sliced instead scaled. Which means that its borders will remain unchanged, but center part will get tiled to fill empty space. SliceYStart is the height of the top border.

TextStyle style

Specifies the text style associated with this style. style can be 0, 1, or 2:

0: normal text 1: embossed 3D text 2: sunken 3D text 3: text has shade above the text 4: text has shade below the text 5: thick embossed 3D text 6: thick sunken 3D text 7: text is outlined with contrasting color on upper edge of a glyph. 8: text is outlined with contrasting color on bottom edge of a glyph. 9: text is outlined with contrasting color all around a glyph.

DESCRIPTION

MyStyle 's are the means to define how widgets (menu items, titlebars, wharf buttons, Pager desktops, etc. ) should be rendered. It defines widget's background (solid color, gradient, textured image and/or semitransparent texture), shape - making widget non-rectangular, text font, text 3D style, widget's border bevel colors.

All the GUI elements are rendered using consistent approach in every module and every part of the AfterStep. Interface is build from so called TBars. TBar is rectangular area that may be focused(hilited) or unfocused and pressed or unpressed. TBAR STRUCTURE Each TBar has the following structure :

- the background of the TBar, which is defined by MyStyle and state of the bar - there are two MyStyles assigned to each TBar - one for focused and one for unfocused state.

- tiles of the TBar. Tiles are smaller features that gets arranged inside the bar according to its size, alignment, position and order. Tiles could be static icons ( cannot be pressed ); blocks of buttons - each having two shapes - pressed and normal; Text labels; Empty space tiles. There could be up to 256 tiles, each residing on one of the cells in 8x8 grid. Several tiles could reside in single cell, in which case they get superimposed on top of each other.

- bevel of the TBar. When TBar is rendered all of its tiles are superimposed on top of its background, and resulting image will have a 3D bevel drawn on it, using colors from same MyStyle as used for background. Bevel could be switched off partially or entirely. Respective configuration options has been added where appropriate. When TBar is pressed - its bevel is inverted. TBAR RENDERING When TBar is rendered all of its elements gets superimposed on top of each other using one of 13 blending methods supported by libAfterImage, with default being simple alphablending. See MyFrame configuration for more details. This is refrred to as "Composition Method".