// Copyright (c) 2006-2008 by Martin Stubenschrott <stubenschrott@vimperator.org>
// Copyright (c) 2007-2011 by Doug Kearns <dougkearns@gmail.com>
-// Copyright (c) 2008-2011 by Kris Maglione <maglione.k@gmail.com>
+// Copyright (c) 2008-2012 Kris Maglione <maglione.k@gmail.com>
//
// This work is licensed for reuse under an MIT license. Details are
// given in the LICENSE.txt file included with this file.
-/* use strict */
+"use strict";
var MOW = Module("mow", {
init: function init() {
html|html > xul|scrollbar { visibility: collapse !important; }",
true);
- XML.ignoreWhitespace = true;
overlay.overlayWindow(window, {
objects: {
eventTarget: this
},
- append: <e4x xmlns={XUL} xmlns:dactyl={NS}>
- <window id={document.documentElement.id}>
- <popupset>
- <menupopup id="dactyl-contextmenu" highlight="Events" events="contextEvents">
- <menuitem id="dactyl-context-copylink"
- label={_("mow.contextMenu.copyLink")} dactyl:group="link"
- oncommand="goDoCommand('cmd_copyLink');"/>
- <menuitem id="dactyl-context-copypath"
- label={_("mow.contextMenu.copyPath")} dactyl:group="link path"
- oncommand="dactyl.clipboardWrite(document.popupNode.getAttribute('path'));"/>
- <menuitem id="dactyl-context-copy"
- label={_("mow.contextMenu.copy")} dactyl:group="selection"
- command="cmd_copy"/>
- <menuitem id="dactyl-context-selectall"
- label={_("mow.contextMenu.selectAll")}
- command="cmd_selectAll"/>
- </menupopup>
- </popupset>
- </window>
- <vbox id={config.ids.commandContainer}>
- <vbox class="dactyl-container" id="dactyl-multiline-output-container" hidden="false" collapsed="true">
- <iframe id="dactyl-multiline-output" src="dactyl://content/buffer.xhtml"
- flex="1" hidden="false" collapsed="false" contextmenu="dactyl-contextmenu"
- highlight="Events" />
- </vbox>
- </vbox>
- </e4x>
+ append: [
+ ["window", { id: document.documentElement.id, xmlns: "xul" },
+ ["popupset", {},
+ ["menupopup", { id: "dactyl-contextmenu", highlight: "Events", events: "contextEvents" },
+ ["menuitem", { id: "dactyl-context-copylink", label: _("mow.contextMenu.copyLink"),
+ "dactyl:group": "link", oncommand: "goDoCommand('cmd_copyLink');" }],
+ ["menuitem", { id: "dactyl-context-copypath", label: _("mow.contextMenu.copyPath"),
+ "dactyl:group": "link path", oncommand: "dactyl.clipboardWrite(document.popupNode.getAttribute('path'));" }],
+ ["menuitem", { id: "dactyl-context-copy", label: _("mow.contextMenu.copy"),
+ "dactyl:group": "selection", command: "cmd_copy" }],
+ ["menuitem", { id: "dactyl-context-selectall", label: _("mow.contextMenu.selectAll"),
+ command: "cmd_selectAll" }]]]],
+
+ ["vbox", { id: config.ids.commandContainer, xmlns: "xul" },
+ ["vbox", { class: "dactyl-container", id: "dactyl-multiline-output-container", hidden: "false", collapsed: "true" },
+ ["iframe", { id: "dactyl-multiline-output", src: "dactyl://content/buffer.xhtml",
+ flex: "1", hidden: "false", collapsed: "false",
+ contextmenu: "dactyl-contextmenu", highlight: "Events" }]]]]
});
},
this.messages = [];
}
- // If it's already XML, assume it knows what it's doing.
- // Otherwise, white space is significant.
- // The problem elsewhere is that E4X tends to insert new lines
- // after interpolated data.
- XML.ignoreWhitespace = XML.prettyPrinting = false;
-
highlightGroup = "CommandOutput " + (highlightGroup || "");
- if (isObject(data) && !isinstance(data, _)) {
+ if (isObject(data) && !isinstance(data, _) && !DOM.isJSONXML(data)) {
this.lastOutput = null;
- var output = DOM(<div style="white-space: nowrap" highlight={highlightGroup}/>,
+ var output = DOM(["div", { style: "white-space: nowrap", highlight: highlightGroup }],
this.document);
data.document = this.document;
try {
}
else {
let style = isString(data) ? "pre-wrap" : "nowrap";
- this.lastOutput = <div style={"white-space: " + style} highlight={highlightGroup}>{data}</div>;
+ this.lastOutput = ["div", { style: "white-space: " + style, highlight: highlightGroup },
+ data];
var output = DOM(this.lastOutput, this.document);
}
// copy text to clipboard
bind(["<C-y>"], "Yank selection to clipboard",
- function () { dactyl.clipboardWrite(buffer.getCurrentWord(mow.window)); });
+ function () { dactyl.clipboardWrite(Buffer.currentWord(mow.window)); });
// close the window
bind(["q"], "Close the output window",