aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/controls
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-11-15 16:26:25 +0800
committercrupest <crupest@outlook.com>2021-11-15 16:26:25 +0800
commit4ac58d91bac0cebe2bdf5e11b9d63b9c41e6b39e (patch)
tree7a4a8f587ffadb9f722b33badf2568e1d325b818 /include/cru/ui/controls
parent63b4956c3a802ee1c0fd92d1ce56e9330b6de4d2 (diff)
downloadcru-4ac58d91bac0cebe2bdf5e11b9d63b9c41e6b39e.tar.gz
cru-4ac58d91bac0cebe2bdf5e11b9d63b9c41e6b39e.tar.bz2
cru-4ac58d91bac0cebe2bdf5e11b9d63b9c41e6b39e.zip
...
Diffstat (limited to 'include/cru/ui/controls')
-rw-r--r--include/cru/ui/controls/TextHostControlService.hpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/cru/ui/controls/TextHostControlService.hpp b/include/cru/ui/controls/TextHostControlService.hpp
index adf72d69..da9547ac 100644
--- a/include/cru/ui/controls/TextHostControlService.hpp
+++ b/include/cru/ui/controls/TextHostControlService.hpp
@@ -8,6 +8,7 @@
#include "cru/ui/helper/ShortcutHub.hpp"
#include <functional>
+#include <vector>
namespace cru::ui::render {
class TextRenderObject;
@@ -29,6 +30,8 @@ class TextControlMovePattern : public Object {
public:
static TextControlMovePattern kLeft;
static TextControlMovePattern kRight;
+ static TextControlMovePattern kCtrlLeft;
+ static TextControlMovePattern kCtrlRight;
static TextControlMovePattern kUp;
static TextControlMovePattern kDown;
static TextControlMovePattern kHome;
@@ -36,6 +39,8 @@ class TextControlMovePattern : public Object {
static TextControlMovePattern kPageUp;
static TextControlMovePattern kPageDown;
+ static std::vector<TextControlMovePattern> kDefaultPatterns;
+
using MoveFunction =
std::function<gsl::index(TextHostControlService* service, StringView text,
gsl::index current_position)>;
@@ -44,15 +49,15 @@ class TextControlMovePattern : public Object {
MoveFunction move_function)
: key_bind_(key_bind), move_function_(move_function) {}
- CRU_DELETE_COPY(TextControlMovePattern)
- CRU_DELETE_MOVE(TextControlMovePattern)
+ CRU_DEFAULT_COPY(TextControlMovePattern)
+ CRU_DEFAULT_MOVE(TextControlMovePattern)
~TextControlMovePattern() override = default;
public:
helper::ShortcutKeyBind GetKeyBind() const { return key_bind_; }
gsl::index Move(TextHostControlService* service, StringView text,
- gsl::index current_position) {
+ gsl::index current_position) const {
return move_function_(service, text, current_position);
}
@@ -118,10 +123,10 @@ class TextHostControlService : public Object {
void ScrollToCaret();
- private:
gsl::not_null<render::TextRenderObject*> GetTextRenderObject();
render::ScrollRenderObject* GetScrollRenderObject();
+ private:
// May return nullptr.
platform::gui::IInputMethodContext* GetInputMethodContext();