QIconSet - Set of differently styled and sized icons
#include <qiconset.h>
Public Members
enum Size { Automatic, Small, Large }
enum Mode { Normal, Disabled, Active }
QIconSet ()
QIconSet ( const QPixmap &, Size = Automatic )
QIconSet ( const QPixmap & smallPix, const QPixmap &
largePix )
QIconSet ( const QIconSet & )
virtual ~QIconSet ()
void reset ( const QPixmap &, Size )
virtual void setPixmap ( const QPixmap &, Size, Mode =
Normal )
virtual void setPixmap ( const QString &, Size, Mode =
Normal )
QPixmap pixmap ( Size, Mode ) const
QPixmap pixmap ( Size s, bool enabled ) const
QPixmap pixmap () const
bool isGenerated ( Size, Mode ) const
bool isNull () const
void detach ()
QIconSet& operator= ( const QIconSet & )
DESCRIPTION
The QIconSet class provides a set of differently styled
and sized icons.
Once a QIconSet is fed some pixmaps, it can generate
smaller, larger, active and disabled pixmaps. Such pixmaps
are used by QToolButton, QHeader, QPopupMenu, etc. to show
an icon representing a piece of functionality.
The simplest usage of QIconSet is to create one from a
QPixmap then use it, allowing Qt to work out all the
required icon sizes. For example:
QToolButton *tb = new QToolButton( QIconSet( QPixmap("open.xpm") ), ... );
Using whichever pixmaps you specify as a base, QIconSet
provides a set of six icons each with a Size and a Mode:
Small Normal - can only be calculated from Large Normal.
Small Disabled - calculated from Large Disabled or Small
Normal.
Small Active - same as Small Normal unless you set it.
Large Disabled - calculated from Small Disabled or Large
Normal.
Large Active - same as Large Normal unless you set it.
You can set any of the icons using setPixmap() and when
you retrieve one using pixmap(Size,Mode), QIconSet will
compute it from the closest other icon and cache it for
later.
The Disabled appearance is computed using a "shadow"
algorithm which produces results very similar to that used
in Microsoft Windows 95.
The Active appearance is identical to the Normal
appearance unless you use setPixmap() to set it to
something special.
When scaling icons, QIconSet uses smooth scaling, which
can partially blend the color component of pixmaps. If the
results look poor, the best solution is to supply both
large and small sizes of pixmap.
QIconSet provides a function, isGenerated(), that
indicates whether an icon was set by the application
programmer or computed by QIconSet itself.
Making classes that use QIconSet
If you write your own widgets that have an option to set a
small pixmap, you should consider instead, or
additionally, allowing a QIconSet to be set for that
pixmap. The Qt class QToolButton is an example of such a
widget.
Provide a method to set a QIconSet, and when you draw the
icon, choose whichever icon is appropriate for the current
state of your widget. For example:
void YourWidget::drawIcon( QPainter* p, QPoint pos )
{
p->drawPixmap( pos, icons->pixmap(isEnabled(), QIconSet::Small) );
}
You might also make use of the Active mode, perhaps making
your widget Active when the mouse in inside the widget
(see QWidget::enterEvent), while the mouse is pressed
pending the release that will activate the function, or
when it is the currently selected item.
See also QPixmap, QLabel, QToolButton, QPopupMenu,
QIconViewItem::setViewMode(),
QMainWindow::setUsesBigPixmaps(), GUI Design Handbook:
Member Type Documentation
QIconSet::Mode
This enum type describes the mode for which a pixmap is
intended to be provided. The currently defined modes are:
Normal - the pixmap to be displayed when the user is not
interacting with the icon, but when the
functionality represented by the icon is available.
Disabled - the pixmap to be displayed when the
functionality represented by the icon is not
available.
Active - the pixmap to be displayed when the functionality
represented by the icon is available and the user
is interacting with the icon, such as by pointing
at it or by invoking it.
QIconSet::Size
This enum type describes the size for which a pixmap is
intended to be provided. The currently defined sizes are:
Automatic - the size of the pixmap is determined from its
pixel size. This is a useful default.
Small - the pixmap is the smaller of two.
Large - the pixmap is the larger of two
If a Small pixmap is not set by QIconSet::setPixmap(),
then the Large pixmap may be automatically scaled to two-
thirds of its size to generate the Small pixmap.
Conversely, a Small pixmap will be automatically scaled up
by 50% to create a Large pixmap if needed.
See also setPixmap(), pixmap(),
QIconViewItem::setViewMode() and
QMainWindow::setUsesBigPixmaps().
MEMBER FUNCTION DOCUMENTATION
QIconSet::QIconSet ()
Constructs an icon set of null pixmaps. Use setPixmap(),
reset(), or operator=() to set some pixmaps.
See also reset().
QIconSet::QIconSet ( const QPixmap & pixmap, Size size =
Automatic )
Constructs an icon set for which the Normal pixmap is
pixmap, which is assumed to be the given size.
The default for size is Automatic, which means that
from its pixel size. Pixmaps less than 23 pixels wide are
considered to be Small.
See also reset().
QIconSet::QIconSet ( const QPixmap & smallPix, const QPixmap &
largePix )
Creates an iconset which uses the pixmap smallPix for for
displaying small a small icon, and largePix for displaying
a large one.
QIconSet::QIconSet ( const QIconSet & other )
Constructs a copy of other. This is very fast.
QIconSet::~QIconSet () [virtual]
Destructs the icon set and frees any allocated resources.
void QIconSet::detach ()
Detaches this icon set from others with which it may share
data.
You will never need to call this function; other QIconSet
functions call it as necessary.
bool QIconSet::isGenerated ( Size s, Mode m ) const
Returns TRUE if the variant with size s and mode m was
automatically generated, and FALSE if it was not. This
mainly useful for development purposes.
bool QIconSet::isNull () const
Returns TRUE if the icon set is empty. Currently, a
QIconSet is never empty (although it may contain null
pixmaps).
QIconSet & QIconSet::operator= ( const QIconSet & other )
Assigns other to this icon set and returns a reference to
this icon set.
This is very fast.
See also detach().
QPixmap QIconSet::pixmap () const
Returns the pixmap originally provided to the constructor
or to reset(). This is the Normal pixmap of unspecified
Size.
See also reset().
QPixmap QIconSet::pixmap ( Size s, Mode m ) const
Returns a pixmap with size s and mode m, generating one if
needed. Generated pixmaps are cached.
Returns a pixmap with size s, and Mode either Normal or
Disabled, depending on the value of enabled.
void QIconSet::reset ( const QPixmap & pm, Size s )
Sets this icon set to provide pm for the Normal pixmap,
assuming it to be of size s.
This is equivalent to assigning QIconSet(pm,s) to this
icon set.
void QIconSet::setPixmap ( const QPixmap & pm, Size size, Mode
mode = Normal )
Sets this icon set to provide pm for a size and mode. It
may also use pm for deriving some other varieties if those
are not set.
The size can be one of Automatic, Large or Small. If
Automatic is used, QIconSet will determine if the pixmap
is Small or Large from its pixel size. Pixmaps less than
23 pixels wide are considered to be Small.
See also reset().
void QIconSet::setPixmap ( const QString & fileName, Size s, Mode
m = Normal )
Sets this icon set to load fileName as a pixmap and
provide it for size s and mode m. It may also use the
pixmap for deriving some other varieties if those are not
set.
The size can be one of Automatic, Large or Small. If
Automatic is used, QIconSet will determine if the pixmap
is Small or Large from its pixel size. Pixmaps less than
23 pixels wide are considered to be Small.
SEE ALSO
http://doc.trolltech.com/qiconset.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2001 Trolltech AS,
http://www.trolltech.com. See the license file included
in the distribution for a complete license statement.
AUTHOR
Generated automatically from the source code.
BUGS
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports
make our job much simpler. Thank you.
In case of content or formattting problems with this
Please include the name of the manual page (qiconset.3qt)
and the Qt version (2.3.1).
Man(1) output converted with
man2html