aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/com')
-rw-r--r--core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java b/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java
new file mode 100644
index 0000000..a14c6a7
--- /dev/null
+++ b/core/src/main/java/com/kotcrab/vis/ui/widget/EditorHighlightTextAreaBridge.java
@@ -0,0 +1,33 @@
+package com.kotcrab.vis.ui.widget;
+
+public class EditorHighlightTextAreaBridge extends HighlightTextArea {
+ public EditorHighlightTextAreaBridge(final String text, final VisTextFieldStyle style) {
+ super(text, style);
+ }
+
+ public void editorSyncCursorState() {
+ updateCurrentLine();
+ showCursor();
+ }
+
+ public void editorSetSelectionEndpoints(final int selectionStart, final int cursorPosition) {
+ final int clampedSelectionStart = Math.max(0, Math.min(selectionStart, getText().length()));
+ final int clampedCursorPosition = Math.max(0, Math.min(cursorPosition, getText().length()));
+ if (clampedSelectionStart == clampedCursorPosition) {
+ clearSelection();
+ cursor = clampedCursorPosition;
+ editorSyncCursorState();
+ return;
+ }
+
+ hasSelection = true;
+ this.selectionStart = clampedSelectionStart;
+ cursor = clampedCursorPosition;
+ editorSyncCursorState();
+ }
+
+ public void editorSetCursorKeepingSelection(final int cursorPosition) {
+ cursor = Math.max(0, Math.min(cursorPosition, getText().length()));
+ editorSyncCursorState();
+ }
+}