diff --git a/include/Keyboard.hpp b/include/Keyboard.hpp new file mode 100644 index 00000000..b111d2c5 --- /dev/null +++ b/include/Keyboard.hpp @@ -0,0 +1,65 @@ +#ifndef RAYLIB_CPP_INCLUDE_KEYBOARD_HPP_ +#define RAYLIB_CPP_INCLUDE_KEYBOARD_HPP_ + +#include "./raylib.hpp" + +namespace raylib { +/** + * Input-related functions: keyboard + */ +class Keyboard { + public: + /** + * Detect if a key has been pressed once + */ + static bool IsKeyPressed(int key) { + return ::IsKeyPressed(key); + } + + /** + * Detect if a key has been pressed again (Only PLATFORM_DESKTOP) + */ + static bool IsKeyPressedRepeat(int key) { + return ::IsKeyPressedRepeat(key); + } + + /** + * Detect if a key is being pressed + */ + static bool IsKeyDown(int key) { + return ::IsKeyDown(key); + } + + /** + * Detect if a key has been released once + */ + static bool IsKeyReleased(int key) { + return ::IsKeyReleased(key); + } + + /** + * Detect if a key is NOT being pressed + */ + static bool IsKeyUp(int key) { + return ::IsKeyUp(key); + } + + /** + * Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty + */ + static bool GetKeyPressed() { + return ::GetKeyPressed(); + } + + /** + * Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty + */ + static bool GetCharPressed() { + return ::GetCharPressed(); + } +}; +} // namespace raylib + +using RKeyboard = raylib::Keyboard; + +#endif // RAYLIB_CPP_INCLUDE_KEYBOARD_HPP_ diff --git a/include/Window.hpp b/include/Window.hpp index dfa9d7c4..5baabe79 100644 --- a/include/Window.hpp +++ b/include/Window.hpp @@ -76,6 +76,13 @@ class Window { return ::WindowShouldClose(); } + /** + * Set a custom key to exit program (default is ESC) + */ + bool SetExitKey(int key) { + return ::SetExitKey(key); + } + /** * Close window and unload OpenGL context */