Module CS/libs/csws/skins/

back to main page

Summary Period: 2000-10-10 to 2000-10-12

Modules

[root]/CS/libs/csws/skins
     default (6 files, 1087 lines)

Lines Of Code


Total Lines Of Code: 39 (2003-07-11 20:29)

Authors

Author Changes Lines of code Lines per change
andyz 2 (100.0%) 40 (100.0%) 20.0

Most Recent Commits

andyz 2000-10-12 08:23

-*- Renamed csPixmap::DrawTiledShifted into DrawTiled. There is no need to use
long clumsy names like DrawARoundBoxWithALittleRedDotInLeftUpperCorner ().

-*- I have extended iGraphics3D::DrawPixmap() method with one argument -
uint8 alpha, and also enhanced the function a lot in software renderer.
Now if the tx,ty,tw,th rectangle exceeds texture size, texture is tiled
across the screen rectangle. The alpha is from 0 to 255 and defines the
transparency of the pixmap, 0 being opaque and 255 full transparency.

-*- Semi-transparent windows in CSWS! (cswstest -> Theme button). This is a
bit buggy though because sometimes the window gets repainted twice, with
alpha-blended textures this results in visual artifacts :-( Will take
a look at this later.

Both windows and dialogs are allowed to be transparent now. Also simple
non-transparent textured backgrounds (which are faster of course) are
allowed for both windows and dialogs. Note that if you insert a dialog
into a window, and set both to semi-transparent, their textures will
overlap, and thus you will see the desktop (and the windows behind)
through *two* transparent textures. In general it is recommended that
if you insert a semi-transparent dialog into a window, you set that
window's alpha to 255 (e.g. fully transparent).

-*- Removed the NULL_SOFTWARE_2D_DRIVER macros from null3d renderer.
The NULL3D renderer is not a NULL renderer, it is a *NULL 3D* renderer,
that is, it does not have any 3D primitives implemented (e.g. polygons) -
everything other is like in the "normal" renderer, thus it uses same
default canvas like the normal renderer. NULL3D renderer is mainly an
alternative renderer for those CSWS applications that do not need any
3D drawing. Now it supports semi-transparent and tiled textures as well.

-*- Fixed other renderers in order to be able to compile. I believe tiling
will work with at least the OpenGL driver without any change; alpha
is not implemented yet but its easy to implement.

1 lines of code changed in:

andyz 2000-10-10 09:32

-*- Fixed makedep so that it will work unde Unix (well, at least under Linux :-)
Added autodetection of system include directories to unixconf.sh.
You will have to re-configure in order "make depend" to work.
Added a new AWK script bin/includes.awk which parses the output of
"gcc -H" and outputs a line like this:

MAKEDEP.INCLUDES=-I/usr/include;/usr/local/include

Maybe I'll enable later this script for mingw32 port as well, since
mingw32 needs these includes too; currently you have to specify them
as "C_INCLUDE_PATH" environment variable.

-*- Changed Unix makefile so that makedep is used now on Unix for dependency
generation. This is about five times faster (a random evaluation though :-)

-*- Re-implemented former `themes' from scratch. It was a nice try, but did not
fit well with CSWS concept; besides they involved too much overhead.

They are called now "skins". A "skin" is a collection of "skin slices",
every "slice" is responsible for a certain class of components, e.g.
buttons, titlebars and so on. When a component is created or when the
skin is changed the component queries the skin for the slice it wants
and remembers it; then it uses it for miscelaneous operations such as
drawing and so on.

There are three skinnable components right now: buttons, windows and
dialogs. There is just one (default) scheme right now thus you won't
notice any difference :-) The code for exterior look of these components
is completely separated (and can be replaced by other code, e.g. Motif,
Windoze, OS/2 look (um... the default look is quite close to OS/2
already :-) etc).

-*- Changed CSWS configuration file format. Now it use csIniFile. This is a
preparation so that themes could be easier configured through config
file in future.

-*- Updated CSWS docs so that it can be used to gather basic information about
CSWS. All beginner CSWS users are highly recommended that; I have tried
to respond to the most frequently asked questions on the mailing list
there.

-*- Renamed csApp::InitialSetup() into csApp::Initialize(const char *iConfigName)
for uniformity (all other classes uses Initialize()). I have fixed the
applications in CVS, for applications outside CVS this have to be done
yet. The iConfigName passed is the name of CSWS configuration file
(usually "/csws/csws.cfg"). This allows to create CSWS applications
without having a system configuration file (previously CSWS config
name was read from the [CSWS] section of system config file).

-*- Added the notion of "color schemes". There is a function called
csSetColorScheme() which in fact applies a (tricky) function onto the
entire application palette (in HLS space). There are just too many colors
in all palettes to enumerate them separately; I would prefer some automatic
way to process all colors in the palette; I'm not sure the method that
is currently implemented is flexible enough (I'm going to finish the
"Theme" window in cswstest in order to see schemes in action dynamically).

-*- Fixed a small bug in CSWS that caused transparent windows to leave visible
traces on neightbour's child components. The solution was simple and
elegant - just a single line change! :-) Now you can even drag a window
*below* the transparent window (e.g. try to drag the "CSS_TOPSELECT"
window under the "Theme test" window in cswstest!). This looks cool,
although it will look much better when I will implement support for
alpha backgrounds! :-)

-*- Removed the #ifdef MSC_VER from csapp.cpp. Grrrr.... such things make
me angry.

39 lines of code changed in:


Generated by StatCvs v0.2-dev