Overrides module's gravity.
AfterStep has been almost entirely rewritten in this new
incarnation. Here is the short list of new architectural changes:
1.1. New high performance and high quality image handling
engine has been developed to fulfill GUI needs. It includes different
image transformations, such as scaling, tiling, cropping, blurring,
blending of arbitrary number of layers, in-memory image compression,
support for 12 different file formats, including its own parser/writer
of XPM files, capable of achieving much better performance then default
libXpm. Supported image formats are :
XPM, PNG, JPEG, XCF(GIMP image format), PPM, PNM, BMP, ICO,
CUR, GIF, TIFF, and XML scripts. Where XML scripts allow for user to
create script of transformations to be performed on the image at the
time when it gets loaded./para> libAfterImage also provides support
for TTF fonts ( using libfreetype ) and smoothed standard X raster
fonts.
1.2. Window hints handling has been rewriten and reorganized,
and most of the Extended WM specs has been incorporated, as well, as
better support for Motif, ICCCM and old GNOME hints has been
implemented.
1.3. All the GUI rendering code has been aggregated into
libAfterStep and now all the GUI elements are rendered using consistent
approach in every module and every part of the AfterStep proper. From
now on interface is build from so called TBars. TBar is rectangular area
that may be focused(hilited) or unfocused and pressed or unpressed. 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 upto 256 tiles, each residing on one of the
cells in 16x16 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.
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".
1.4. Due to the fact that AfterStep is using compression to
store images in memory - there is no need to have separate root
background handler, and so asetroot has been discontinued and afterstep
proper now does all the root background loading. You could simply
copy-and-paste your asteroot config into your look file. This has an
added advantage of simplifing theme support for root backgrounds.
1.5. Significant work has been done to create libAfterConf
which provides easy means for reading configuration options, and
facilitates implementation of any configuration tool.
1.6. Some work has been done to improve support for themes.
AfterStep proper and modules now load configuration files is this order
:
#1 - base config; #2 - look, feel, menu, database, autoexec
and module specific config; #3 - theme file; #4 - theme override
file;
Theme override file is needed so that user may have a list of
critical options that he/she does not want to be changed by any theme.
What is missing here is a comprehensive theme building tool.
1.7. AfterStep now make extensive use of X shaped extensions (
where available ) Everything could be shaped now - titlebars, Pager,
Wharf, etc. To make some element shaped - MyStyle with BackPixmap type
125 or 126 should be used.
1.8. Menus are now treated same as regular windows. They could
be configured in database file using preset Style "ASMenu" to
have different titlebar buttons, frame decorations, stickiness, etc.
MenuPinOn has been changed to be just another titlebar button, with
PinMenu function assigned to it.
1.9. AfterStep no longer uses fixed scheme of 5 titlebar
buttons on each side, and order of buttons could be configured in look.
There is still limitation to have no more then 10 buttons total.