Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

csSkin Class Reference

This class defines the interface for a container of skins. More...

#include <csskin.h>

Inheritance diagram for csSkin:

csVector csBasicVector List of all members.

Public Methods

 csSkin ()
 Create the skin repository object.

virtual ~csSkin ()
 Destroy all skins in this repository.

virtual bool FreeItem (csSome Item)
 Free a skin from this repository.

virtual int CompareKey (csSome Item, csConstSome Key, int) const
 Compare a item from this array with some key.

virtual int Compare (csSome Item1, csSome Item2, int) const
 Compare two items from this array.

csSkinSliceGet (int iIndex)
 Get a skin from this array.

void Apply (csComponent *iComp)
 Apply this skin to some component and all components inserted into it.

virtual void Initialize (csApp *iApp)
 Initialize all skin slices with given application object.

virtual void Deinitialize ()
 Free any resources allocated by the skin slices.

const char* GetConfigStr (const char *iSection, const char *iKey, const char *iDefault)
 Utility function: get a skin-specific string from csws config file.

bool GetConfigYesNo (const char *iSection, const char *iKey, bool iDefault)
 Same but get a boolean value.

void Load (csBackground &oBack, const char *iSection, const char *iPrefix)
 Utility function: read background from given section with given key prefix.


Public Attributes

const char* Prefix
 This is the prefix for section names in CSWS' configuration file.


Detailed Description

This class defines the interface for a container of skins.

Most of the functionality you will want is already here; the only method that you will sometimes want to override is the constructor and the Initialize() method. In constructor you should assign the appropiate value to the "Prefix" member variable which is used to find the sections that refer to the respective theme. Initialize() used to query all kinds of resources from the application object when a skin is initialized.

Generally there should be only one object of this class, which is stored into the csApp object. However, you can use a skin for some component and all his children if you wish, but you will have to store the respective skin container somewhere inside that component (and override his GetSkin() method so that child components can use the skin when initialized).

The repository contains a number of objects that are responsible for the exterior of the respective components (and which are called `skins'). These objects are identified by a text string. After you change the skin repository, you should call the Apply() method of the repository so that the given objects and all components which are inserted into that component (note that this does NOT have to do anything with class hierarchy!) will receive the cscmdSkinChanged broadcast.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000