--- a/browsercore/appfw/Common/PictureFlow.h Thu Sep 23 15:32:11 2010 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,379 +0,0 @@
-/*
- PictureFlow - animated image show widget
- http://pictureflow.googlecode.com
-
- Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- Copyright (C) 2008 Ariya Hidayat (ariya@kde.org)
- Copyright (C) 2007 Ariya Hidayat (ariya@kde.org)
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#ifndef PICTUREFLOW_H
-#define PICTUREFLOW_H
-
-#include <qwidget.h>
-#include "FlowInterface.h"
-
-namespace WRT {
-
-class PictureFlowPrivate;
-
-enum ReflectionEffect
-{
- NoReflection,
- PlainReflection,
- BlurredReflection
-};
-
-/*!
- Class PictureFlow implements an image show widget with animation effect
- like Apple's CoverFlow (in iTunes and iPod). Images are arranged in form
- of slides, one main slide is shown at the center with few slides on
- the left and right sides of the center slide. When the next or previous
- slide is brought to the front, the whole slides flow to the right or
- the right with smooth animation effect; until the new slide is finally
- placed at the center.
-
- */
-class PictureFlow : public FlowInterface
-{
-Q_OBJECT
-
- Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor)
- Q_PROPERTY(QSize slideSize READ slideSize WRITE setSlideSize)
- Q_PROPERTY(int slideCount READ slideCount)
- Q_PROPERTY(int centerIndex READ centerIndex WRITE setCenterIndex)
-
-public:
-
-
-
- /*!
- Creates a new PictureFlow widget.
- */
- PictureFlow(QWidget* parent = 0);
-
- /*!
- Destroys the widget.
- */
- ~PictureFlow();
-
- /*!
- Returns the background color.
- */
- QColor backgroundColor() const;
-
- /*!
- Sets the background color. By default it is black.
- */
- void setBackgroundColor(const QColor& c);
-
- /*!
- Returns the dimension of each slide (in pixels).
- */
- QSize slideSize() const;
-
- /*!
- Sets the dimension of each slide (in pixels).
- */
- void setSlideSize(QSize size);
-
- /*!
- Returns the total number of slides.
- */
- int slideCount() const;
-
- /*!
- Returns QImage of specified slide.
- */
- QImage slide(int index) const;
-
- /*!
- Returns the index of slide currently shown in the middle of the viewport.
- */
- int centerIndex() const;
-
- /*!
- Return true if slide animation is ongoing
- */
- bool slideAnimationOngoing() const;
-
- /*!
- Returns the effect applied to the reflection.
- */
- ReflectionEffect reflectionEffect() const;
-
- /*!
- Sets the effect applied to the reflection. The default is PlainReflection.
- */
- void setReflectionEffect(ReflectionEffect effect);
-
- QRect centralRect() const;
-
- void init();
-
-public slots:
-
- /*!
- Adds a new slide.
- */
- void addSlide(const QImage& image);
-
- /*!
- Adds a new slide.
- */
- void addSlide(const QPixmap& pixmap);
-
- /*!
- Sets an image for specified slide. If the slide already exists,
- it will be replaced.
- */
- void setSlide(int index, const QImage& image);
-
- /*!
- Sets a pixmap for specified slide. If the slide already exists,
- it will be replaced.
- */
- void setSlide(int index, const QPixmap& pixmap);
-
- /*!
- Sets slide to be shown in the middle of the viewport. No animation
- effect will be produced, unlike using showSlide.
- */
- void setCenterIndex(int index);
-
- /*!
- Clears all slides.
- */
- void clear();
-
- /*!
- Shows previous slide using animation effect.
- */
- void showPrevious();
-
- /*!
- Shows next slide using animation effect.
- */
- void showNext();
-
- /*!
- Go to specified slide using animation effect.
- */
- void showSlide(int index);
-
- /*!
- Rerender the widget. Normally this function will be automatically invoked
- whenever necessary, e.g. during the transition animation.
- */
- void render();
-
- /*!
- Schedules a rendering update. Unlike render(), this function does not cause
- immediate rendering.
- */
- void triggerRender();
-
-signals:
- void centerIndexChanged(int index);
- void ok(int index);
- void cancel();
-
-protected:
- void paintEvent(QPaintEvent *event);
- void keyPressEvent(QKeyEvent* event);
- void mousePressEvent(QMouseEvent* event);
- void resizeEvent(QResizeEvent* event);
- void mouseMoveEvent(QMouseEvent* event);
- void mouseReleaseEvent(QMouseEvent* event);
-
-private slots:
- void updateAnimation();
- void scroll();
-
-private:
- PictureFlowPrivate* d;
- QTimer* m_scrollTimer;
- QPoint m_lastMoveEventPos;
-};
-
-class GraphicsPictureFlow : public GraphicsFlowInterface
-{
-Q_OBJECT
-
- Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor)
- Q_PROPERTY(QSize slideSize READ slideSize WRITE setSlideSize)
- Q_PROPERTY(int slideCount READ slideCount)
- Q_PROPERTY(int centerIndex READ centerIndex WRITE setCenterIndex)
-
-public:
-
- /*!
- Creates a new PictureFlow widget.
- */
- GraphicsPictureFlow(QObject* parent = 0);
-
- /*!
- Destroys the widget.
- */
- ~GraphicsPictureFlow();
-
- /*!
- Returns the background color.
- */
- QColor backgroundColor() const;
-
- /*!
- Sets the background color. By default it is black.
- */
- void setBackgroundColor(const QColor& c);
-
- /*!
- Returns the dimension of each slide (in pixels).
- */
- QSize slideSize() const;
-
- /*!
- Sets the dimension of each slide (in pixels).
- */
- void setSlideSize(QSize size);
-
- /*!
- Returns the total number of slides.
- */
- int slideCount() const;
-
- /*!
- Returns QImage of specified slide.
- */
- QImage slide(int index) const;
-
- /*!
- Returns the index of slide currently shown in the middle of the viewport.
- */
- int centerIndex() const;
-
- /*!
- Return true if slide animation is ongoing
- */
- bool slideAnimationOngoing() const;
-
- /*!
- Returns the effect applied to the reflection.
- */
- ReflectionEffect reflectionEffect() const;
-
- /*!
- Sets the effect applied to the reflection. The default is PlainReflection.
- */
- void setReflectionEffect(ReflectionEffect effect);
-
- QRect centralRect() const;
-
- void init();
-
-public slots:
-
- /*!
- Adds a new slide.
- */
- void addSlide(const QImage& image);
-
- /*!
- Adds a new slide.
- */
- void addSlide(const QPixmap& pixmap);
-
- /*!
- Sets an image for specified slide. If the slide already exists,
- it will be replaced.
- */
- void setSlide(int index, const QImage& image);
-
- /*!
- Sets a pixmap for specified slide. If the slide already exists,
- it will be replaced.
- */
- void setSlide(int index, const QPixmap& pixmap);
-
- /*!
- Sets slide to be shown in the middle of the viewport. No animation
- effect will be produced, unlike using showSlide.
- */
- void setCenterIndex(int index);
-
- /*!
- Clears all slides.
- */
- void clear();
-
- /*!
- Shows previous slide using animation effect.
- */
- void showPrevious();
-
- /*!
- Shows next slide using animation effect.
- */
- void showNext();
-
- /*!
- Go to specified slide using animation effect.
- */
- void showSlide(int index);
-
- /*!
- Rerender the widget. Normally this function will be automatically invoked
- whenever necessary, e.g. during the transition animation.
- */
- void render();
-
- /*!
- Schedules a rendering update. Unlike render(), this function does not cause
- immediate rendering.
- */
- void triggerRender();
-
-signals:
- void centerIndexChanged(int index);
- void ok(int index);
- void cancel();
-
-protected:
- void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0);
- void resizeEvent(QGraphicsSceneResizeEvent* event);
- void keyPressEvent(QKeyEvent* event);
- void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
- void mousePressEvent(QGraphicsSceneMouseEvent* event);
- void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
-
-private slots:
- void updateAnimation();
- void scroll();
-
-private:
- PictureFlowPrivate* d;
- QTimer* m_scrollTimer;
- QPoint m_lastMoveEventPos;
-};
-
-}
-#endif // PICTUREFLOW_H
-