20 #include <kanimwidget.h> 23 #include <tqpainter.h> 25 #include <tdetoolbar.h> 27 #include <kiconloader.h> 29 class KAnimWidgetPrivate
32 bool loadingCompleted : 1;
45 : TQFrame( parent, name ),
46 d( new KAnimWidgetPrivate )
48 connect( &d->timer, TQT_SIGNAL(timeout()),
this, TQT_SLOT(slotTimerUpdate()));
50 if (parent && parent->inherits(
"TDEToolBar" ))
51 connect(parent, TQT_SIGNAL(modechange()),
this, TQT_SLOT(updateIcons()));
53 d->loadingCompleted =
false;
57 setFrameStyle( StyledPanel | Sunken );
82 if ( d->size == size )
91 if ( d->icon_name == icons )
109 void KAnimWidget::showEvent(TQShowEvent* e)
116 TQFrame::showEvent(e);
119 void KAnimWidget::hideEvent(TQHideEvent* e)
121 TQFrame::hideEvent(e);
124 void KAnimWidget::enterEvent( TQEvent *e )
126 setFrameStyle( Panel | Raised );
128 TQFrame::enterEvent( e );
131 void KAnimWidget::leaveEvent( TQEvent *e )
133 setFrameStyle( StyledPanel | Sunken );
135 TQFrame::leaveEvent( e );
138 void KAnimWidget::mousePressEvent( TQMouseEvent *e )
140 TQFrame::mousePressEvent( e );
143 void KAnimWidget::mouseReleaseEvent( TQMouseEvent *e )
145 if ( e->button() == Qt::LeftButton &&
146 rect().contains( e->pos() ) )
149 TQFrame::mouseReleaseEvent( e );
152 void KAnimWidget::slotTimerUpdate()
158 if (d->current_frame == d->frames)
159 d->current_frame = 0;
165 repaint(d->transparent);
168 void KAnimWidget::drawContents( TQPainter *p )
170 if ( d->pixmap.isNull() )
173 int w = d->pixmap.width();
175 int x = (width() - w) / 2;
176 int y = (height() - h) / 2;
177 p->drawPixmap(TQPoint(x, y), d->pixmap, TQRect(0, d->current_frame*h, w, h));
180 void KAnimWidget::updateIcons()
185 if (parent()->inherits(
"TDEToolBar" ))
186 d->size = ((
TDEToolBar*)parent())->iconSize();
196 d->current_frame = 0;
197 d->frames = img.height() / img.width();
198 d->transparent = img.hasAlphaBuffer();
199 if (d->pixmap.width() != d->size)
201 img = img.smoothScale(d->size, d->size*d->frames);
205 setFixedSize( d->size+2, d->size+2 );
206 resize( d->size+2, d->size+2 );
209 void KAnimWidget::virtual_hook(
int,
void* )
212 #include "kanimwidget.moc"
int currentSize(TDEIcon::Group group) const
static TDEIconLoader * iconLoader()
TQString iconPath(const TQString &name, int group_or_size, bool canReturnNull=false) const