diff --git a/experiments/outline-editor/editor.css b/experiments/outline-editor/editor.css
index be08e27..28b6349 100755
--- a/experiments/outline-editor/editor.css
+++ b/experiments/outline-editor/editor.css
@@ -51,6 +51,11 @@
display: none;
}
+/* XXX are we selecting subtrees or blocks??? */
+.editor [selected] {
+ background: silver;
+}
+
.editor div:focus {
/*outline: solid 0.2em silver;*/
outline: none;
diff --git a/experiments/outline-editor/editor.js b/experiments/outline-editor/editor.js
index 0fe8401..b3cf538 100755
--- a/experiments/outline-editor/editor.js
+++ b/experiments/outline-editor/editor.js
@@ -101,7 +101,7 @@ var Outline = {
: node == 'editable' ?
[...this.dom.querySelectorAll('[tabindex]>textarea')]
: node == 'selected' ?
- [...this.dom.querySelectorAll('[tabindex].selected')]
+ [...this.dom.querySelectorAll('[tabindex][selected]')]
: node == 'top' ?
[...this.dom.children]
.filter(function(elem){
@@ -349,6 +349,16 @@ var Outline = {
var next = this.get('next')
this.get()?.remove()
next?.focus() },
+
+ // select...
+ ' ': function(evt){
+ if(this.get('edited') != null){
+ return }
+ evt.preventDefault()
+ var focused = this.get()
+ focused.getAttribute('selected') != null ?
+ focused.removeAttribute('selected')
+ : focused.setAttribute('selected', '') },
},
setup: function(dom){
diff --git a/experiments/outline-editor/index.html b/experiments/outline-editor/index.html
index 475aa7b..5ad782e 100755
--- a/experiments/outline-editor/index.html
+++ b/experiments/outline-editor/index.html
@@ -9,12 +9,13 @@
@@ -58,7 +59,10 @@ TODO:
- shift subtree up/down
- create node
- edit node
-- undo delete node
+- undo
+ - delete node
+ - indent/deindent
+ - edit node
- copy/paste nodes/trees
- shifting nodes up/down
- multiple node selection