CopperSpice API  1.9.1
QIconEngine Class Referenceabstract

Provides an abstract base class for QIcon renderers. More...

Inherited by QIconLoaderEngine, QPixmapIconEngine

Classes

class  AvailableSizesArgument
 Structure which represents arguments to the virtual_hook() function More...
 

Public Types

enum  IconEngineHook
 

Public Methods

virtual ~QIconEngine ()
 
virtual QSize actualSize (const QSize &size, QIcon::Mode mode, QIcon::State state)
 
virtual void addFile (const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state)
 
virtual void addPixmap (const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state)
 
virtual QList< QSizeavailableSizes (QIcon::Mode mode=QIcon::Normal, QIcon::State state=QIcon::Off) const
 
virtual QIconEngine * clone () const = 0
 
virtual QString iconName () const
 
virtual QString key () const
 
virtual void paint (QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) = 0
 
virtual QPixmap pixmap (const QSize &size, QIcon::Mode mode, QIcon::State state)
 
virtual bool read (QDataStream &in)
 
virtual void virtual_hook (int id, void *data)
 
virtual bool write (QDataStream &out) const
 

Detailed Description

The QIconEngine class provides an abstract base class for QIcon renderers. An icon engine provides the rendering functions for a QIcon. Each icon has a corresponding icon engine which is responsible for drawing the icon with a requested size, mode and state.

The icon is rendered by the paint() method. The icon can be obtained as a pixmap with the pixmap() method. The default implementation simply uses paint() to render the pixmap. The addPixmap() method can be used to add new pixmaps to the icon engine and is used by QIcon to add specialized custom pixmaps.

The paint(), pixmap(), and addPixmap() methods are all virtual and can therefore be overridden in subclasses of QIconEngine.

See also
QIconEnginePlugin

Member Enumeration Documentation

These enum values are used for virtual_hook() to allow additional queries to icon engine without breaking binary compatibility.

ConstantValueDescription
QIconEngine::AvailableSizesHook1Allows to query the sizes of the contained pixmaps for pixmap-based engines. The data argument of the virtual_hook() function is an AvailableSizesArgument pointer that should be filled with icon sizes. Engines that work in terms of a scalable, vector format normally return an empty list.
QIconEngine::IconNameHook2Allows to query the name used to create the icon, for example when instantiating an icon using QIcon::fromTheme().
See also
virtual_hook()

Constructor & Destructor Documentation

QIconEngine::~QIconEngine ( )
virtual

Destroys the icon engine.

Method Documentation

QSize QIconEngine::actualSize ( const QSize size,
QIcon::Mode  mode,
QIcon::State  state 
)
virtual

Returns the actual size of the icon the engine provides for the requested size, mode and state. The default implementation returns the given size.

void QIconEngine::addFile ( const QString fileName,
const QSize size,
QIcon::Mode  mode,
QIcon::State  state 
)
virtual

Called by QIcon::addFile(). Adds a specialized pixmap from the file with the given fileName, size, mode and state. The default pixmap-based engine stores any supplied file names, and it loads the pixmaps on demand instead of using scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra files.

void QIconEngine::addPixmap ( const QPixmap pixmap,
QIcon::Mode  mode,
QIcon::State  state 
)
virtual

Called by QIcon::addPixmap(). Adds a specialized pixmap for the given mode and state. The default pixmap-based engine stores any supplied pixmaps, and it uses them instead of scaled pixmaps if the size of a pixmap matches the size of icon requested. Custom icon engines that implement scalable vector formats are free to ignores any extra pixmaps.

QList< QSize > QIconEngine::availableSizes ( QIcon::Mode  mode = QIcon::Normal,
QIcon::State  state = QIcon::Off 
) const
virtual

Returns sizes of all images that are contained in the engine for the specific mode and state.

Note
This is a helper method and the actual work is done by virtual_hook() method, hence this method depends on icon engine support and may not work with all icon engines.
QIconEngine * QIconEngine::clone ( ) const
pure virtual

When inheriting from QIconEngine reimplement this method to return a copy of your icon engine.

QString QIconEngine::iconName ( ) const
virtual

Returns the name used to create the engine, if available.

Note
This is a helper method and the actual work is done by virtual_hook() method, hence this method depends on icon engine support and may not work with all icon engines.
QString QIconEngine::key ( ) const
virtual

Returns a key that identifies this icon engine.

void QIconEngine::paint ( QPainter painter,
const QRect rect,
QIcon::Mode  mode,
QIcon::State  state 
)
pure virtual

Uses the given painter to paint the icon with the required mode and state into the rectangle rect.

QPixmap QIconEngine::pixmap ( const QSize size,
QIcon::Mode  mode,
QIcon::State  state 
)
virtual

Returns the icon as a pixmap with the required size, mode, and state. The default implementation creates a new pixmap and calls paint() to fill it.

bool QIconEngine::read ( QDataStream in)
virtual

Reads icon engine contents from the QDataStream in. Returns true if the contents were read, otherwise returns false.

The default implementation always returns false.

void QIconEngine::virtual_hook ( int  id,
void *  data 
)
virtual

Additional method to allow extending QIconEngine without adding new virtual methods (and without breaking binary compatibility). The actual action and format of data depends on id argument which is in fact a constant from IconEngineHook enum.

See also
IconEngineHook
bool QIconEngine::write ( QDataStream out) const
virtual

Writes the contents of this engine to the QDataStream out. Returns true if the contents were written, otherwise returns false.

The default implementation always returns false.