src/hbcore/gui/hbscrollbar.cpp
changeset 21 4633027730f5
parent 6 c3690ec91ef8
child 28 b7da29130b0e
equal deleted inserted replaced
7:923ff622b8b9 21:4633027730f5
    98         grooveItem(0),
    98         grooveItem(0),
    99         handleItem(0),
    99         handleItem(0),
   100         mTouchArea(0),
   100         mTouchArea(0),
   101         mLimitingFactor(0.0),
   101         mLimitingFactor(0.0),
   102         mTopLeft(0.0),
   102         mTopLeft(0.0),
       
   103         hasEffects(false),
   103         lastEmittedPos(QPointF()),
   104         lastEmittedPos(QPointF()),
   104         emittedPos(false)
   105         emittedPos(false)
   105 {
   106 {
   106 }
   107 }
   107 
   108 
   110 }
   111 }
   111 
   112 
   112 void HbScrollBarPrivate::init()
   113 void HbScrollBarPrivate::init()
   113 {
   114 {
   114     Q_Q(HbScrollBar);
   115     Q_Q(HbScrollBar);
   115     q->grabGesture(Qt::PanGesture);
   116     q->setFlag(QGraphicsItem::ItemHasNoContents, true);
   116     q->grabGesture(Qt::TapGesture);
       
   117 }
   117 }
   118 
   118 
   119 void HbScrollBarPrivate::createPrimitives()
   119 void HbScrollBarPrivate::createPrimitives()
   120 {
   120 {
   121     Q_Q(HbScrollBar);
   121     Q_Q(HbScrollBar);
   122 
   122 
   123     if ( !grooveItem ) {
   123     if ( !grooveItem ) {
   124         grooveItem = q->style()->createPrimitive( HbStyle::P_ScrollBar_groove, q );
   124         grooveItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_ScrollBar_groove, q );
   125         grooveItem->setZValue(2);
   125         grooveItem->setZValue(2);
   126         HbStyle::setItemName( grooveItem, "groove" );
   126         HbStyle::setItemName( grooveItem, "groove" );
   127     }
   127     }
   128 
   128 
   129     if ( !handleItem ) {
   129     if ( !handleItem ) {
   130         handleItem = q->style()->createPrimitive( HbStyle::P_ScrollBar_handle, q );
   130         handleItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_ScrollBar_handle, q );
   131         handleItem->setZValue(3);
   131         handleItem->setZValue(3);
   132         HbStyle::setItemName( handleItem, "handle" );
   132         HbStyle::setItemName( handleItem, "handle" );
   133     }
   133     }
   134     if( !mTouchArea ) {
   134     if( !mTouchArea ) {
   135         mTouchArea = q->style()->createPrimitive(HbStyle::P_ScrollBar_toucharea, q);
   135         mTouchArea = HbStylePrivate::createPrimitive(HbStylePrivate::P_ScrollBar_toucharea, q);
   136     }
   136     }
   137     q->updatePrimitives();
   137     q->updatePrimitives();
   138 }
   138 }
   139 
   139 
   140 void HbScrollBarPrivate::updatePosition()
   140 void HbScrollBarPrivate::updatePosition()
   315 void HbScrollBar::setInteractive( bool enabled )
   315 void HbScrollBar::setInteractive( bool enabled )
   316 {
   316 {
   317     Q_D( HbScrollBar );
   317     Q_D( HbScrollBar );
   318     if( d->mInteractive != enabled){
   318     if( d->mInteractive != enabled){
   319         d->mInteractive = enabled;
   319         d->mInteractive = enabled;
       
   320         if ( enabled ) {
       
   321             grabGesture(Qt::PanGesture);
       
   322             grabGesture(Qt::TapGesture);
       
   323         } else {
       
   324             ungrabGesture(Qt::PanGesture);
       
   325             ungrabGesture(Qt::TapGesture);
       
   326         }
   320         if(d->handleItem) {
   327         if(d->handleItem) {
   321             repolish();
   328             repolish();
   322             updatePrimitives();
   329             updatePrimitives();
   323         }
   330         }
   324     }
   331     }
   382     Q_D(HbScrollBar);
   389     Q_D(HbScrollBar);
   383 
   390 
   384     HbStyleOptionScrollBar option;
   391     HbStyleOptionScrollBar option;
   385     initStyleOption(&option);
   392     initStyleOption(&option);
   386     if (d->grooveItem) {
   393     if (d->grooveItem) {
   387         style()->updatePrimitive(d->grooveItem, HbStyle::P_ScrollBar_groove, &option);
   394         HbStylePrivate::updatePrimitive(d->grooveItem, HbStylePrivate::P_ScrollBar_groove, &option);
   388     }
   395     }
   389     if (d->handleItem) {
   396     if (d->handleItem) {
   390         style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &option);
   397         HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &option);
   391     }
   398     }
   392     if( d->mTouchArea ) {
   399     if( d->mTouchArea ) {
   393         style()->updatePrimitive(d->mTouchArea, HbStyle::P_ScrollBar_toucharea, &option);
   400         HbStylePrivate::updatePrimitive(d->mTouchArea, HbStylePrivate::P_ScrollBar_toucharea, &option);
   394     }
   401     }
   395 }
   402 }
   396 
   403 
   397 /*!
   404 /*!
   398     \reimp
   405     \reimp
   446 
   453 
   447             d->repeatActionTimer.start(REPEATION_TIME, this);
   454             d->repeatActionTimer.start(REPEATION_TIME, this);
   448         } else {
   455         } else {
   449             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
   456             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
   450             initStyleOption(&opt);
   457             initStyleOption(&opt);
   451             style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
   458             HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
   452             emit d->core.handlePressed();
   459             emit d->core.handlePressed();
   453         }
   460         }
   454 
   461 
   455         break;
   462         break;
   456     case Qt::Vertical:
   463     case Qt::Vertical:
   472 
   479 
   473             d->repeatActionTimer.start(REPEATION_TIME, this);
   480             d->repeatActionTimer.start(REPEATION_TIME, this);
   474         } else {
   481         } else {
   475             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
   482             HbWidgetFeedback::triggered(this, Hb::InstantPressed, Hb::ModifierSliderHandle);
   476             initStyleOption(&opt);
   483             initStyleOption(&opt);
   477             style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
   484             HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
   478             emit d->core.handlePressed();
   485             emit d->core.handlePressed();
   479         }
   486         }
   480 
   487 
   481         break;
   488         break;
   482     }
   489     }
   499         d->mThumbPressed = false;
   506         d->mThumbPressed = false;
   500         HbWidgetFeedback::triggered(this, Hb::InstantReleased, Hb::ModifierSliderHandle);
   507         HbWidgetFeedback::triggered(this, Hb::InstantReleased, Hb::ModifierSliderHandle);
   501         emit valueChanged(value(), orientation());
   508         emit valueChanged(value(), orientation());
   502         emit d->core.handleReleased();
   509         emit d->core.handleReleased();
   503         initStyleOption(&opt);
   510         initStyleOption(&opt);
   504         style()->updatePrimitive(d->handleItem, HbStyle::P_ScrollBar_handle, &opt );
   511         HbStylePrivate::updatePrimitive(d->handleItem, HbStylePrivate::P_ScrollBar_handle, &opt );
   505     } else if (d->mGroovePressed){
   512     } else if (d->mGroovePressed){
   506         HbWidgetFeedback::triggered(this, Hb::InstantReleased);
   513         HbWidgetFeedback::triggered(this, Hb::InstantReleased);
   507         d->repeatActionTimer.stop();
   514         d->repeatActionTimer.stop();
   508         d->mGroovePressed = false;
   515         d->mGroovePressed = false;
   509         initStyleOption(&opt);
   516         initStyleOption(&opt);
   510         style()->updatePrimitive(d->grooveItem, HbStyle::P_ScrollBar_groove, &opt );
   517         HbStylePrivate::updatePrimitive(d->grooveItem, HbStylePrivate::P_ScrollBar_groove, &opt );
   511     }
   518     }
   512     d->emittedPos = false;
   519     d->emittedPos = false;
   513     event->accept();            
   520     event->accept();            
   514 }
   521 }
   515 
   522