Trait that adds keyboard-input callbacks to any Core object.
More...
#include <Keyable.h>
|
| void | onKeypress (std::function< void()> callback) |
| | Register a no-argument callback invoked when a key is pressed while this component has focus.
|
| void | onKeypress (std::function< void(const std::optional< sf::Event > &)> callback) |
| | Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.
|
| void | onKeyRelease (std::function< void()> callback) |
| | Register a no-argument callback invoked when a key is released while this component has focus.
|
| void | onKeyRelease (std::function< void(const std::optional< sf::Event > &)> callback) |
| | Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.
|
| void | onTextEntered (std::function< void()> callback) |
| | Register a no-argument callback invoked when a unicode character is entered while this component has focus.
|
| void | onTextEntered (std::function< void(const std::optional< sf::Event > &)> callback) |
| | Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.
|
| virtual void | process (const std::string &key, const std::optional< sf::Event > &event) |
| | Invoke all callbacks registered for key.
|
| template<typename ENUM_TYPE> |
| void | process (ENUM_TYPE eventName, const std::optional< sf::Event > &event) |
| | Invoke all callbacks registered for eventName.
|
Trait that adds keyboard-input callbacks to any Core object.
Keyable is automatically inherited by every ml::Core object. Keyboard callbacks only fire on the component that currently has focus (see Focusable). A component receives no keyboard events unless it has been clicked or focus has been explicitly transferred to it.
Usage
myInput.onKeypress([](const std::optional<sf::Event>& e){
if (kp->code == sf::Keyboard::Key::Enter)
submit();
});
myInput.onTextEntered([](const std::optional<sf::Event>& e){
buffer += static_cast<char>(te->unicode);
});
myInput.onKeyRelease([]{
To unsubscribe:
@ TEXT_ENTERED
Unicode character entered while component has focus.
@ KEYPRESS
Key pressed while component has focus.
@ KEY_RELEASE
Key released while component has focus.
- See also
- Focusable, ml::Event::KEYPRESS, ml::Event::KEY_RELEASE, ml::Event::TEXT_ENTERED, Unsubscribable
Definition at line 50 of file Keyable.h.
◆ onKeypress() [1/2]
| void ml::Keyable::onKeypress |
( |
std::function< void()> | callback | ) |
|
Register a no-argument callback invoked when a key is pressed while this component has focus.
- Parameters
-
| callback | Function invoked with no arguments on key press. |
◆ onKeypress() [2/2]
| void ml::Keyable::onKeypress |
( |
std::function< void(const std::optional< sf::Event > &)> | callback | ) |
|
Register a callback invoked when a key is pressed while this component has focus, receiving the raw SFML event.
- Parameters
-
| callback | Function invoked with the SFML event on key press. |
◆ onKeyRelease() [1/2]
| void ml::Keyable::onKeyRelease |
( |
std::function< void()> | callback | ) |
|
Register a no-argument callback invoked when a key is released while this component has focus.
- Parameters
-
| callback | Function invoked with no arguments on key release. |
◆ onKeyRelease() [2/2]
| void ml::Keyable::onKeyRelease |
( |
std::function< void(const std::optional< sf::Event > &)> | callback | ) |
|
Register a callback invoked when a key is released while this component has focus, receiving the raw SFML event.
- Parameters
-
| callback | Function invoked with the SFML event on key release. |
◆ onTextEntered() [1/2]
| void ml::Keyable::onTextEntered |
( |
std::function< void()> | callback | ) |
|
Register a no-argument callback invoked when a unicode character is entered while this component has focus.
Prefer onTextEntered over onKeypress for text input — it handles modifier keys, input method editors (IME), and non-ASCII characters correctly.
- Parameters
-
| callback | Function invoked with no arguments when text is entered. |
◆ onTextEntered() [2/2]
| void ml::Keyable::onTextEntered |
( |
std::function< void(const std::optional< sf::Event > &)> | callback | ) |
|
Register a callback invoked when a unicode character is entered while this component has focus, receiving the raw SFML event.
- Parameters
-
| callback | Function invoked with the SFML event when text is entered. |
◆ process() [1/2]
| virtual void ml::EventReceiver::process |
( |
const std::string & | key, |
|
|
const std::optional< sf::Event > & | event ) |
|
virtualinherited |
Invoke all callbacks registered for key.
Called by framework dispatchers. key is the string produced by EnumKey::get(eventEnum).
- Parameters
-
| key | String key identifying the event. |
| event | SFML event forwarded to each callback. |
◆ process() [2/2]
template<typename ENUM_TYPE>
| void ml::EventReceiver::process |
( |
ENUM_TYPE | eventName, |
|
|
const std::optional< sf::Event > & | event ) |
|
inherited |
Invoke all callbacks registered for eventName.
Template overload that accepts any enum value directly, converting to a string key via EnumKey::get() internally.
- Template Parameters
-
- Parameters
-
| eventName | The enum value identifying the event. |
| event | SFML event forwarded to each callback. |
The documentation for this class was generated from the following file: