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/examples/editor/input.dart

Issue 995073002: Make Sky's EditableText mostly work (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: More comments Created 5 years, 9 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
Index: sky/examples/editor/input.dart
diff --git a/sky/examples/editor/input.dart b/sky/examples/editor/input.dart
deleted file mode 100644
index 8508a7ce2fab79d0b54c920ae87e5919c6af58e4..0000000000000000000000000000000000000000
--- a/sky/examples/editor/input.dart
+++ /dev/null
@@ -1,111 +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 '../../framework/fn.dart';
-import '../../framework/shell.dart' as shell;
-import 'package:sky/services/keyboard/keyboard.mojom.dart';
-import 'dart:math';
-
-class Input extends Component implements KeyboardClient{
- static Style _style = new Style('''
- display: paragraph;
- padding: 10px;
- height: 200px;
- background-color: lightblue;'''
- );
-
- static Style _composingStyle = new Style('''
- display: inline;
- text-decoration: underline;'''
- );
-
- KeyboardServiceProxy _service;
- KeyboardClientStub _stub;
-
- String _text = "";
- int _composingStart = -1;
- int _composingEnd = -1;
-
- Input({Object key}) : super(key: key, stateful: true) {
- events.listen('click', _handleClick);
- _stub = new KeyboardClientStub.unbound()..impl = this;
- }
-
- bool get _hasComposingRegion => _composingStart != -1 && _composingEnd != -1;
-
- void _handleClick(_) {
- if (_service != null)
- return;
- _service = new KeyboardServiceProxy.unbound();
- shell.requestService(_service);
- _service.ptr.show(_stub);
- }
-
- void _replaceComposing(String text) {
- if (!_hasComposingRegion) {
- _composingStart = _text.length;
- _composingEnd = _composingStart + text.length;
- _text += text;
- return;
- }
-
- _text = _text.substring(0, _composingStart)
- + text + _text.substring(_composingEnd);
- _composingEnd = _composingStart + text.length;
- }
-
- void _clearComposingRegion() {
- _composingStart = -1;
- _composingEnd = -1;
- }
-
- void commitText(String text, int newCursorPosition) {
- setState(() {
- _replaceComposing(text);
- _clearComposingRegion();
- });
- }
-
- void setComposingText(String text, int newCursorPosition) {
- setState(() {
- _replaceComposing(text);
- });
- }
-
- void setComposingRegion(int start, int end) {
- setState(() {
- _composingStart = start;
- _composingEnd = end;
- });
- }
-
- Node build() {
- List<Node> children = new List<Node>();
-
- if (!_hasComposingRegion) {
- children.add(new Text(_text));
- } else {
- String run = _text.substring(0, _composingStart);
- if (!run.isEmpty)
- children.add(new Text(run));
-
- run = _text.substring(_composingStart, _composingEnd);
- if (!run.isEmpty) {
- children.add(new Container(
- style: _composingStyle,
- children: [new Text(_text.substring(_composingStart, _composingEnd))]
- ));
- }
-
- run = _text.substring(_composingEnd);
- if (!run.isEmpty)
- children.add(new Text(_text.substring(_composingEnd)));
- }
-
- return new Container(
- style: _style,
- children: children
- );
- }
-}

Powered by Google App Engine
This is Rietveld 408576698