src/hbcore/effects/hbeffectdropshadow.cpp
changeset 5 627c4a0fd0e7
parent 0 16d8024aca5e
child 34 ed14f46c0e55
equal deleted inserted replaced
3:11d3954df52a 5:627c4a0fd0e7
    25 #include <hbglobal.h>
    25 #include <hbglobal.h>
    26 #ifdef HB_FILTER_EFFECTS
    26 #ifdef HB_FILTER_EFFECTS
    27 
    27 
    28 #include "hbeffectgroup_p.h"
    28 #include "hbeffectgroup_p.h"
    29 #include "hbeffectdef_p.h"
    29 #include "hbeffectdef_p.h"
    30 #include "hbeffectdropshadow_p.h"
    30 #include "hbeffectdropshadow_p.h" //krazy:exclude=includes
    31 #include "hbeffectfilter_p.h"
    31 #include "hbeffectfilter_p.h"
    32 #include "hbvgchainedeffect_p.h"
    32 #include "hbvgchainedeffect_p.h"
    33 #include "hbvgshadoweffect_p.h"
    33 #include "hbvgshadoweffect_p.h"
    34 #include "hbvgoutlineeffect_p.h"
    34 #include "hbvgoutlineeffect_p.h"
    35 #include <QGraphicsItem>
    35 #include <QGraphicsItem>
    41 
    41 
    42 HbEffectDropShadow::HbEffectDropShadow(
    42 HbEffectDropShadow::HbEffectDropShadow(
    43     const HbEffectFxmlFilterData &data,
    43     const HbEffectFxmlFilterData &data,
    44     QGraphicsItem *item,
    44     QGraphicsItem *item,
    45     HbEffectGroup *group) :
    45     HbEffectGroup *group) :
    46         HbEffectFilter(0, item, group),
    46     HbEffectFilter(0, item, group),
    47         mAnimationO(0),
    47     mAnimationO(0),
    48         mAnimationS(0),
    48     mAnimationS(0),
    49         mAnimationOutlineX(0),
    49     mAnimationOutlineX(0),
    50         mAnimationOutlineY(0),
    50     mAnimationOutlineY(0),
    51         mAnimationOffsetX(0),
    51     mAnimationOffsetX(0),
    52         mAnimationOffsetY(0),
    52     mAnimationOffsetY(0),
    53         mAnimationC(0),
    53     mAnimationC(0),
    54         mVgOutline(0),
    54     mVgOutline(0),
    55         mType(HbEffectDropShadow::outline)
    55     mType(HbEffectDropShadow::outline)
    56 {
    56 {
    57     // Default values from FXML spec
    57     // Default values from FXML spec
    58     qreal opacity_start = 1;
    58     qreal opacity_start = 1;
    59     qreal opacity_end = 1;
    59     qreal opacity_end = 1;
    60 
    60 
    75     QColor color_end(0, 0, 0);
    75     QColor color_end(0, 0, 0);
    76 
    76 
    77     QList<HbEffectFxmlParamData> params = data.paramData();
    77     QList<HbEffectFxmlParamData> params = data.paramData();
    78 
    78 
    79     // Handle FXML parameters
    79     // Handle FXML parameters
    80     Q_FOREACH(const HbEffectFxmlParamData &param, params) {
    80     Q_FOREACH(const HbEffectFxmlParamData & param, params) {
    81         if (param.name() == FXML_KEYWORD_DROP_SHADOW_OPACITY) {
    81         if (param.name() == FXML_KEYWORD_DROP_SHADOW_OPACITY) {
    82             mAnimationO = createAnimation(param, opacity_start, opacity_end, group);
    82             mAnimationO = createAnimation(param, opacity_start, opacity_end, group);
    83         }
    83         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_COLOR) {
    84         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_COLOR) {
       
    85             mAnimationC = createAnimation(param, color_start, color_end, group);
    84             mAnimationC = createAnimation(param, color_start, color_end, group);
    86         }
    85         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OFFSET_X) {
    87         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OFFSET_X) {
       
    88             mAnimationOffsetX = createAnimation(param, offset_x_start, offset_x_end, group);
    86             mAnimationOffsetX = createAnimation(param, offset_x_start, offset_x_end, group);
    89             // If offset parameters are used, it is a drop shadow effect.
    87             // If offset parameters are used, it is a drop shadow effect.
    90             mType = dropShadow;
    88             mType = dropShadow;
    91         }
    89         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OFFSET_Y) {
    92         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OFFSET_Y) {
       
    93             mAnimationOffsetY = createAnimation(param, offset_y_start, offset_y_end, group);
    90             mAnimationOffsetY = createAnimation(param, offset_y_start, offset_y_end, group);
    94             // If offset parameters are used, it is a drop shadow effect.
    91             // If offset parameters are used, it is a drop shadow effect.
    95             mType = dropShadow;
    92             mType = dropShadow;
    96         }
    93         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_STEEPNESS) {
    97         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_STEEPNESS) {
       
    98             mAnimationS = createAnimation(param, steepness_start, steepness_end, group);
    94             mAnimationS = createAnimation(param, steepness_start, steepness_end, group);
    99         }
    95         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OUTLINE_X) {
   100         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OUTLINE_X) {
       
   101             mAnimationOutlineX = createAnimation(param, outline_x_start, outline_x_end, group);
    96             mAnimationOutlineX = createAnimation(param, outline_x_start, outline_x_end, group);
   102         }
    97         } else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OUTLINE_Y) {
   103         else if (param.name() == FXML_KEYWORD_DROP_SHADOW_OUTLINE_Y) {
       
   104             mAnimationOutlineY = createAnimation(param, outline_y_start, outline_y_end, group);
    98             mAnimationOutlineY = createAnimation(param, outline_y_start, outline_y_end, group);
   105         }
    99         }
   106     }
   100     }
   107 
   101 
   108     // Create VG effect if there were effect parameters defined
   102     // Create VG effect if there were effect parameters defined
   109     if (mEffectDefined) {
   103     if (mEffectDefined) {
   110         // Add effect to the filter effect chain in the effect group
   104         // Add effect to the filter effect chain in the effect group
   111         HbVgChainedEffect *chain = HbEffectAbstract::group()->vgEffect();
   105         HbVgChainedEffect *chain = HbEffectAbstract::group()->vgEffect();
   112         
   106 
   113         if (mType == dropShadow) {
   107         if (mType == dropShadow) {
   114             mVgOutline = new HbVgShadowEffect();
   108             mVgOutline = new HbVgShadowEffect();
   115         } else {
   109         } else {
   116             mVgOutline = new HbVgOutlineEffect();
   110             mVgOutline = new HbVgOutlineEffect();
   117         }
   111         }
   163 
   157 
   164         if (mAnimationS) {
   158         if (mAnimationS) {
   165             mVgOutline->setSteepness(qVariantValue<qreal>(mAnimationS->currentValue()));
   159             mVgOutline->setSteepness(qVariantValue<qreal>(mAnimationS->currentValue()));
   166         }
   160         }
   167         if (mAnimationC) {
   161         if (mAnimationC) {
   168             mVgOutline->setColor(qVariantValue<QColor>(mAnimationC->currentValue()));            
   162             mVgOutline->setColor(qVariantValue<QColor>(mAnimationC->currentValue()));
   169         }
   163         }
   170         if (mAnimationO) {
   164         if (mAnimationO) {
   171             mVgOutline->setOpacity(qVariantValue<qreal>(mAnimationO->currentValue()));            
   165             mVgOutline->setOpacity(qVariantValue<qreal>(mAnimationO->currentValue()));
   172         }
   166         }
   173     }
   167     }
   174 }
   168 }
   175 
   169 
   176 #endif
   170 #endif