Widgets/TextAreaWidget: Add support for double/triple click selection

This commit is contained in:
Jérôme Leclercq
2021-11-30 12:39:53 +01:00
parent e73489e958
commit 86071eae88
6 changed files with 95 additions and 4 deletions

View File

@@ -94,6 +94,7 @@ namespace Nz
virtual void HandleIndentation(bool add) = 0;
virtual void HandleSelectionIndentation(bool add) = 0;
virtual void HandleWordCursorMove(bool left) = 0;
virtual void HandleWordSelection(const Vector2ui& position) = 0;
bool IsFocusable() const override;
void Layout() override;
@@ -102,8 +103,10 @@ namespace Nz
void OnFocusReceived() override;
bool OnKeyPressed(const WindowEvent::KeyEvent& key) override;
void OnKeyReleased(const WindowEvent::KeyEvent& key) override;
void OnMouseButtonPress(int /*x*/, int /*y*/, Mouse::Button button) override;
void OnMouseButtonRelease(int /*x*/, int /*y*/, Mouse::Button button) override;
void OnMouseButtonDoublePress(int x, int y, Mouse::Button button) override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseButtonTriplePress(int x, int y, Mouse::Button button) override;
void OnMouseEnter() override;
void OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
void OnTextEntered(char32_t character, bool repeated) override;

View File

@@ -44,7 +44,7 @@ namespace Nz
{
const AbstractTextDrawer& textDrawer = GetTextDrawer();
glyphIndex = std::min(glyphIndex, GetTextDrawer().GetGlyphCount());
glyphIndex = std::min(glyphIndex, textDrawer.GetGlyphCount());
std::size_t lineCount = textDrawer.GetLineCount();
std::size_t line = 0U;

View File

@@ -58,6 +58,7 @@ namespace Nz
void HandleIndentation(bool add) override;
void HandleSelectionIndentation(bool add) override;
void HandleWordCursorMove(bool left) override;
void HandleWordSelection(const Vector2ui& position) override;
void PasteFromClipboard(const Vector2ui& targetPosition) override;