src/hbinput/inputwidgets/hbinputvirtualrocker.cpp
changeset 7 923ff622b8b9
parent 6 c3690ec91ef8
--- a/src/hbinput/inputwidgets/hbinputvirtualrocker.cpp	Wed Jun 23 18:33:25 2010 +0300
+++ b/src/hbinput/inputwidgets/hbinputvirtualrocker.cpp	Tue Jul 06 14:36:53 2010 +0300
@@ -43,9 +43,9 @@
 const qreal HbRockerDimOpacity = 1.0;
 const qreal HbRockerNormalOpacity = 1.0;
 const qreal HbRockerWidth = 50.0;
-const int HbIconWidth = 30;
-const int HbPointerWidth = 15;
-
+const qreal HbNormalSizeInUnits = 5;
+const qreal HbPressedSizeInUnits = 9.5;
+const qreal HbActivatedSizeInUnits = 9.5;
 
 class HbInputVirtualRockerPrivate
 {
@@ -53,30 +53,28 @@
     explicit HbInputVirtualRockerPrivate(HbInputVirtualRocker *rocker);
     ~HbInputVirtualRockerPrivate();
     int rockerEventRepeats(qreal distance);
-    void setCenter();
 
 public:
     HbInputVirtualRocker *q_ptr;
-    HbIcon *mIconNormal;
+    HbIcon mIconNormal;
+    HbIcon mIconPressed;
+    HbIcon mIconActivated;
     HbInputVirtualRocker::RockerSelectionMode mShifted;
     QPointF mLastPoint;
-    QPointF mCenterPosition;
-    QPointF mPointerPosition;
     QPointF mMousePressPoint;
     bool mPressed;
 };
 
 HbInputVirtualRockerPrivate::HbInputVirtualRockerPrivate(HbInputVirtualRocker *rocker)
     : q_ptr(rocker),
-      mIconNormal(0),
       mShifted(HbInputVirtualRocker::RockerSelectionModeOff),
       mLastPoint(0.0, 0.0),
-      mCenterPosition(0.0, 0.0),
       mMousePressPoint(0.0, 0.0),
       mPressed(false)
 {
-    mIconNormal = new HbIcon("qtg_graf_trackpoint_normal");
-    mIconNormal->setSize(QSizeF(HbIconWidth, HbIconWidth));
+    mIconNormal = HbIcon("qtg_graf_trackpoint_normal" );
+    mIconPressed = HbIcon("qtg_graf_trackpoint_pressed" );
+    mIconActivated = HbIcon("qtg_graf_trackpoint_activated" );
 
     q_ptr->grabGesture(Qt::SwipeGesture);
     q_ptr->grabGesture(Qt::TapGesture);
@@ -85,7 +83,6 @@
 
 HbInputVirtualRockerPrivate::~HbInputVirtualRockerPrivate()
 {
-    delete mIconNormal;
 }
 
 int HbInputVirtualRockerPrivate::rockerEventRepeats(qreal distance)
@@ -102,16 +99,6 @@
     return repeats;
 }
 
-void HbInputVirtualRockerPrivate::setCenter()
-{
-    if (mCenterPosition.isNull()) {
-        mCenterPosition.setX(q_ptr->pos().x() + HbRockerWidth / 2);
-        mCenterPosition.setY(q_ptr->pos().y() + HbRockerWidth / 2);
-    }
-    mPointerPosition.setX((HbRockerWidth - HbPointerWidth) / 2);
-    mPointerPosition.setY((HbRockerWidth - HbPointerWidth) / 2);
-}
-
 /// @endcond
 
 /*!
@@ -145,26 +132,33 @@
 */
 
 /*!
+\deprecated HbInputVirtualRocker::HbInputVirtualRocker(HbInputVkbWidget*)
+    is deprecated.
+
 Constructs the object.
 */
 HbInputVirtualRocker::HbInputVirtualRocker(HbInputVkbWidget *parent)
     : HbWidget(parent), d_ptr(new HbInputVirtualRockerPrivate(this))
 {
     setOpacity(HbRockerDimOpacity);
-    setFlag(QGraphicsItem::ItemHasNoContents, false);
 }
 
 /*!
+\deprecated HbInputVirtualRocker::HbInputVirtualRocker(HbInputVirtualRockerPrivate&, QGraphicsWidget*)
+    is deprecated.
+
 Constructs the object.
 */
 HbInputVirtualRocker::HbInputVirtualRocker(HbInputVirtualRockerPrivate &dd, QGraphicsWidget *parent)
     : HbWidget(parent), d_ptr(&dd)
 {
     setOpacity(HbRockerDimOpacity);
-    setFlag(QGraphicsItem::ItemHasNoContents, false);
 }
 
 /*!
+\deprecated HbInputVirtualRocker::~HbInputVirtualRocker()
+    is deprecated.
+
 Destroys the widget.
 */
 HbInputVirtualRocker::~HbInputVirtualRocker()
@@ -173,8 +167,8 @@
 }
 
 /*!
-    \reimp
-    \sa QGraphicsWidget.
+\deprecated HbInputVirtualRocker::mousePressEvent(QGraphicsSceneMouseEvent*)
+    is deprecated.
 */
 void HbInputVirtualRocker::mousePressEvent(QGraphicsSceneMouseEvent *event)
 {
@@ -187,7 +181,6 @@
     qreal squareRadius = HbRockerWidth * HbRockerWidth / 4;
     if (squareRadius > squareDistance) {
         // the touch point is inside circle which diameter is HbRockerWidth
-        d->setCenter();
         d->mLastPoint = position;
         d->mMousePressPoint = position;
         emit rockerDirection(HbRockerDirectionPress, d->mShifted);
@@ -201,8 +194,8 @@
 }
 
 /*!
-    \reimp
-    \sa QGraphicsWidget.
+\deprecated HbInputVirtualRocker::mouseReleaseEvent(QGraphicsSceneMouseEvent*)
+    is deprecated.
 */
 void HbInputVirtualRocker::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
 {
@@ -213,14 +206,13 @@
     setOpacity(HbRockerDimOpacity);
     d->mPressed = false;
     update();
-    d->setCenter();
     d->mShifted = RockerSelectionModeOff;
     HbWidgetFeedback::triggered(this, Hb::InstantReleased);
 }
 
 /*!
-    \reimp
-    \sa QGraphicsWidget.
+\deprecated HbInputVirtualRocker::mouseMoveEvent(QGraphicsSceneMouseEvent*)
+    is deprecated.
 */
 void HbInputVirtualRocker::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
 {
@@ -255,18 +247,13 @@
             emit rockerDirection(HbRockerDirectionUp, d->mShifted);
             d->mLastPoint = event->pos();
         }
-
-        d->mPointerPosition = HbIconWidth * deltaPressLoc / d->mCenterPosition.x() / 2
-                              + QPointF((HbRockerWidth - HbPointerWidth) / 2, (HbRockerWidth - HbPointerWidth) / 2);
-
         update();
-
     }
 }
 
 /*!
-    \reimp
-    \sa QGraphicsWidget.
+\deprecated HbInputVirtualRocker::mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)
+    is deprecated.
 */
 void HbInputVirtualRocker::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
 {
@@ -284,8 +271,8 @@
 }
 
 /*!
-    \reimp
-    \sa QGraphicsWidget.
+\deprecated HbInputVirtualRocker::paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)
+    is deprecated.
 */
 void HbInputVirtualRocker::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 {
@@ -295,30 +282,22 @@
 
     painter->setRenderHint(QPainter::Antialiasing, true);
 
-    if (d->mIconNormal &&
-        !d->mIconNormal->isNull()) {
-        // We have icon, lets draw it.
-
-        d->mIconNormal->paint(painter, rect(), Qt::IgnoreAspectRatio);
-        if (d->mPressed) {
-            painter->setBrush(Qt::blue);
-            painter->setPen(Qt::blue);
-            painter->drawEllipse(static_cast<int>(d->mPointerPosition.x()),
-                                 static_cast<int>(d->mPointerPosition.y()),
-                                 HbPointerWidth, HbPointerWidth);
-        }
-
+    qreal unitValue = HbDeviceProfile::profile(mainWindow()).unitValue();
+    if (selectionMode() == RockerSelectionModeOn) {
+        d->mIconActivated.setSize(QSizeF(HbActivatedSizeInUnits * unitValue, HbActivatedSizeInUnits * unitValue));
+        d->mIconActivated.paint(painter, rect());
+    } else if (d->mPressed) {
+        d->mIconPressed.setSize(QSizeF(HbPressedSizeInUnits * unitValue, HbPressedSizeInUnits * unitValue));
+        d->mIconPressed.paint(painter, rect());
     } else {
-        // Otherwise just draw a white ellipse as a fallback.
-        painter->setBrush(Qt::white);
-        painter->setPen(Qt::white);
-        painter->drawEllipse(boundingRect());
+        d->mIconNormal.setSize(QSizeF(HbNormalSizeInUnits * unitValue, HbNormalSizeInUnits * unitValue));
+        d->mIconNormal.paint(painter, rect());
     }
 }
 
 /*!
-Returns true if virtual rocker is in selection state, ie. it sends event with shift modifier
-on.
+\deprecated HbInputVirtualRocker::selectionMode() const
+    is deprecated.
 */
 HbInputVirtualRocker::RockerSelectionMode HbInputVirtualRocker::selectionMode() const
 {
@@ -326,6 +305,10 @@
     return d->mShifted;
 }
 
+/*!
+\deprecated HbInputVirtualRocker::gestureEvent(QGestureEvent*)
+    is deprecated.
+*/
 void HbInputVirtualRocker::gestureEvent(QGestureEvent *event)
 {
     Q_UNUSED(event);