| Index: sky/sdk/lib/framework/editing2/editable_string.dart
|
| diff --git a/sky/sdk/lib/framework/editing2/editable_string.dart b/sky/sdk/lib/framework/editing2/editable_string.dart
|
| deleted file mode 100644
|
| index 728788ec52dea5ce09a3e91490717dd1281a2c6e..0000000000000000000000000000000000000000
|
| --- a/sky/sdk/lib/framework/editing2/editable_string.dart
|
| +++ /dev/null
|
| @@ -1,122 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -import 'package:mojom/keyboard/keyboard.mojom.dart';
|
| -
|
| -typedef void StringUpdated();
|
| -
|
| -class TextRange {
|
| - final int start;
|
| - final int end;
|
| -
|
| - TextRange({this.start, this.end});
|
| - TextRange.collapsed(int position)
|
| - : start = position,
|
| - end = position;
|
| - const TextRange.empty()
|
| - : start = -1,
|
| - end = -1;
|
| -
|
| - bool get isValid => start >= 0 && end >= 0;
|
| - bool get isCollapsed => start == end;
|
| -}
|
| -
|
| -class EditableString implements KeyboardClient {
|
| - String text;
|
| - TextRange composing = const TextRange.empty();
|
| - TextRange selection = const TextRange.empty();
|
| -
|
| - final StringUpdated onUpdated;
|
| -
|
| - KeyboardClientStub stub;
|
| -
|
| - EditableString({this.text: '', this.onUpdated}) {
|
| - stub = new KeyboardClientStub.unbound()..impl = this;
|
| - }
|
| -
|
| - String textBefore(TextRange range) {
|
| - return text.substring(0, range.start);
|
| - }
|
| -
|
| - String textAfter(TextRange range) {
|
| - return text.substring(range.end);
|
| - }
|
| -
|
| - String textInside(TextRange range) {
|
| - return text.substring(range.start, range.end);
|
| - }
|
| -
|
| - void _delete(TextRange range) {
|
| - if (range.isCollapsed || !range.isValid) return;
|
| - text = textBefore(range) + textAfter(range);
|
| - }
|
| -
|
| - TextRange _append(String newText) {
|
| - int start = text.length;
|
| - text += newText;
|
| - return new TextRange(start: start, end: start + newText.length);
|
| - }
|
| -
|
| - TextRange _replace(TextRange range, String newText) {
|
| - assert(range.isValid);
|
| -
|
| - String before = textBefore(range);
|
| - String after = textAfter(range);
|
| -
|
| - text = before + newText + after;
|
| - return new TextRange(
|
| - start: before.length, end: before.length + newText.length);
|
| - }
|
| -
|
| - TextRange _replaceOrAppend(TextRange range, String newText) {
|
| - if (!range.isValid) return _append(newText);
|
| - return _replace(range, newText);
|
| - }
|
| -
|
| - void commitCompletion(CompletionData completion) {
|
| - // TODO(abarth): Not implemented.
|
| - }
|
| -
|
| - void commitCorrection(CorrectionData correction) {
|
| - // TODO(abarth): Not implemented.
|
| - }
|
| -
|
| - void commitText(String text, int newCursorPosition) {
|
| - // TODO(abarth): Why is |newCursorPosition| always 1?
|
| - TextRange committedRange = _replaceOrAppend(composing, text);
|
| - selection = new TextRange.collapsed(committedRange.end);
|
| - composing = const TextRange.empty();
|
| - onUpdated();
|
| - }
|
| -
|
| - void deleteSurroundingText(int beforeLength, int afterLength) {
|
| - TextRange beforeRange = new TextRange(
|
| - start: selection.start - beforeLength, end: selection.start);
|
| - TextRange afterRange =
|
| - new TextRange(start: selection.end, end: selection.end + afterLength);
|
| - _delete(afterRange);
|
| - _delete(beforeRange);
|
| - selection = new TextRange(
|
| - start: selection.start - beforeLength,
|
| - end: selection.end - beforeLength);
|
| - onUpdated();
|
| - }
|
| -
|
| - void setComposingRegion(int start, int end) {
|
| - composing = new TextRange(start: start, end: end);
|
| - onUpdated();
|
| - }
|
| -
|
| - void setComposingText(String text, int newCursorPosition) {
|
| - // TODO(abarth): Why is |newCursorPosition| always 1?
|
| - composing = _replaceOrAppend(composing, text);
|
| - selection = new TextRange.collapsed(composing.end);
|
| - onUpdated();
|
| - }
|
| -
|
| - void setSelection(int start, int end) {
|
| - selection = new TextRange(start: start, end: end);
|
| - onUpdated();
|
| - }
|
| -}
|
|
|