summaryrefslogtreecommitdiffstats
path: root/animateditem.cpp
diff options
context:
space:
mode:
authorNicolas Lécureuil <nlecureuil@mandriva.com>2009-05-14 19:27:25 +0000
committerNicolas Lécureuil <nlecureuil@mandriva.com>2009-05-14 19:27:25 +0000
commit3f7a8b63cb4105d4ac64b5564afdcb6f00620453 (patch)
tree352c96e0b3a798275a69da50508353253077c5f0 /animateditem.cpp
downloadsplash-3f7a8b63cb4105d4ac64b5564afdcb6f00620453.tar
splash-3f7a8b63cb4105d4ac64b5564afdcb6f00620453.tar.gz
splash-3f7a8b63cb4105d4ac64b5564afdcb6f00620453.tar.bz2
splash-3f7a8b63cb4105d4ac64b5564afdcb6f00620453.tar.xz
splash-3f7a8b63cb4105d4ac64b5564afdcb6f00620453.zip
Branch for 2009.1 and handle trunk
Diffstat (limited to 'animateditem.cpp')
-rw-r--r--animateditem.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/animateditem.cpp b/animateditem.cpp
new file mode 100644
index 0000000..29dca4d
--- /dev/null
+++ b/animateditem.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2008 Arthur Renato Mello <arthur@mandriva.com>
+ * Copyright 2008 Gustavo Pichorim Boiko <boiko@mandriva.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#include <QPainter>
+
+#include "animateditem.h"
+
+AnimatedItem::AnimatedItem(const QPoint &p_pos, const QPixmap &p_pixmap, QWidget *parent)
+:QWidget(parent), m_timeLine(1000)
+{
+ m_alpha = 0.0;
+ m_pixmap = p_pixmap;
+
+ resize(m_pixmap.size());
+ move(p_pos);
+
+ connect(&m_timeLine, SIGNAL(valueChanged(qreal)),
+ this, SLOT(slotAnimate(qreal)));
+}
+
+AnimatedItem::~AnimatedItem()
+{
+}
+
+void AnimatedItem::paintEvent(QPaintEvent *e)
+{
+ QPainter p;
+
+ QPixmap pix(m_pixmap.size());
+ pix.fill(Qt::transparent);
+
+ p.begin(&pix);
+ p.drawPixmap(QPoint(0,0), m_pixmap);
+ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
+
+ QColor c(0, 0, 0, m_alpha * 254);
+ p.fillRect(rect(), c);
+ p.end();
+
+ p.begin(this);
+ p.drawPixmap(QPoint(0,0), pix);
+ p.end();
+}
+
+void AnimatedItem::slotAnimate(qreal value)
+{
+ m_alpha = value;
+ update();
+}
+
+void AnimatedItem::startAnimation()
+{
+ m_timeLine.start();
+}