mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-09-16 16:08:08 +08:00
Implement Input::on_change.
This commit is contained in:
@@ -20,8 +20,8 @@ class Input : public Component {
|
|||||||
std::wstring placeholder;
|
std::wstring placeholder;
|
||||||
|
|
||||||
// State update callback.
|
// State update callback.
|
||||||
std::function<void()> on_change = []() {};
|
std::function<void()> on_change = [] {};
|
||||||
std::function<void()> on_enter = []() {};
|
std::function<void()> on_enter = [] {};
|
||||||
|
|
||||||
// Component implementation.
|
// Component implementation.
|
||||||
Element Render() override;
|
Element Render() override;
|
||||||
|
@@ -52,6 +52,7 @@ bool Input::OnEvent(Event event) {
|
|||||||
return false;
|
return false;
|
||||||
content.erase(cursor_position - 1, 1);
|
content.erase(cursor_position - 1, 1);
|
||||||
cursor_position--;
|
cursor_position--;
|
||||||
|
on_change();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +61,7 @@ bool Input::OnEvent(Event event) {
|
|||||||
if (cursor_position == int(content.size()))
|
if (cursor_position == int(content.size()))
|
||||||
return false;
|
return false;
|
||||||
content.erase(cursor_position, 1);
|
content.erase(cursor_position, 1);
|
||||||
|
on_change();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,6 +89,7 @@ bool Input::OnEvent(Event event) {
|
|||||||
if (event.is_character()) {
|
if (event.is_character()) {
|
||||||
content.insert(cursor_position, 1, event.character());
|
content.insert(cursor_position, 1, event.character());
|
||||||
cursor_position++;
|
cursor_position++;
|
||||||
|
on_change();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user