Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/aardvark.js

Issue 5684127030312960: Issue 1091 - Implement a better templating approach for Element Hiding Helper (Closed)
Patch Set: Created July 21, 2014, 7:27 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/content/overlay.xul ('k') | lib/main.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/aardvark.js
===================================================================
--- a/lib/aardvark.js
+++ b/lib/aardvark.js
@@ -7,16 +7,44 @@
let {Prefs} = require("prefs");
// Make sure to stop selection when we are uninstalled
onShutdown.add(function() Aardvark.quit());
// To be replaced when selection starts
function E(id) {return null;}
+/*********************************
+ * Minimal element creation code *
+ *********************************/
+
+function Element(el)
+{
+ this._el = el;
+}
+Element.prototype =
+{
+ _el: null,
+ child: function(tagName, attrs, callback)
+ {
+ let child = Element.create(this._el.ownerDocument, tagName, attrs, callback);
+ this._el.appendChild(child);
+ }
+};
+Element.create = function(doc, tagName, attrs, callback)
+{
+ let el = doc.createElement(tagName);
+ if (attrs)
+ for (let key in attrs)
+ el.setAttribute(key, attrs[key]);
+ if (typeof callback == "function")
+ callback(new Element(el));
+ return el;
+};
Thomas Greiner 2014/07/23 13:55:52 What's the reason for introducing a custom type he
Wladimir Palant 2014/09/11 16:52:13 This code went through several iteration, particul
+
/**********************************
* General element selection code *
**********************************/
let Aardvark = exports.Aardvark =
{
window: null,
browser: null,
@@ -51,17 +79,26 @@ let Aardvark = exports.Aardvark =
this.browser.addEventListener("keypress", this.onKeyPress, true);
this.browser.addEventListener("mousemove", this.onMouseMove, true);
this.browser.addEventListener("select", this.quit, false);
this.browser.contentWindow.addEventListener("pagehide", this.onPageHide, true);
this.browser.contentWindow.focus();
let doc = this.browser.contentDocument;
- this.boxElem = doc.importNode(E("ehh-elementmarker").firstElementChild.cloneNode(true), true);
+ let {elementMarkerClass} = require("main");
+ this.boxElem = Element.create(doc, "div", {"class": elementMarkerClass}, function(el)
+ {
+ el.child("div", {"class": "ehh-border"});
+ el.child("div", {"class": "ehh-label"}, function(el)
+ {
+ el.child("span", {"class": "ehh-labelTag"})
+ el.child("span", {"class": "ehh-labelAddition"});
+ });
+ });
this.initHelpBox();
if (Prefs.showhelp)
this.showMenu();
// Make sure to select some element immeditely (whichever is in the center of the browser window)
let [wndWidth, wndHeight] = this.getWindowSize(doc.defaultView);
« no previous file with comments | « chrome/content/overlay.xul ('k') | lib/main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld