本文整理汇总了C++中FlagStatus::temporary_increase方法的典型用法代码示例。如果您正苦于以下问题:C++ FlagStatus::temporary_increase方法的具体用法?C++ FlagStatus::temporary_increase怎么用?C++ FlagStatus::temporary_increase使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FlagStatus
的用法示例。
在下文中一共展示了FlagStatus::temporary_increase方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Flags
TEST(FlagStatus, temporary_increase) {
FlagStatus flagStatus;
// Do nothing with ModifierFlag::NONE.
flagStatus.temporary_increase(ModifierFlag::NONE);
EXPECT_EQ(Flags(0), flagStatus.makeFlags());
flagStatus.increase(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L);
EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L), flagStatus.makeFlags());
flagStatus.temporary_increase(ModifierFlag::OPTION_L);
EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L | ModifierFlag::OPTION_L), flagStatus.makeFlags());
// temporary_increase will reset by flagStatus.set
flagStatus.set(KeyCode::COMMAND_L, Flags(ModifierFlag::COMMAND_L));
EXPECT_EQ(Flags(ModifierFlag::COMMAND_L | ModifierFlag::CONTROL_L), flagStatus.makeFlags());
}
示例2: stfc
TEST(FlagStatus, ScopedTemporaryFlagsChanger) {
{
FlagStatus flagStatus;
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.increase(ModifierFlag::SHIFT_R);
flagStatus.temporary_increase(ModifierFlag::CONTROL_L);
flagStatus.lock_increase(ModifierFlag::COMMAND_R);
flagStatus.sticky_increase(ModifierFlag::OPTION_R);
EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());
{
FlagStatus::ScopedTemporaryFlagsChanger stfc(flagStatus,
ModifierFlag::FN | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_R);
EXPECT_EQ(Flags(ModifierFlag::FN | ModifierFlag::OPTION_L | ModifierFlag::SHIFT_R), flagStatus.makeFlags());
}
EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());
flagStatus.decrease(ModifierFlag::SHIFT_L);
flagStatus.decrease(ModifierFlag::SHIFT_L);
flagStatus.decrease(ModifierFlag::SHIFT_L);
EXPECT_EQ(Flags(ModifierFlag::SHIFT_L | ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());
flagStatus.decrease(ModifierFlag::SHIFT_L);
EXPECT_EQ(Flags(ModifierFlag::SHIFT_R | ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_R | ModifierFlag::OPTION_R), flagStatus.makeFlags());
}
// ------------------------------------------------------------
{
FlagStatus flagStatus;
flagStatus.decrease(ModifierFlag::SHIFT_L);
flagStatus.decrease(ModifierFlag::SHIFT_L);
{
Flags flags(ModifierFlag::SHIFT_R);
FlagStatus::ScopedTemporaryFlagsChanger stfc(flagStatus, flags);
EXPECT_EQ(Flags(ModifierFlag::SHIFT_R), flagStatus.makeFlags());
}
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.increase(ModifierFlag::SHIFT_L);
EXPECT_EQ(Flags(0), flagStatus.makeFlags());
}
}
示例3:
TEST(FlagStatus, getStickyFlags) {
FlagStatus flagStatus;
EXPECT_EQ(Flags(0), flagStatus.getStickyFlags());
flagStatus.increase(ModifierFlag::SHIFT_L);
flagStatus.temporary_increase(ModifierFlag::SHIFT_R);
flagStatus.sticky_increase(ModifierFlag::COMMAND_L);
flagStatus.sticky_increase(ModifierFlag::OPTION_L);
EXPECT_EQ(ModifierFlag::COMMAND_L | ModifierFlag::OPTION_L, flagStatus.getStickyFlags());
}