当前位置: 首页>>代码示例>>C++>>正文


C++ AnimationPlayerCollection::EnsureStyleRuleFor方法代码示例

本文整理汇总了C++中AnimationPlayerCollection::EnsureStyleRuleFor方法的典型用法代码示例。如果您正苦于以下问题:C++ AnimationPlayerCollection::EnsureStyleRuleFor方法的具体用法?C++ AnimationPlayerCollection::EnsureStyleRuleFor怎么用?C++ AnimationPlayerCollection::EnsureStyleRuleFor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AnimationPlayerCollection的用法示例。


在下文中一共展示了AnimationPlayerCollection::EnsureStyleRuleFor方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: while

void
CommonAnimationManager::AddStyleUpdatesTo(RestyleTracker& aTracker)
{
    TimeStamp now = mPresContext->RefreshDriver()->MostRecentRefresh();

    PRCList* next = PR_LIST_HEAD(&mElementCollections);
    while (next != &mElementCollections) {
        AnimationPlayerCollection* collection =
            static_cast<AnimationPlayerCollection*>(next);
        next = PR_NEXT_LINK(next);

        if (!collection->mNeedsRefreshes) {
            continue;
        }

        collection->EnsureStyleRuleFor(now, EnsureStyleRule_IsNotThrottled);

        dom::Element* elementToRestyle = collection->GetElementToRestyle();
        if (elementToRestyle) {
            nsRestyleHint rshint = collection->IsForTransitions()
                                   ? eRestyle_CSSTransitions : eRestyle_CSSAnimations;
            aTracker.AddPendingRestyle(elementToRestyle, rshint, nsChangeHint(0));
        }
    }
}
开发者ID:Antonius32,项目名称:Pale-Moon,代码行数:25,代码来源:AnimationCommon.cpp

示例2: GetAnimations

nsIStyleRule*
CommonAnimationManager::GetAnimationRule(mozilla::dom::Element* aElement,
                                         nsCSSPseudoElements::Type aPseudoType)
{
  MOZ_ASSERT(
    aPseudoType == nsCSSPseudoElements::ePseudo_NotPseudoElement ||
    aPseudoType == nsCSSPseudoElements::ePseudo_before ||
    aPseudoType == nsCSSPseudoElements::ePseudo_after,
    "forbidden pseudo type");

  if (!mPresContext->IsDynamic()) {
    // For print or print preview, ignore animations.
    return nullptr;
  }

  AnimationPlayerCollection* collection =
    GetAnimations(aElement, aPseudoType, false);
  if (!collection) {
    return nullptr;
  }

  RestyleManager* restyleManager = mPresContext->RestyleManager();
  if (restyleManager->SkipAnimationRules()) {
    return nullptr;
  }

  collection->EnsureStyleRuleFor(
    mPresContext->RefreshDriver()->MostRecentRefresh(),
    EnsureStyleRule_IsNotThrottled);

  return collection->mStyleRule;
}
开发者ID:tefn3849,项目名称:gecko-dev,代码行数:32,代码来源:AnimationCommon.cpp

示例3: GetAnimationPlayers

nsIStyleRule*
CommonAnimationManager::GetAnimationRule(mozilla::dom::Element* aElement,
                                         nsCSSPseudoElements::Type aPseudoType)
{
  MOZ_ASSERT(
    aPseudoType == nsCSSPseudoElements::ePseudo_NotPseudoElement ||
    aPseudoType == nsCSSPseudoElements::ePseudo_before ||
    aPseudoType == nsCSSPseudoElements::ePseudo_after,
    "forbidden pseudo type");

  if (!mPresContext->IsDynamic()) {
    // For print or print preview, ignore animations.
    return nullptr;
  }

  AnimationPlayerCollection* collection =
    GetAnimationPlayers(aElement, aPseudoType, false);
  if (!collection) {
    return nullptr;
  }

  RestyleManager* restyleManager = mPresContext->RestyleManager();
  if (restyleManager->SkipAnimationRules()) {
    // During the non-animation part of processing restyles, we don't
    // add the animation rule.

    if (collection->mStyleRule && restyleManager->PostAnimationRestyles()) {
      collection->PostRestyleForAnimation(mPresContext);
    }

    return nullptr;
  }

  // Animations should already be refreshed, but transitions may not be.
  // Note that this is temporary, we would like both animations and transitions
  // to both be refreshed by this point.
  if (IsAnimationManager()) {
    NS_WARN_IF_FALSE(!collection->mNeedsRefreshes ||
                     collection->mStyleRuleRefreshTime ==
                       mPresContext->RefreshDriver()->MostRecentRefresh(),
                     "should already have refreshed style rule");
  } else {
    // FIXME: Remove this assignment.  See bug 1061364.
    collection->mNeedsRefreshes = true;
    collection->EnsureStyleRuleFor(
      mPresContext->RefreshDriver()->MostRecentRefresh(),
      EnsureStyleRule_IsNotThrottled);
  }

  return collection->mStyleRule;
}
开发者ID:stormandsun,项目名称:firefox,代码行数:51,代码来源:AnimationCommon.cpp


注:本文中的AnimationPlayerCollection::EnsureStyleRuleFor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。