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


C++ Vector_ModifierFlag::size方法代码示例

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


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

示例1:

TEST(FlagStatus, subtract) {
  FlagStatus flagStatus1;
  FlagStatus flagStatus2;

  flagStatus1.increase(ModifierFlag::CONTROL_L);
  flagStatus1.increase(ModifierFlag::OPTION_L);
  flagStatus1.increase(ModifierFlag::SHIFT_L);
  flagStatus1.increase(ModifierFlag::SHIFT_L);
  flagStatus1.decrease(ModifierFlag::COMMAND_R);

  flagStatus2.increase(ModifierFlag::CONTROL_L);
  flagStatus2.increase(ModifierFlag::FN);

  Vector_ModifierFlag v;
  flagStatus1.subtract(flagStatus2, v);
  EXPECT_EQ(3, v.size());
  EXPECT_EQ(ModifierFlag::OPTION_L, v[0]);
  EXPECT_EQ(ModifierFlag::SHIFT_L,  v[1]);
  EXPECT_EQ(ModifierFlag::SHIFT_L,  v[2]);

  flagStatus2.subtract(flagStatus1, v);
  EXPECT_EQ(2, v.size());
  EXPECT_EQ(ModifierFlag::COMMAND_R, v[0]);
  EXPECT_EQ(ModifierFlag::FN,        v[1]);
}
开发者ID:bohlander,项目名称:KeyRemap4MacBook,代码行数:25,代码来源:test.cpp

示例2:

  bool
  FlagStatus::isOn(const Vector_ModifierFlag& modifierFlags) const
  {
    bool strict = false;

    for (size_t i = 0; i < modifierFlags.size(); ++i) {
      if (modifierFlags[i] == ModifierFlag::ZERO) continue;

      if (modifierFlags[i] == ModifierFlag::NONE) {
        strict = true;
      } else {
        if (! isOn(modifierFlags[i])) return false;
      }
    }

    // If modifierFlags contains ModifierFlag::NONE,
    // return false when unspecified modifierflag is pressed.
    if (strict) {
      for (size_t i = 0; i < item_.size(); ++i) {
        if (item_[i].sum(true) > 0 &&
            ! modifierFlags.is_include(item_[i].flag_)) {
          return false;
        }
      }
    }

    return true;
  }
开发者ID:Brijen,项目名称:Karabiner,代码行数:28,代码来源:FlagStatus.cpp

示例3: switch

    void
    DependingPressingPeriodKeyToKey::dokeyup(void)
    {
      switch (periodtype_) {
        case PeriodType::SHORT_PERIOD:
        {
          periodtype_ = PeriodType::NONE;
          keytokey_[KeyToKeyType::SHORT_PERIOD].call_remap_with_VK_PSEUDO_KEY(EventType::UP);
          break;
        }

        case PeriodType::LONG_PERIOD:
        {
          periodtype_ = PeriodType::NONE;
          keytokey_[KeyToKeyType::LONG_PERIOD].call_remap_with_VK_PSEUDO_KEY(EventType::UP);

          // ----------------------------------------
          // handle PRESSING_TARGET_KEY_ONLY
          if (periodMS_.enabled(PeriodMS::Type::PRESSING_TARGET_KEY_ONLY)) {
            if (! eventWatcherTarget_.isAnyEventHappen() &&
                ic_.getmillisec() < periodMS_.get(PeriodMS::Type::PRESSING_TARGET_KEY_ONLY)) {
              // ----------------------------------------
              // Restore FlagStatus at key down.
              Vector_ModifierFlag added;
              Vector_ModifierFlag removed;
              FlagStatus::globalFlagStatus().subtract(flagStatusWhenKeyPressed_, added);
              flagStatusWhenKeyPressed_.subtract(FlagStatus::globalFlagStatus(), removed);

              for (size_t i = 0; i < added.size(); ++i) {
                FlagStatus::globalFlagStatus().decrease(added[i]);
              }
              for (size_t i = 0; i < removed.size(); ++i) {
                FlagStatus::globalFlagStatus().increase(removed[i]);
              }

              // ----------------------------------------
              keytokey_[KeyToKeyType::PRESSING_TARGET_KEY_ONLY].call_remap_with_VK_PSEUDO_KEY(EventType::DOWN);
              keytokey_[KeyToKeyType::PRESSING_TARGET_KEY_ONLY].call_remap_with_VK_PSEUDO_KEY(EventType::UP);

              // ----------------------------------------
              // Restore current FlagStatus.
              for (size_t i = 0; i < added.size(); ++i) {
                FlagStatus::globalFlagStatus().increase(added[i]);
              }
              for (size_t i = 0; i < removed.size(); ++i) {
                FlagStatus::globalFlagStatus().decrease(removed[i]);
              }
            }
          }

          break;
        }

        case PeriodType::LONG_LONG_PERIOD:
        {
          periodtype_ = PeriodType::NONE;
          keytokey_[KeyToKeyType::LONG_LONG_PERIOD].call_remap_with_VK_PSEUDO_KEY(EventType::UP);
          break;
        }

        case PeriodType::NONE:
          // do nothing
          break;
      }

      eventWatcherTarget_.unobserve();
    }
开发者ID:cokerxi,项目名称:Karabiner,代码行数:67,代码来源:DependingPressingPeriodKeyToKey.cpp


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