Trait that adds keyboard-focus and blur callbacks to any Core object.
More...
#include <Focusable.h>
|
| void | onBlur (std::function< void()> callback) |
| | Register a no-argument callback invoked when this component loses keyboard focus.
|
| void | onBlur (std::function< void(const std::optional< sf::Event > &)> callback) |
| | Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.
|
| void | onFocus (std::function< void()> callback) |
| | Register a no-argument callback invoked when this component gains keyboard focus.
|
| void | onFocus (std::function< void(const std::optional< sf::Event > &)> callback) |
| | Register a callback invoked when this component gains keyboard 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-focus and blur callbacks to any Core object.
Focusable is automatically inherited by every ml::Core object. A component gains focus when the user clicks it; it loses focus (blurs) when the user clicks elsewhere or focus is programmatically transferred. While focused, a component receives keyboard events via Keyable.
Usage
myInput.onFocus([&]{ focusRing.setOutlineThickness(2.f); });
myInput.onBlur([&]{ focusRing.setOutlineThickness(0.f); });
myInput.onFocus([](const std::optional<sf::Event>& e){
});
To unsubscribe:
@ FOCUS
Component gained keyboard focus.
@ BLUR
Component lost keyboard focus.
- See also
- Keyable, Clickable, ml::Event::FOCUS, ml::Event::BLUR, Unsubscribable
Definition at line 41 of file Focusable.h.
◆ onBlur() [1/2]
| void ml::Focusable::onBlur |
( |
std::function< void()> | callback | ) |
|
Register a no-argument callback invoked when this component loses keyboard focus.
- Parameters
-
| callback | Function invoked with no arguments when focus is lost. |
◆ onBlur() [2/2]
| void ml::Focusable::onBlur |
( |
std::function< void(const std::optional< sf::Event > &)> | callback | ) |
|
Register a callback invoked when this component loses keyboard focus, receiving the raw SFML event.
- Parameters
-
| callback | Function invoked with the SFML event when focus is lost. |
◆ onFocus() [1/2]
| void ml::Focusable::onFocus |
( |
std::function< void()> | callback | ) |
|
Register a no-argument callback invoked when this component gains keyboard focus.
- Parameters
-
| callback | Function invoked with no arguments when focus is gained. |
◆ onFocus() [2/2]
| void ml::Focusable::onFocus |
( |
std::function< void(const std::optional< sf::Event > &)> | callback | ) |
|
Register a callback invoked when this component gains keyboard focus, receiving the raw SFML event.
- Parameters
-
| callback | Function invoked with the SFML event when focus is gained. |
◆ 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: