diff -r b7da29130b0e -r 80e4d18b72f5 src/hbwidgets/itemviews/hbtumbleview.cpp --- a/src/hbwidgets/itemviews/hbtumbleview.cpp Fri Sep 17 08:32:10 2010 +0300 +++ b/src/hbwidgets/itemviews/hbtumbleview.cpp Mon Oct 04 00:38:12 2010 +0300 @@ -27,17 +27,20 @@ #include "hblistitemcontainer_p.h" #include "hblistitemcontainer_p_p.h" #include "hbmodeliterator.h" +#include "hbstyleprimitivedata.h" #include #include #include #include +#include #include #include #include #include + #define HB_TUMBLE_ITEM_ANIMATION_TIME 500 #define HB_TUMBLE_PREFERRED_ITEMS 3 @@ -113,12 +116,13 @@ QTimer mDelayedSelectTimer; //primitives - QGraphicsItem *mBackground; - QGraphicsItem *mFrame;//overlay - QGraphicsItem *mHighlight; + QGraphicsObject *mBackground; + QGraphicsObject *mFrame;//overlay + QGraphicsObject *mHighlight; + QGraphicsObject *mDivider; int mSelected; bool mNeedScrolling; - QGraphicsItem *mDivider; + }; @@ -394,9 +398,9 @@ ,mBackground(0) ,mFrame(0) ,mHighlight(0) + ,mDivider(0) ,mSelected(-1) - ,mNeedScrolling(true) - ,mDivider(0) + ,mNeedScrolling(true) { } @@ -572,16 +576,20 @@ Q_Q(HbTumbleView); //this is the highlight which is placed at center + if(!mHighlight) { - mHighlight = HbStylePrivate::createPrimitive(HbStylePrivate::P_TumbleView_highlight,q); - HbStyle::setItemName(mHighlight,"highlight"); - } - if(!mDivider){ - mDivider = HbStylePrivate::createPrimitive(HbStylePrivate::P_DateTimePicker_separator,q); - HbStyle::setItemName(mDivider,"separator"); + mHighlight = q->style()->createPrimitive(HbStyle::PT_FrameItem,"highlight",q); + } + if(!mDivider) { + mDivider = q->style()->createPrimitive(HbStyle::PT_FrameItem,"separator",q); mDivider->hide(); - } - + } + if(!mFrame) { + mFrame = q->style()->createPrimitive(HbStyle::PT_FrameItem,"frame",q); + } + if(!mBackground) { + mBackground = q->style()->createPrimitive(HbStyle::PT_FrameItem,"background",q); + } } @@ -806,29 +814,70 @@ } } +void HbTumbleView::initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive) +{ + HbWidget::initPrimitiveData(primitiveData, primitive); + QString itemName = HbStyle::itemName(primitive); + + if(itemName == QLatin1String("separator")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_graf_tumbler_divider"); + frameItem->frameType = HbFrameDrawer::OnePiece; + (const_cast (primitive))->setZValue(2); + } + + if(itemName == QLatin1String("highlight")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_highlight_pri"); + frameItem->frameType = HbFrameDrawer::ThreePiecesHorizontal; + (const_cast (primitive))->setZValue(-1); + } + + if (itemName == QLatin1String("frame")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_overlay"); + frameItem->frameType = HbFrameDrawer::NinePieces; + (const_cast (primitive))->setZValue(-4); + } + + if (itemName == QLatin1String("background")) { + HbStyleFramePrimitiveData *frameItem = hbstyleprimitivedata_cast(primitiveData); + frameItem->frameGraphicsName= QLatin1String("qtg_fr_tumbler_bg"); + frameItem->frameType = HbFrameDrawer::NinePieces; + (const_cast (primitive))->setZValue(-5); + } +} + /*! \reimp */ void HbTumbleView::updatePrimitives() { Q_D(HbTumbleView); - - HbStyleOption opt; - initStyleOption(&opt); + HbListView::updatePrimitives(); + if(d->mBackground){ + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mBackground); + style()->updatePrimitive(d->mBackground,&data,this); + } - if(d->mBackground) { - HbStylePrivate::updatePrimitive(d->mBackground,HbStylePrivate::P_TumbleView_background,&opt); - } if(d->mFrame) { - HbStylePrivate::updatePrimitive(d->mFrame,HbStylePrivate::P_TumbleView_frame,&opt); - } + HbStyleFramePrimitiveData data; + initPrimitiveData(&data,d->mFrame); + style()->updatePrimitive(d->mFrame,&data,this); + } + if(d->mHighlight) { - HbStylePrivate::updatePrimitive(d->mHighlight,HbStylePrivate::P_TumbleView_highlight,&opt); - } - if(d->mDivider){ - HbStylePrivate::updatePrimitive(d->mDivider, HbStylePrivate::P_DateTimePicker_separator, &opt); - } - HbListView::updatePrimitives(); + HbStyleFramePrimitiveData data; + initPrimitiveData (&data,d->mHighlight); + style()->updatePrimitive(d->mHighlight,&data,this); + } + + if (d->mDivider) { + HbStyleFramePrimitiveData data; + initPrimitiveData (&data,d->mDivider); + style()->updatePrimitive(d->mDivider,&data,this); + } }