# HG changeset patch # User Mike Pavone # Date 1366085695 25200 # Node ID 9cf3e0b18ecc72375fb10e62c62a70083a4b6661 # Parent a83989115028d6d77e80544071f59427fb575e9e Add support for selecting operator expressions in the editor diff -r a83989115028 -r 9cf3e0b18ecc editor.css --- a/editor.css Mon Apr 15 21:13:09 2013 -0700 +++ b/editor.css Mon Apr 15 21:14:55 2013 -0700 @@ -42,14 +42,14 @@ background-color: yellow; } -.selected +#src .selected { background-color: #FFFFB0; } #src .selectParent { - background-color: #F5F5F5; + background-color: #E0E0E0; } #editor diff -r a83989115028 -r 9cf3e0b18ecc editor.js --- a/editor.js Mon Apr 15 21:13:09 2013 -0700 +++ b/editor.js Mon Apr 15 21:14:55 2013 -0700 @@ -50,14 +50,17 @@ this.domNode = base; base.appendChild(varName); node.appendChild(base); - console.log(this.expression); this.expression.toHTML(base, this); }; op.prototype.toHTML = function(node, up) { this.up = up; + var astNode = this; var base = newEl('span', { - className: 'op' + className: 'op', + onclick: function(event) { + main_module.opClick(this, astNode, event); + } }); this.domNode = base; this.left.toHTML(base, this); diff -r a83989115028 -r 9cf3e0b18ecc src/editor.tp --- a/src/editor.tp Mon Apr 15 21:13:09 2013 -0700 +++ b/src/editor.tp Mon Apr 15 21:14:55 2013 -0700 @@ -101,6 +101,13 @@ event stopPropagation: (foreign: undefined) } +opClick <- :domnode astnode event { + selectParent: domnode + selectQuery: ".selectParent > .opname" in: domnode + showOps + event stopPropagation: (foreign: undefined) +} + funClick <- :domnode astnode event { selectParent: domnode selectQuery: ".selectParent > .funpart" in: domnode @@ -182,6 +189,24 @@ symbolClick: domnode astnode event } +visible <- "showops" + +showOps <- { + each: (qall: ".controls") :idx el { + removeClass: el visible + addClass: el "showops" + } + visible <- "showops" +} + +showLit <- { + each: (qall: ".controls") :idx el { + removeClass: el visible + addClass: el "showlit" + } + visible <- "showlit" +} + main <- { get: "/src/" :data { fakeEl <- newEl: "div" #{ @@ -214,20 +239,11 @@ srcel textContent!: (srcel textContent) + (el textContent) } } - visible <- "showops" (q: "#ops_button") onclick!: :event { - each: (qall: ".controls") :idx el { - removeClass: el visible - addClass: el "showops" - } - visible <- "showops" + showOps } (q: "#lit_button") onclick!: :event { - each: (qall: ".controls") :idx el { - removeClass: el visible - addClass: el "showlit" - } - visible <- "showlit" + showLit } (q: "#in") onclick!: :event {