Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: sky/framework/editing/editable_string.dart

Issue 1132063007: Rationalize Dart mojo and sky package structure (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/framework/debug/tracing.dart ('k') | sky/framework/editing/editable_text.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/framework/editing/editable_string.dart
diff --git a/sky/framework/editing/editable_string.dart b/sky/framework/editing/editable_string.dart
deleted file mode 100644
index 728788ec52dea5ce09a3e91490717dd1281a2c6e..0000000000000000000000000000000000000000
--- a/sky/framework/editing/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();
- }
-}
« no previous file with comments | « sky/framework/debug/tracing.dart ('k') | sky/framework/editing/editable_text.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698