|
- /*
- * Patchbay Canvas engine using QGraphicsView/Scene
- * Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.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 2 of the License, or
- * 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.
- *
- * For a full copy of the GNU General Public License see the COPYING file
- */
-
- #include "canvasfadeanimation.h"
-
- #include "canvasbox.h"
-
- START_NAMESPACE_PATCHCANVAS
-
- CanvasFadeAnimation::CanvasFadeAnimation(QGraphicsItem* item, bool show, QObject* parent) :
- QAbstractAnimation(parent)
- {
- m_show = show;
- m_duration = 0;
- m_item = item;
- }
-
- QGraphicsItem* CanvasFadeAnimation::item()
- {
- return m_item;
- }
-
- void CanvasFadeAnimation::setDuration(int time)
- {
- if (m_show == false && m_item->opacity() == 0.0)
- m_duration = 0;
- else
- {
- m_item->show();
- m_duration = time;
- }
- }
-
- int CanvasFadeAnimation::duration() const
- {
- return m_duration;
- }
-
- void CanvasFadeAnimation::updateCurrentTime(int time)
- {
- if (m_duration == 0)
- return;
-
- float value;
-
- if (m_show)
- value = float(time)/m_duration;
- else
- value = 1.0-(float(time)/m_duration);
-
- m_item->setOpacity(value);
-
- if (m_item->type() == CanvasBoxType)
- ((CanvasBox*)m_item)->setShadowOpacity(value);
- }
-
- void CanvasFadeAnimation::updateState(QAbstractAnimation::State /*newState*/, QAbstractAnimation::State /*oldState*/)
- {
- }
-
- void CanvasFadeAnimation::updateDirection(QAbstractAnimation::Direction /*direction*/)
- {
- }
-
- END_NAMESPACE_PATCHCANVAS
|