mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-23 10:37:59 +01:00
Allow muttator's compose overlay to use liberator.xul. Not removing muttatorcompose.xul until chrome.manifest is updated, so as not to break muttator
This commit is contained in:
@@ -204,7 +204,7 @@ liberator.Completion = function () //{{{
|
||||
* If @m is provided, return the @mth value of element @o
|
||||
* of the stack entey at @n.
|
||||
*/
|
||||
let get = function (n, m, o)
|
||||
let get = function get(n, m, o)
|
||||
{
|
||||
let a = stack[n >= 0 ? n : stack.length + n];
|
||||
if (m == undefined)
|
||||
@@ -215,13 +215,13 @@ liberator.Completion = function () //{{{
|
||||
function buildStack(start)
|
||||
{
|
||||
/* Push and pop the stack, maintaining references to 'top' and 'last'. */
|
||||
let push = function (arg)
|
||||
let push = function push(arg)
|
||||
{
|
||||
top = [i, arg, [i], [], [], []];
|
||||
last = top[CHAR];
|
||||
stack.push(top);
|
||||
}
|
||||
let pop = function (arg)
|
||||
let pop = function pop(arg)
|
||||
{
|
||||
if (top[CHAR] != arg)
|
||||
throw new Error("Invalid JS");
|
||||
@@ -329,7 +329,7 @@ liberator.Completion = function () //{{{
|
||||
lastIdx = i;
|
||||
}
|
||||
|
||||
this.complete = function (string)
|
||||
this.complete = function complete(string)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -583,7 +583,7 @@ liberator.Completion = function () //{{{
|
||||
|
||||
// returns the longest common substring
|
||||
// used for the 'longest' setting for wildmode
|
||||
getLongestSubstring: function ()
|
||||
getLongestSubstring: function getLongestSubstring()
|
||||
{
|
||||
if (substrings.length == 0)
|
||||
return "";
|
||||
@@ -599,7 +599,7 @@ liberator.Completion = function () //{{{
|
||||
|
||||
// generic filter function, also builds substrings needed
|
||||
// for :set wildmode=list:longest, if necessary
|
||||
filter: function (array, filter, matchFromBeginning, favicon)
|
||||
filter: function filter(array, filter, matchFromBeginning, favicon)
|
||||
{
|
||||
if (!filter)
|
||||
return [[a[0], a[1], favicon ? a[2] : null] for each (a in array)];
|
||||
@@ -612,7 +612,7 @@ liberator.Completion = function () //{{{
|
||||
return result;
|
||||
},
|
||||
|
||||
cached: function (key, filter, generate, method)
|
||||
cached: function cached(key, filter, generate, method)
|
||||
{
|
||||
if (!filter && cacheFilter[key] || filter.indexOf(cacheFilter[key]) != 0)
|
||||
cacheResults[key] = generate(filter);
|
||||
@@ -625,7 +625,7 @@ liberator.Completion = function () //{{{
|
||||
// discard all entries in the 'urls' array, which don't match 'filter
|
||||
// urls must be of type [["url", "title"], [...]] or optionally
|
||||
// [["url", "title", keyword, [tags]], [...]]
|
||||
filterURLArray: function (urls, filter, filterTags)
|
||||
filterURLArray: function filterURLArray(urls, filter, filterTags)
|
||||
{
|
||||
var filtered = [];
|
||||
// completions which don't match the url but just the description
|
||||
@@ -698,7 +698,7 @@ liberator.Completion = function () //{{{
|
||||
|
||||
// generic helper function which checks if the given "items" array pass "filter"
|
||||
// items must be an array of strings
|
||||
match: function (items, filter, caseSensitive)
|
||||
match: function match(items, filter, caseSensitive)
|
||||
{
|
||||
if (typeof filter != "string" || !items)
|
||||
return false;
|
||||
@@ -720,10 +720,10 @@ liberator.Completion = function () //{{{
|
||||
////////////////////// COMPLETION TYPES ////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////{{{
|
||||
|
||||
bookmark: function (filter) [0, liberator.bookmarks.get(filter)],
|
||||
bookmark: function bookmark(filter) [0, liberator.bookmarks.get(filter)],
|
||||
|
||||
// FIXME: items shouldn't be [[[a], b]], but [[a, b]] and only mapped if at all for bLCS --mst
|
||||
buffer: function (filter)
|
||||
buffer: function buffer(filter)
|
||||
{
|
||||
var items = [];
|
||||
var num = getBrowser().browsers.length;
|
||||
@@ -761,7 +761,7 @@ liberator.Completion = function () //{{{
|
||||
return [0, buildLongestCommonSubstring(items, filter)];
|
||||
},
|
||||
|
||||
command: function (filter)
|
||||
command: function command(filter)
|
||||
{
|
||||
var completions = [];
|
||||
|
||||
@@ -778,9 +778,9 @@ liberator.Completion = function () //{{{
|
||||
return [0, buildLongestStartingSubstring(completions, filter)];
|
||||
},
|
||||
|
||||
dialog: function (filter) [0, this.filter(liberator.config.dialogs || [], filter)],
|
||||
dialog: function dialog(filter) [0, this.filter(liberator.config.dialogs || [], filter)],
|
||||
|
||||
environment: function (filter)
|
||||
environment: function environment(filter)
|
||||
{
|
||||
let command = WINDOWS ? "set" : "export";
|
||||
let lines = liberator.io.system(command).split("\n");
|
||||
@@ -795,10 +795,10 @@ liberator.Completion = function () //{{{
|
||||
return [0, this.filter(vars, filter)];
|
||||
},
|
||||
|
||||
event: function (filter) [0, this.filter(liberator.config.autocommands, filter)],
|
||||
event: function event(filter) [0, this.filter(liberator.config.autocommands, filter)],
|
||||
|
||||
// provides completions for ex commands, including their arguments
|
||||
ex: function (str)
|
||||
ex: function ex(str)
|
||||
{
|
||||
this.filterString = "";
|
||||
this.parenMatch = null;
|
||||
@@ -834,7 +834,7 @@ liberator.Completion = function () //{{{
|
||||
|
||||
// TODO: support file:// and \ or / path separators on both platforms
|
||||
// if "tail" is true, only return names without any directory components
|
||||
file: function (filter, tail)
|
||||
file: function file(filter, tail)
|
||||
{
|
||||
let [matches, dir, compl] = filter.match(/^((?:.*[\/\\])?)(.*?)$/);
|
||||
// dir == "" is expanded inside readDirectory to the current dir
|
||||
@@ -869,7 +869,7 @@ liberator.Completion = function () //{{{
|
||||
}catch(e){liberator.dump(e)}
|
||||
},
|
||||
|
||||
help: function (filter)
|
||||
help: function help(filter)
|
||||
{
|
||||
var files = liberator.config.helpFiles || [];
|
||||
var res = [];
|
||||
@@ -896,11 +896,11 @@ liberator.Completion = function () //{{{
|
||||
return [0, this.filter(res, filter)];
|
||||
},
|
||||
|
||||
history: function (filter) [0, liberator.history.get(filter)],
|
||||
history: function history(filter) [0, liberator.history.get(filter)],
|
||||
|
||||
get javascriptCompleter() javascript,
|
||||
|
||||
javascript: function (str)
|
||||
javascript: function _javascript(str)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -913,14 +913,14 @@ liberator.Completion = function () //{{{
|
||||
}
|
||||
},
|
||||
|
||||
macro: function (filter)
|
||||
macro: function macro(filter)
|
||||
{
|
||||
var macros = [item for (item in liberator.events.getMacros())];
|
||||
|
||||
return [0, this.filter(macros, filter)];
|
||||
},
|
||||
|
||||
search: function (filter)
|
||||
search: function search(filter)
|
||||
{
|
||||
let [, keyword, args] = filter.match(/^\s*(\S*)\s*(.*)/);
|
||||
let keywords = liberator.bookmarks.getKeywords().map(function (k) [k[0], k[1], k[3], k[2]]);
|
||||
@@ -953,7 +953,7 @@ liberator.Completion = function () //{{{
|
||||
},
|
||||
|
||||
// XXX: Move to bookmarks.js?
|
||||
searchEngineSuggest: function (filter, engineAliases)
|
||||
searchEngineSuggest: function searchEngineSuggest(filter, engineAliases)
|
||||
{
|
||||
this.filterString = filter;
|
||||
if (!filter)
|
||||
@@ -1003,7 +1003,7 @@ liberator.Completion = function () //{{{
|
||||
return [0, completions];
|
||||
},
|
||||
|
||||
sidebar: function (filter)
|
||||
sidebar: function sidebar(filter)
|
||||
{
|
||||
var menu = document.getElementById("viewSidebarMenu");
|
||||
var nodes = [];
|
||||
@@ -1014,7 +1014,7 @@ liberator.Completion = function () //{{{
|
||||
return [0, this.filter(nodes, filter)];
|
||||
},
|
||||
|
||||
stylesheet: function (filter)
|
||||
stylesheet: function stylesheet(filter)
|
||||
{
|
||||
var completions = liberator.buffer.alternateStyleSheets.map(
|
||||
function (stylesheet) [stylesheet.title, stylesheet.href || "inline"]
|
||||
@@ -1040,7 +1040,7 @@ liberator.Completion = function () //{{{
|
||||
// may consist of search engines, filenames, bookmarks and history,
|
||||
// depending on the 'complete' option
|
||||
// if the 'complete' argument is passed like "h", it temporarily overrides the complete option
|
||||
url: function (filter, complete)
|
||||
url: function url(filter, complete)
|
||||
{
|
||||
this.filterString = filter;
|
||||
var completions = [];
|
||||
@@ -1071,7 +1071,7 @@ liberator.Completion = function () //{{{
|
||||
{
|
||||
completionService.stopSearch();
|
||||
completionService.startSearch(filter, "", historyResult, {
|
||||
onSearchResult: function (search, result) {
|
||||
onSearchResult: function onSearchResult(search, result) {
|
||||
historyResult = result;
|
||||
historyTimer.tell();
|
||||
if (result.searchResult <= result.RESULT_SUCCESS)
|
||||
@@ -1085,14 +1085,14 @@ liberator.Completion = function () //{{{
|
||||
return [start, completionCache.concat(historyCache)];
|
||||
},
|
||||
|
||||
userCommand: function (filter)
|
||||
userCommand: function userCommand(filter)
|
||||
{
|
||||
var commands = liberator.commands.getUserCommands();
|
||||
commands = commands.map(function (command) [command.name, ""]);
|
||||
return [0, this.filter(commands, filter)];
|
||||
},
|
||||
|
||||
userMapping: function (filter, modes)
|
||||
userMapping: function userMapping(filter, modes)
|
||||
{
|
||||
// TODO: add appropriate getters to l.mappings
|
||||
var mappings = [];
|
||||
|
||||
43
content/compose/compose.xul
Normal file
43
content/compose/compose.xul
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- ***** BEGIN LICENSE BLOCK ***** {{{
|
||||
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
|
||||
The contents of this file are subject to the Mozilla Public License Version
|
||||
1.1 (the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS" basis,
|
||||
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
for the specific language governing rights and limitations under the
|
||||
License.
|
||||
|
||||
(c) 2006-2008: Martin Stubenschrott <stubenschrott@gmx.net>
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms of
|
||||
either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
of those above. If you wish to allow use of your version of this file only
|
||||
under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
use your version of this file under the terms of the MPL, indicate your
|
||||
decision by deleting the provisions above and replace them with the notice
|
||||
and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file under
|
||||
the terms of any one of the MPL, the GPL or the LGPL.
|
||||
}}} ***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<!--?xml-stylesheet href="chrome://browser/skin/" type="text/css"?-->
|
||||
|
||||
<overlay id="muttator"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:nc="http://home.netscape.com/NC-rdf#"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<!--script type="application/x-javascript;version=1.8" src="mail.js"/-->
|
||||
|
||||
</overlay>
|
||||
|
||||
<!-- vim: set fdm=marker sw=4 ts=4 et: -->
|
||||
6
content/compose/liberator.dtd
Normal file
6
content/compose/liberator.dtd
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
<!ENTITY liberator.mainWindow "msgcomposeWindow">
|
||||
<!ENTITY liberator.name "muttator">
|
||||
<!ENTITY liberator.statusBefore "">
|
||||
<!ENTITY liberator.statusAfter "statusText">
|
||||
|
||||
@@ -29,7 +29,9 @@ the terms of any one of the MPL, the GPL or the LGPL.
|
||||
}}} ***** END LICENSE BLOCK ***** -->
|
||||
|
||||
<?xml-stylesheet href="chrome://liberator/skin/liberator.css" type="text/css"?>
|
||||
<!DOCTYPE overlay SYSTEM "chrome://liberator/content/liberator.dtd">
|
||||
<!DOCTYPE overlay SYSTEM "liberator.dtd" [
|
||||
<!ENTITY liberator.content "chrome://liberator/content/">
|
||||
]>
|
||||
|
||||
<overlay id="liberator"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
@@ -37,24 +39,24 @@ the terms of any one of the MPL, the GPL or the LGPL.
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<script type="application/x-javascript;version=1.8" src="liberator.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.name;.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;liberator.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;&liberator.name;.js"/>
|
||||
|
||||
<script type="application/x-javascript;version=1.8" src="buffer.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="commands.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="completion.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="editor.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="events.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="find.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="help.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="hints.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="io.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="mappings.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="modes.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="options.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="template.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="ui.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="util.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;buffer.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;commands.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;completion.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;editor.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;events.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;find.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;help.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;hints.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;io.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;mappings.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;modes.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;options.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;template.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;ui.js"/>
|
||||
<script type="application/x-javascript;version=1.8" src="&liberator.content;util.js"/>
|
||||
|
||||
<window id="&liberator.mainWindow;">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user