summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcflip <cflip@cflip.net>2022-03-21 21:32:42 -0600
committercflip <cflip@cflip.net>2022-03-21 22:13:14 -0600
commit0b7ad904f819293b5d5e6ab22d40f331ab94eea3 (patch)
treefb282a29f4f935b4f7e46764dbccabf803b163ca
parentbc5bac66b18de6d377f6b9562f9847e66482bc32 (diff)
Add support for keyboard events in the Window
-rw-r--r--src/window.cpp8
-rw-r--r--src/window.h4
2 files changed, 12 insertions, 0 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 3a06f18..9a6a1b1 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -49,6 +49,14 @@ void Window::update()
if (m_mouseUp)
m_mouseUp(event.button.button, event.button.x, event.button.y);
break;
+ case SDL_KEYDOWN:
+ if (m_keyDown)
+ m_keyDown(event.key.keysym.sym);
+ break;
+ case SDL_KEYUP:
+ if (m_keyUp)
+ m_keyUp(event.key.keysym.sym);
+ break;
}
}
diff --git a/src/window.h b/src/window.h
index fb9d255..197ce7c 100644
--- a/src/window.h
+++ b/src/window.h
@@ -21,6 +21,8 @@ public:
void onMouseDown(std::function<void(int, int, int)> callback) { m_mouseDown = callback; }
void onMouseUp(std::function<void(int, int, int)> callback) { m_mouseUp = callback; }
void onMouseMove(std::function<void(int, int)> callback) { m_mouseMove = callback; }
+ void onKeyDown(std::function<void(int)> callback) { m_keyDown = callback; }
+ void onKeyUp(std::function<void(int)> callback) { m_keyUp = callback; }
private:
bool m_isRunning;
@@ -34,4 +36,6 @@ private:
std::function<void(int, int, int)> m_mouseDown;
std::function<void(int, int, int)> m_mouseUp;
std::function<void(int, int)> m_mouseMove;
+ std::function<void(int)> m_keyDown;
+ std::function<void(int)> m_keyUp;
}; \ No newline at end of file