skia2/experimental/editor
Hal Canary ff2e8fe65f sk_app, Sample: Unify InputState enum.
replace() {
      if git grep -q "$1")";
      then sed -i -e "s#${1}#${2}#g" $(git grep -l "$1");
      fi
    }
    replace 'k\([A-Za-z]*\)_InputState' 'InputState::k\1'
    replace '\(\(sk_app::\|\)Window\|Sample\|\)::InputState' 'InputState'

Change-Id: I4cc18814fb1fbdd1f240aabba05aae79c54a4841
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227642
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-07-16 14:51:03 +00:00
..
editor_application.cpp sk_app, Sample: Unify InputState enum. 2019-07-16 14:51:03 +00:00
editor.cpp experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00
editor.h experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00
README.md experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00
run_handler.cpp preserve comments past the #include "" 2019-05-14 19:35:34 +00:00
run_handler.h experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00
stringslice.cpp experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00
stringslice.h experimental/editor: progress on newlines 2019-06-24 17:24:35 +00:00

#Editor#

This is an experimental Editor layer that abstracts out SkShaper text layeout for easy embedding into an application. The Editor layer is agnostic about the operating system.

+--------------------------------+
|Application                     |
+-+----+-------------------------+
  |    |
  |    |
  |  +-v-------------------------+
  |  |Editor                     |
  |  +-+----+--------------------+
  |    |    |
  |    |    |
  |    |  +-v--------------------+
  |    |  |SkShaper              |
  |    |  +-+--------+-----------+
  |    |    |        |
  |    |    |        |
+-v----v----v--+   +-v-----------+
|Skia          |   |HarfBuzz, ICU|
+--------------+   +-------------+

The Application layer must interact with the:

  • Windowing system
  • File system
  • Clipboard
  • Keyboard/mouse input.

Try it out:

tools/git-sync-deps
bin/gn gen out/default
ninja -C out/default editor
out/default/editor whitespace.txt