summaryrefslogtreecommitdiffstats
path: root/qtinterface/tqiconset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtinterface/tqiconset.cpp')
-rw-r--r--qtinterface/tqiconset.cpp105
1 files changed, 105 insertions, 0 deletions
diff --git a/qtinterface/tqiconset.cpp b/qtinterface/tqiconset.cpp
index 152371d..11ced75 100644
--- a/qtinterface/tqiconset.cpp
+++ b/qtinterface/tqiconset.cpp
@@ -21,3 +21,108 @@ Boston, MA 02110-1301, USA.
#include <tqt.h>
#include <tqiconset.h>
+
+#ifdef USE_QT4
+
+#include "Qt/q3cleanuphandler.h"
+
+static QIconFactory *defaultFac = 0;
+static Q3SingleCleanupHandler<QIconFactory> q_cleanup_icon_factory;
+
+/*! \class TQIconFactory
+ \ingroup advanced
+ \brief The TQIconFactory class is used to create pixmaps for a QIconSet.
+
+ By reimplementing createPixmap(), you can override QIconSet's
+ default algorithm for computing pixmaps not supplied by the user.
+
+ Call setAutoDelete(TRUE) if you want the factory to automatically
+ delete itself when it is no longer needed by QIconSet.
+
+ \sa QIconSet
+*/
+
+/*!
+ Constructs an icon factory.
+*/
+TQIconFactory::TQIconFactory()
+ : autoDel( 0 )
+{
+ count = 0;
+}
+
+/*!
+ Destroys the object and frees any allocated resources.
+*/
+TQIconFactory::~TQIconFactory()
+{
+}
+
+/*!
+ Ceates a pixmap for \a iconSet with a certain \a size, \a mode, and
+ \a state. Returns 0 if the default QIconSet algorithm should be
+ used to create a pixmap that wasn't supplied by the user.
+
+ It is the caller's responsibility to delete the returned pixmap.
+
+ The default implementation always returns 0.
+*/
+QPixmap *TQIconFactory::createPixmap( const QIconSet& /* iconSet */,
+ QIconSet::Size /* size */,
+ QIconSet::Mode /* mode */,
+ QIconSet::State /* state */ )
+{
+ return 0;
+}
+
+/*!
+ \fn void TQIconFactory::setAutoDelete( bool autoDelete )
+
+ If \a autoDelete is TRUE, sets the icon factory to automatically
+ delete itself when it is no longer referenced by any QIconSet and
+ isn't the default factory. If \a autoDelete is FALSE (the default)
+ auto-deletion is disabled.
+
+ \sa autoDelete(), defaultFactory()
+*/
+
+/*!
+ \fn bool TQIconFactory::autoDelete() const
+
+ Returns TRUE if auto-deletion is enabled; otherwise returns FALSE.
+
+ \sa setAutoDelete()
+*/
+
+/*!
+ Returns the default icon factory.
+
+ \sa installDefaultFactory()
+*/
+TQIconFactory *TQIconFactory::defaultFactory()
+{
+ if ( !defaultFac ) {
+ defaultFac = new TQIconFactory;
+ defaultFac->setAutoDelete( TRUE );
+ defaultFac->ref();
+ q_cleanup_icon_factory.set( &defaultFac );
+ }
+ return defaultFac;
+}
+
+/*!
+ Replaces the default icon factory with \a factory.
+*/
+void TQIconFactory::installDefaultFactory( TQIconFactory *factory )
+{
+ if ( !factory )
+ return;
+
+ factory->ref();
+ if ( defaultFac && defaultFac->deref() && defaultFac->autoDelete() )
+ delete defaultFac;
+ defaultFac = factory;
+ q_cleanup_icon_factory.set( &defaultFac );
+}
+
+#endif // USE_QT4 \ No newline at end of file