src/hbwidgets/sliders/hbslider.cpp
changeset 21 4633027730f5
parent 6 c3690ec91ef8
child 23 e6ad4ef83b23
equal deleted inserted replaced
7:923ff622b8b9 21:4633027730f5
    27 #include "hbslider_p.h"
    27 #include "hbslider_p.h"
    28 #include "hbslidercontrol_p.h"
    28 #include "hbslidercontrol_p.h"
    29 #include "hbslidercontrol_p_p.h"
    29 #include "hbslidercontrol_p_p.h"
    30 #include "hbnamespace_p.h"
    30 #include "hbnamespace_p.h"
    31 #include "hbsliderhandle_p.h"
    31 #include "hbsliderhandle_p.h"
    32 
    32 #include "hbstyle_p.h"
    33 #include "hbstyleoptionslider_p.h"
    33 #include "hbstyleoptionslider_p.h"
    34 #include "hbslidertickmarks_p.h"
    34 #include "hbslidertickmarks_p.h"
    35 #include "hbslidertickmarkslabel_p.h"
    35 #include "hbslidertickmarkslabel_p.h"
    36 #include "hbabstractbutton.h"
    36 #include "hbabstractbutton.h"
    37 #include <hbwidgetfeedback.h>
    37 #include <hbwidgetfeedback.h>
   319     switch ( element ) {
   319     switch ( element ) {
   320         case HbSlider::IncreaseElement:
   320         case HbSlider::IncreaseElement:
   321             // create element only if icon is set on that
   321             // create element only if icon is set on that
   322             if ( icons.contains( element) && !elementItemMap.contains(element)){
   322             if ( icons.contains( element) && !elementItemMap.contains(element)){
   323                 ItemPrimitive itemPrimStrct;
   323                 ItemPrimitive itemPrimStrct;
   324                 itemPrimStrct.type = HbStyle::P_SliderElement_increase;
   324                 itemPrimStrct.type = HbStylePrivate::P_SliderElement_increase;
   325                 itemPrimStrct.item = q->style( )->createPrimitive(HbStyle::P_SliderElement_increase,q );
   325                 itemPrimStrct.item = HbStylePrivate::createPrimitive(HbStylePrivate::P_SliderElement_increase,q );
   326                 HbStyle::setItemName( itemPrimStrct.item, "increment-icon" );                    
   326                 HbStyle::setItemName( itemPrimStrct.item, "increment-icon" );                    
   327                 itemPrimStrct.touchItem = q->style( )->createPrimitive( HbStyle::P_SliderElement_touchincrease,q );
   327                 itemPrimStrct.touchItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_touchincrease,q );
   328                 HbStyle::setItemName( itemPrimStrct.touchItem, "increment-icon-toucharea" );
   328                 HbStyle::setItemName( itemPrimStrct.touchItem, "increment-icon-toucharea" );
   329                 HbStyleOptionSlider option;
   329                 HbStyleOptionSlider option;
   330                 q->initStyleOption( &option );
   330                 q->initStyleOption( &option );
   331                 q->style( )->updatePrimitive (itemPrimStrct.touchItem,HbStyle::P_SliderElement_touchincrease,&option);
   331                 HbStylePrivate::updatePrimitive (itemPrimStrct.touchItem,HbStylePrivate::P_SliderElement_touchincrease,&option);
   332                 elementItemMap[HbSlider::IncreaseElement]=itemPrimStrct;
   332                 elementItemMap[HbSlider::IncreaseElement]=itemPrimStrct;
   333                 q->repolish( );
   333                 q->repolish( );
   334        
   334        
   335             }
   335             }
   336             break;
   336             break;
   337         case HbSlider::DecreaseElement:
   337         case HbSlider::DecreaseElement:
   338             // element will not be created if icon is not set on that element
   338             // element will not be created if icon is not set on that element
   339             if ( icons.contains( element) && !elementItemMap.contains(element)) {
   339             if ( icons.contains( element) && !elementItemMap.contains(element)) {
   340                 ItemPrimitive itemPrimStrct;
   340                 ItemPrimitive itemPrimStrct;
   341                 itemPrimStrct.item= q->style( )->createPrimitive(HbStyle::P_SliderElement_decrease,q );
   341                 itemPrimStrct.item= HbStylePrivate::createPrimitive(HbStylePrivate::P_SliderElement_decrease,q );
   342                 itemPrimStrct.type = HbStyle::P_SliderElement_decrease;
   342                 itemPrimStrct.type = HbStylePrivate::P_SliderElement_decrease;
   343                 HbStyle::setItemName( itemPrimStrct.item,"decrement-icon" );
   343                 HbStyle::setItemName( itemPrimStrct.item,"decrement-icon" );
   344                 itemPrimStrct.touchItem = q->style( )->createPrimitive( HbStyle::P_SliderElement_touchdecrease,q );
   344                 itemPrimStrct.touchItem = HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_touchdecrease,q );
   345                 HbStyle::setItemName( itemPrimStrct.touchItem, "decrement-icon-toucharea" );
   345                 HbStyle::setItemName( itemPrimStrct.touchItem, "decrement-icon-toucharea" );
   346                 elementItemMap[HbSlider::DecreaseElement]=itemPrimStrct;
   346                 elementItemMap[HbSlider::DecreaseElement]=itemPrimStrct;
   347                 HbStyleOptionSlider option;
   347                 HbStyleOptionSlider option;
   348                 q->initStyleOption( &option );
   348                 q->initStyleOption( &option );
   349                 q->style( )->updatePrimitive (itemPrimStrct.touchItem,HbStyle::P_SliderElement_touchdecrease,&option);
   349                 HbStylePrivate::updatePrimitive (itemPrimStrct.touchItem,HbStylePrivate::P_SliderElement_touchdecrease,&option);
   350                 q->repolish( );
   350                 q->repolish( );
   351                            
   351                            
   352             }
   352             }
   353             break;
   353             break;
   354         case HbSlider::IconElement:
   354         case HbSlider::IconElement:
   355             if ( icons.contains( element) && !elementItemMap.contains(element) ) {
   355             if ( icons.contains( element) && !elementItemMap.contains(element) ) {
   356                     ItemPrimitive itemPrimStrct;
   356                     ItemPrimitive itemPrimStrct;
   357                     itemPrimStrct.item = q->style( )->createPrimitive(HbStyle::P_SliderElement_icon,q );
   357                     itemPrimStrct.item = HbStylePrivate::createPrimitive(HbStylePrivate::P_SliderElement_icon,q );
   358                     itemPrimStrct.type = HbStyle::P_SliderElement_icon;
   358                     itemPrimStrct.type = HbStylePrivate::P_SliderElement_icon;
   359                     HbStyle::setItemName( itemPrimStrct.item, "icon-icon" );
   359                     HbStyle::setItemName( itemPrimStrct.item, "icon-icon" );
   360                     HbAbstractButton *sliderIcon = new HbAbstractButton( q );
   360                     HbAbstractButton *sliderIcon = new HbAbstractButton( q );
   361                     HbStyle::setItemName( sliderIcon, "icon" );
   361                     HbStyle::setItemName( sliderIcon, "icon" );
   362                     itemPrimStrct.touchItem = sliderIcon;
   362                     itemPrimStrct.touchItem = sliderIcon;
   363                     elementItemMap [HbSlider::IconElement]=itemPrimStrct;
   363                     elementItemMap [HbSlider::IconElement]=itemPrimStrct;
   375             }
   375             }
   376             break;
   376             break;
   377         case HbSlider::TextElement:
   377         case HbSlider::TextElement:
   378             if( !sliderTextString.isEmpty( ) && !elementItemMap.contains(element)){
   378             if( !sliderTextString.isEmpty( ) && !elementItemMap.contains(element)){
   379                 ItemPrimitive itemPrimStrct;
   379                 ItemPrimitive itemPrimStrct;
   380                 itemPrimStrct.type = HbStyle::P_SliderElement_text;
   380                 itemPrimStrct.type = HbStylePrivate::P_SliderElement_text;
   381                 itemPrimStrct.item = q->style( )->createPrimitive( HbStyle::P_SliderElement_text,q );
   381                 itemPrimStrct.item = HbStylePrivate::createPrimitive( HbStylePrivate::P_SliderElement_text,q );
   382                 HbStyle::setItemName( itemPrimStrct.item,"text_item_element" );
   382                 HbStyle::setItemName( itemPrimStrct.item,"text_item_element" );
   383                 HbAbstractButton *sliderTextButton = new HbAbstractButton( q ); 
   383                 HbAbstractButton *sliderTextButton = new HbAbstractButton( q ); 
   384                 HbStyle::setItemName( sliderTextButton, "text_element" );
   384                 HbStyle::setItemName( sliderTextButton, "text_element" );
   385                 itemPrimStrct.touchItem = sliderTextButton;   
   385                 itemPrimStrct.touchItem = sliderTextButton;   
   386                 q->connect( sliderTextButton, SIGNAL( clicked( ) ), q, SIGNAL( textClicked( ) ) );
   386                 q->connect( sliderTextButton, SIGNAL( clicked( ) ), q, SIGNAL( textClicked( ) ) );
   399      HbStyleOptionSlider option;
   399      HbStyleOptionSlider option;
   400      q->initStyleOption( &option );
   400      q->initStyleOption( &option );
   401      option.sliderElementIcon =icons.value(element ); 
   401      option.sliderElementIcon =icons.value(element ); 
   402      option.text = sliderTextString; 
   402      option.text = sliderTextString; 
   403      if (elementItemMap.contains(element)) {
   403      if (elementItemMap.contains(element)) {
   404          q->style( )->updatePrimitive( elementItemMap[element].item,elementItemMap[element].type,&option );
   404          HbStylePrivate::updatePrimitive( elementItemMap[element].item,elementItemMap[element].type,&option );
   405 
   405 
   406      }  //return created;
   406      }  //return created;
   407 }
   407 }
   408 
   408 
   409 
   409 
   965         if ( d->elements.contains( HbSlider::TextElement ))  {
   965         if ( d->elements.contains( HbSlider::TextElement ))  {
   966             d->elementWidget( HbSlider::TextElement );  
   966             d->elementWidget( HbSlider::TextElement );  
   967         }
   967         }
   968         // sets text for tooltip also
   968         // sets text for tooltip also
   969         d->sliderControl->setToolTip( text );
   969         d->sliderControl->setToolTip( text );
   970         repolish();
       
   971     }
   970     }
   972 }
   971 }
   973 
   972 
   974 /*!
   973 /*!
   975     @beta
   974     @beta
  1781  */
  1780  */
  1782 QGraphicsItem *HbSlider::primitive( HbStyle::Primitive primitive ) const
  1781 QGraphicsItem *HbSlider::primitive( HbStyle::Primitive primitive ) const
  1783 {
  1782 {
  1784     Q_D( const HbSlider );
  1783     Q_D( const HbSlider );
  1785     switch ( primitive ) {
  1784     switch ( primitive ) {
  1786         case HbStyle::P_Slider_thumb:
  1785         case HbStylePrivate::P_Slider_thumb:
  1787             return HbSliderControlPrivate::d_ptr( d->sliderControl )->handle->primitive( 
  1786             return HbSliderControlPrivate::d_ptr( d->sliderControl )->handle->primitive( 
  1788                 HbStyle::P_Slider_thumb );
  1787                 (HbStyle::Primitive)HbStylePrivate::P_Slider_thumb );
  1789         case HbStyle::P_SliderElement_text:
  1788         case HbStylePrivate::P_SliderElement_text:
  1790             if (d->elementItemMap.contains (HbSlider::TextElement) ){
  1789             if (d->elementItemMap.contains (HbSlider::TextElement) ){
  1791                 return d->elementItemMap[HbSlider::TextElement].item;
  1790                 return d->elementItemMap[HbSlider::TextElement].item;
  1792             }
  1791             }
  1793             break;
  1792             break;
  1794         case HbStyle::P_SliderElement_icon:
  1793         case HbStylePrivate::P_SliderElement_icon:
  1795             if (d->elementItemMap.contains (HbSlider::IconElement)) {
  1794             if (d->elementItemMap.contains (HbSlider::IconElement)) {
  1796                 return d->elementItemMap[HbSlider::IconElement].item;
  1795                 return d->elementItemMap[HbSlider::IconElement].item;
  1797             }
  1796             }
  1798             break;
  1797             break;
  1799         case HbStyle::P_SliderElement_increase:
  1798         case HbStylePrivate::P_SliderElement_increase:
  1800             if (d->elementItemMap.contains (HbSlider::IncreaseElement)) {
  1799             if (d->elementItemMap.contains (HbSlider::IncreaseElement)) {
  1801                 return d->elementItemMap[HbSlider::IncreaseElement].item;
  1800                 return d->elementItemMap[HbSlider::IncreaseElement].item;
  1802             }
  1801             }
  1803             break;
  1802             break;
  1804         case HbStyle::P_SliderElement_decrease:
  1803         case HbStylePrivate::P_SliderElement_decrease:
  1805             if (d->elementItemMap.contains (HbSlider::DecreaseElement)) {
  1804             if (d->elementItemMap.contains (HbSlider::DecreaseElement)) {
  1806                 return d->elementItemMap[HbSlider::DecreaseElement].item;
  1805                 return d->elementItemMap[HbSlider::DecreaseElement].item;
  1807             }
  1806             }
  1808             break;
  1807             break;
  1809         case HbStyle::P_Slider_groove:
  1808         case HbStylePrivate::P_Slider_groove:
  1810             return HbSliderControlPrivate::d_ptr( d->sliderControl )->groove;
  1809             return HbSliderControlPrivate::d_ptr( d->sliderControl )->groove;
  1811         case  HbStyle::P_SliderElement_touchgroove:
  1810         case  HbStylePrivate::P_SliderElement_touchgroove:
  1812             return  HbSliderControlPrivate::d_ptr( d->sliderControl )->grooveTouchArea;
  1811             return  HbSliderControlPrivate::d_ptr( d->sliderControl )->grooveTouchArea;
  1813         
  1812         
  1814         case HbStyle::P_SliderElement_touchhandle:
  1813         case HbStylePrivate::P_SliderElement_touchhandle:
  1815             return HbSliderControlPrivate::d_ptr( d->sliderControl )->handle->primitive( 
  1814             return HbSliderControlPrivate::d_ptr( d->sliderControl )->handle->primitive( 
  1816                 HbStyle::P_SliderElement_touchhandle );
  1815                 (HbStyle::Primitive)HbStylePrivate::P_SliderElement_touchhandle );
  1817             
  1816             
  1818         default:
  1817         default:
  1819             break;
  1818             break;
  1820     }
  1819     }
  1821     return 0;
  1820     return 0;
  1831     HbStyleOptionSlider option;
  1830     HbStyleOptionSlider option;
  1832     initStyleOption( &option );
  1831     initStyleOption( &option );
  1833 
  1832 
  1834     if ( d->elementItemMap.contains(HbSlider::TextElement)) {
  1833     if ( d->elementItemMap.contains(HbSlider::TextElement)) {
  1835         option.text = d->sliderTextString; 
  1834         option.text = d->sliderTextString; 
  1836         style( )->updatePrimitive( d->elementItemMap[HbSlider::TextElement].item,d->elementItemMap[HbSlider::TextElement].type,&option );
  1835         HbStylePrivate::updatePrimitive( d->elementItemMap[HbSlider::TextElement].item,d->elementItemMap[HbSlider::TextElement].type,&option );
  1837     }
  1836     }
  1838     if ( d->elementItemMap.contains(HbSlider::IconElement)) {
  1837     if ( d->elementItemMap.contains(HbSlider::IconElement)) {
  1839         option.sliderElementIcon =d->icons.value( HbSlider::IconElement ); 
  1838         option.sliderElementIcon =d->icons.value( HbSlider::IconElement ); 
  1840         style( )->updatePrimitive( d->elementItemMap[HbSlider::IconElement].item,HbStyle::P_SliderElement_icon,&option );
  1839         HbStylePrivate::updatePrimitive( d->elementItemMap[HbSlider::IconElement].item,HbStylePrivate::P_SliderElement_icon,&option );
  1841     }
  1840     }
  1842     if ( d->elementItemMap.contains(HbSlider::IncreaseElement) ) {
  1841     if ( d->elementItemMap.contains(HbSlider::IncreaseElement) ) {
  1843         option.sliderElementIcon =d->icons.value( HbSlider::IncreaseElement ); 
  1842         option.sliderElementIcon =d->icons.value( HbSlider::IncreaseElement ); 
  1844         style( )->updatePrimitive( d->elementItemMap[HbSlider::IncreaseElement].item,HbStyle::P_SliderElement_increase,&option );
  1843         HbStylePrivate::updatePrimitive( d->elementItemMap[HbSlider::IncreaseElement].item,HbStylePrivate::P_SliderElement_increase,&option );
  1845         style( )->updatePrimitive(  d->elementItemMap[HbSlider::IncreaseElement].touchItem ,HbStyle::P_SliderElement_touchincrease,&option );
  1844         HbStylePrivate::updatePrimitive(  d->elementItemMap[HbSlider::IncreaseElement].touchItem ,HbStylePrivate::P_SliderElement_touchincrease,&option );
  1846 
  1845 
  1847     }
  1846     }
  1848     if ( d->elementItemMap.contains (HbSlider::DecreaseElement) ) {
  1847     if ( d->elementItemMap.contains (HbSlider::DecreaseElement) ) {
  1849         option.sliderElementIcon =d->icons.value( HbSlider::DecreaseElement ); 
  1848         option.sliderElementIcon =d->icons.value( HbSlider::DecreaseElement ); 
  1850         style( )->updatePrimitive( d->elementItemMap[HbSlider::DecreaseElement].item,HbStyle::P_SliderElement_decrease,&option );
  1849         HbStylePrivate::updatePrimitive( d->elementItemMap[HbSlider::DecreaseElement].item,HbStylePrivate::P_SliderElement_decrease,&option );
  1851         style( )->updatePrimitive( d->elementItemMap[HbSlider::DecreaseElement].touchItem ,HbStyle::P_SliderElement_touchdecrease,&option );
  1850         HbStylePrivate::updatePrimitive( d->elementItemMap[HbSlider::DecreaseElement].touchItem ,HbStylePrivate::P_SliderElement_touchdecrease,&option );
  1852     }
  1851     }
  1853     if ( d->sliderControl ) {
  1852     if ( d->sliderControl ) {
  1854         d->sliderControl->updatePrimitives( );
  1853         d->sliderControl->updatePrimitives( );
  1855     }
  1854     }
  1856 }
  1855 }