TBool CHuiFxParameterManager::Update(CHuiFxEngine& aEngine, const TRect& aVisualRect)
    {
    // Calculate all current parameter values
    TPtrHashMapIter<TDesC, MHuiFxParameter> i(iParameters);
    
    TBool parameterChanged = EFalse;
    for (i.NextValue(); i.CurrentValue(); i.NextValue())
        {
        MHuiFxParameter* p = (MHuiFxParameter*)i.CurrentValue();
        if ( p->IsAnimated() )
            {
            parameterChanged = ETrue;
            }
        
        TReal32 newValue = p->ReferenceValue();
        ResolveReference( newValue, p->ReferencePoint(), aEngine, aVisualRect );
        if ( newValue != p->ReferenceValue() )
            {
            p->SetReferenceValue( newValue );
            parameterChanged = ETrue;
            }
            
        if ( p->StartReference() != EReferencePointUndefined )
            {
            newValue = p->StartValue();
            ResolveReference( newValue, p->StartReference(), aEngine, aVisualRect );
            if ( newValue != p->StartValue() )
                {
                p->SetStartValue( newValue );
                parameterChanged = ETrue;
                }
            }
            
        if ( p->EndReference() != EReferencePointUndefined )
            {
            newValue = p->EndValue();
            ResolveReference( newValue, p->EndReference(), aEngine, aVisualRect );
            if ( newValue != p->EndValue() )
                {
                p->SetEndValue( newValue );
                parameterChanged = ETrue;
                }
            }
            
        p->Update();
        }
    return parameterChanged;
    }
예제 #2
0
파일: url.cpp 프로젝트: whrool/Net
Url Url::ResolveReference(const std::string& strRawUrl) const
{
    return ResolveReference(Parse(strRawUrl));
}