From e9cddb105bab59067c317525a9c69ab1d6e57043 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Mon, 9 Oct 2017 05:47:39 -0400 Subject: [PATCH] Add onTextChange() to TextField --- include/widgets.hpp | 1 + src/widgets/TextField.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/widgets.hpp b/include/widgets.hpp index 5f8f3a94..7fafc368 100644 --- a/include/widgets.hpp +++ b/include/widgets.hpp @@ -411,6 +411,7 @@ struct TextField : OpaqueWidget { bool onFocusKey(int scancode); bool onFocus(); void insertText(std::string newText); + virtual void onTextChange() {} }; struct PasswordField : TextField { diff --git a/src/widgets/TextField.cpp b/src/widgets/TextField.cpp index e1d3585c..0e359b8e 100644 --- a/src/widgets/TextField.cpp +++ b/src/widgets/TextField.cpp @@ -41,20 +41,25 @@ bool TextField::onFocusKey(int key) { case GLFW_KEY_BACKSPACE: if (begin < end) { text.erase(begin, end - begin); + onTextChange(); } else { begin--; - if (begin >= 0) + if (begin >= 0) { text.erase(begin, 1); + onTextChange(); + } } end = begin; break; case GLFW_KEY_DELETE: if (begin < end) { text.erase(begin, end - begin); + onTextChange(); } else { text.erase(begin, 1); + onTextChange(); } end = begin; break; @@ -115,6 +120,7 @@ void TextField::insertText(std::string newText) { text.insert(begin, newText); begin += newText.size(); end = begin; + onTextChange(); }