Skip to content

Commit

Permalink
Merge pull request #1152 from lairworks/keyModifierFunctions
Browse files Browse the repository at this point in the history
Update key modifier functions
  • Loading branch information
DanRStevens authored Jan 31, 2024
2 parents c2f11a9 + dbfe494 commit 121411e
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 22 deletions.
25 changes: 11 additions & 14 deletions NAS2D/EventHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -748,9 +748,9 @@ bool EventHandler::textInputMode()
*
* \param mod Modifier value to decode.
*/
bool EventHandler::shift(KeyModifier mod) const
bool EventHandler::shift(KeyModifier mod)
{
return KeyModifier::None != (mod & (KeyModifier::Shift | KeyModifier::Caps));
return KeyModifier::None != (mod & (KeyModifier::Shift));
}


Expand All @@ -759,7 +759,7 @@ bool EventHandler::shift(KeyModifier mod) const
*
* \param mod Modifier value to decode.
*/
bool EventHandler::alt(KeyModifier mod) const
bool EventHandler::alt(KeyModifier mod)
{
return KeyModifier::None != (mod & KeyModifier::Alt);
}
Expand All @@ -770,7 +770,7 @@ bool EventHandler::alt(KeyModifier mod) const
*
* \param mod Modifier value to decode.
*/
bool EventHandler::numlock(KeyModifier mod) const
bool EventHandler::numlock(KeyModifier mod)
{
return KeyModifier::None != (mod & KeyModifier::Num);
}
Expand All @@ -781,7 +781,7 @@ bool EventHandler::numlock(KeyModifier mod) const
*
* \param mod Modifier value to decode.
*/
bool EventHandler::control(KeyModifier mod) const
bool EventHandler::control(KeyModifier mod)
{
return KeyModifier::None != (mod & KeyModifier::Ctrl);
}
Expand All @@ -790,30 +790,27 @@ bool EventHandler::control(KeyModifier mod) const
/**
* Queries state of the Shift key modifier.
*/
bool EventHandler::query_shift() const
bool EventHandler::shift() const
{
using underlying = std::underlying_type_t<KeyModifier>;
return KeyModifier::None != static_cast<KeyModifier>(SDL_GetModState() & static_cast<underlying>(KeyModifier::Shift));
return shift(static_cast<KeyModifier>(SDL_GetModState()));
}


/**
* Queries state of the Shift key modifier.
*/
bool EventHandler::query_numlock() const
bool EventHandler::numlock() const
{
using underlying = std::underlying_type_t<KeyModifier>;
return KeyModifier::None != static_cast<KeyModifier>(SDL_GetModState() & static_cast<underlying>(KeyModifier::Num));
return numlock(static_cast<KeyModifier>(SDL_GetModState()));
}


/**
* Queries state of the Shift key modifier.
*/
bool EventHandler::query_control() const
bool EventHandler::control() const
{
using underlying = std::underlying_type_t<KeyModifier>;
return KeyModifier::None != static_cast<KeyModifier>(SDL_GetModState() & static_cast<underlying>(KeyModifier::Ctrl));
return control(static_cast<KeyModifier>(SDL_GetModState()));
}


Expand Down
16 changes: 8 additions & 8 deletions NAS2D/EventHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -317,14 +317,14 @@ namespace NAS2D
void textInputMode(bool);
bool textInputMode();

bool shift(KeyModifier mod) const;
bool numlock(KeyModifier mod) const;
bool control(KeyModifier mod) const;
bool alt(KeyModifier mod) const;

bool query_shift() const;
bool query_numlock() const;
bool query_control() const;
static bool shift(KeyModifier mod);
static bool numlock(KeyModifier mod);
static bool control(KeyModifier mod);
static bool alt(KeyModifier mod);

bool shift() const;
bool numlock() const;
bool control() const;

void pump();

Expand Down
36 changes: 36 additions & 0 deletions test/EventHandler.test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#include "NAS2D/EventHandler.h"

#include <gtest/gtest.h>


TEST(EventHandler, shift) {
EXPECT_TRUE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::Shift));
EXPECT_TRUE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::ShiftLeft));
EXPECT_TRUE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::ShiftRight));
EXPECT_TRUE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::ShiftLeft | NAS2D::EventHandler::KeyModifier::CtrlLeft));
EXPECT_FALSE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::Caps));
EXPECT_FALSE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::Ctrl));
EXPECT_FALSE(NAS2D::EventHandler::shift(NAS2D::EventHandler::KeyModifier::Alt));
}

TEST(EventHandler, numlock) {
EXPECT_TRUE(NAS2D::EventHandler::numlock(NAS2D::EventHandler::KeyModifier::Num));
EXPECT_TRUE(NAS2D::EventHandler::numlock(NAS2D::EventHandler::KeyModifier::Num | NAS2D::EventHandler::KeyModifier::CtrlLeft));
EXPECT_FALSE(NAS2D::EventHandler::numlock(NAS2D::EventHandler::KeyModifier::Shift));
EXPECT_FALSE(NAS2D::EventHandler::numlock(NAS2D::EventHandler::KeyModifier::Ctrl));
EXPECT_FALSE(NAS2D::EventHandler::numlock(NAS2D::EventHandler::KeyModifier::Alt));
}

TEST(EventHandler, control) {
EXPECT_TRUE(NAS2D::EventHandler::control(NAS2D::EventHandler::KeyModifier::Ctrl));
EXPECT_TRUE(NAS2D::EventHandler::control(NAS2D::EventHandler::KeyModifier::Ctrl | NAS2D::EventHandler::KeyModifier::CtrlLeft));
EXPECT_FALSE(NAS2D::EventHandler::control(NAS2D::EventHandler::KeyModifier::Shift));
EXPECT_FALSE(NAS2D::EventHandler::control(NAS2D::EventHandler::KeyModifier::Alt));
}

TEST(EventHandler, alt) {
EXPECT_TRUE(NAS2D::EventHandler::alt(NAS2D::EventHandler::KeyModifier::Alt));
EXPECT_TRUE(NAS2D::EventHandler::alt(NAS2D::EventHandler::KeyModifier::Alt | NAS2D::EventHandler::KeyModifier::CtrlLeft));
EXPECT_FALSE(NAS2D::EventHandler::alt(NAS2D::EventHandler::KeyModifier::Shift));
EXPECT_FALSE(NAS2D::EventHandler::alt(NAS2D::EventHandler::KeyModifier::Ctrl));
}

0 comments on commit 121411e

Please sign in to comment.