changeset 116:9cf3e0b18ecc

Add support for selecting operator expressions in the editor
author Mike Pavone <pavone@retrodev.com>
date Mon, 15 Apr 2013 21:14:55 -0700
parents a83989115028
children f4e464a17579
files editor.css editor.js src/editor.tp
diffstat 3 files changed, 34 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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);
--- 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 {