controlpanel/src/cpframework/src/cpdataformlistentryviewitem.cpp
changeset 40 6465d5bb863a
parent 36 48848d132687
child 52 58cebe0861a8
--- a/controlpanel/src/cpframework/src/cpdataformlistentryviewitem.cpp	Thu Jun 10 16:03:48 2010 +0800
+++ b/controlpanel/src/cpframework/src/cpdataformlistentryviewitem.cpp	Fri Jun 25 17:09:30 2010 +0800
@@ -16,14 +16,30 @@
 */
 
 #include "cpdataformlistentryviewitem.h"
+
+#ifdef HB_EFFECTS
+    #include "hbeffect.h"
+#endif
+
+#ifdef HB_GESTURE_FW
+    #include <hbtapgesture.h>
+    #include <hbframeitem.h>
+#endif
+
 #include <hbdataformmodel.h>
 #include <hbdataformmodelitem.h>
 #include <hbabstractitemview.h>
 #include <cpsettingformentryitemdata.h>
 
+#define CP_DATAFORMLISTENTRYVIEWITEM QLatin1String("cpdataformlistentryviewitem")
+
 CpDataFormListEntryViewItem::CpDataFormListEntryViewItem(QGraphicsItem *parent) : 
     HbDataFormViewItem(parent)
 {
+#ifdef HB_EFFECTS       
+    HbEffect::add(CP_DATAFORMLISTENTRYVIEWITEM + "-focus", "listviewitem_press", "pressed");
+    HbEffect::add(CP_DATAFORMLISTENTRYVIEWITEM + "-focus", "listviewitem_release", "released");
+#endif
 }
 
 CpDataFormListEntryViewItem::~CpDataFormListEntryViewItem()
@@ -51,12 +67,10 @@
                     HbDataFormModelItem::ItemTypeRole).toInt());
     switch (itemType)
     {
-        case CpSettingFormEntryItemData::ListEntryItem:
-        {
+        case CpSettingFormEntryItemData::ListEntryItem: {
             break;
         }
-        default:
-        {
+        default: {
             break;
         }
     }
@@ -64,4 +78,71 @@
     return 0;
 }
 
+void CpDataFormListEntryViewItem::pressStateChanged(bool pressed, bool animate)
+{
+#ifdef HB_EFFECTS
+    QGraphicsItem *focusItem =  primitive("dataItem_Background");
+    bool doAnimate = animate;
+
+    if (pressed) {
+        if (doAnimate) {
+            HbEffect::cancel(this, "released");
+            HbEffect::cancel(focusItem, "released");
+
+            HbEffect::start(this, CP_DATAFORMLISTENTRYVIEWITEM, "pressed");
+            HbEffect::start(focusItem, CP_DATAFORMLISTENTRYVIEWITEM + QString("-focus"), "pressed");
+        }
+    } else {
+        if (doAnimate) {
+            HbEffect::cancel(this, "pressed");
+            HbEffect::cancel(focusItem, "pressed");
+
+            HbEffect::start(this, CP_DATAFORMLISTENTRYVIEWITEM, "released");
+            HbEffect::start(focusItem, CP_DATAFORMLISTENTRYVIEWITEM + QString("-focus"), "released");
+        } else {
+            HbEffect::cancel(this, "pressed");
+            HbEffect::start(this, CP_DATAFORMLISTENTRYVIEWITEM, "released");
+            if (focusItem) {
+                HbEffect::cancel(focusItem, "pressed");
+                HbEffect::start(focusItem, CP_DATAFORMLISTENTRYVIEWITEM + QString("-focus"), "released", this);
+            }
+        }
+    }
+#endif
+}
+
+#ifdef HB_GESTURE_FW
+void CpDataFormListEntryViewItem::gestureEvent(QGestureEvent *event)
+{
+    HbFrameItem *backgroundItem = static_cast<HbFrameItem*> ( primitive("dataItem_Background") );
+    HbTapGesture *tap = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture));
+    
+    if(backgroundItem && tap) {
+        switch(tap->state()) {
+        case Qt::GestureStarted: {
+                backgroundItem->frameDrawer().setFrameGraphicsName(QLatin1String("qtg_fr_list_pressed"));
+            }
+            break;
+        case Qt::GestureUpdated: {
+            
+            }
+            break;
+        case Qt::GestureCanceled: {
+                backgroundItem->frameDrawer().setFrameGraphicsName(QLatin1String("qtg_fr_list_normal"));
+            }
+            break;
+        case Qt::GestureFinished: {
+                backgroundItem->frameDrawer().setFrameGraphicsName(QLatin1String("qtg_fr_list_normal"));
+            }
+            break;
+        default:
+            break;
+        }
+    }
+
+    HbDataFormViewItem::gestureEvent( event );
+}
+#endif
+
+
 //End of File