mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-21 05:18:12 +01:00
* Standard module format. All modules are explicitly declared as modules, they're created via a constructor and instantiated automatically. They're dependency aware. They stringify properly. * Classes are declared the same way (rather like Structs already were). They also stringify properly. Plus, each instance has a rather nifty closure member that closes all of its methods around 'this', so you can pass them to map, forEach, setTimeout, etc. Modules are themselves classes, with a special metaclass, as it were. * Doug Crockford is dead, metaphorically speaking. Closure-based classes just don't fit into any of the common JavaScript frameworks, and they're inefficient and confusing. Now, all class and module members are accessed explicitly via 'this', which makes it very clear that they're class members and not (e.g.) local variables, without anything nasty like Hungarian notation. * Strictly one module per file. Classes that belong to a module live in the same file. * For the moment, there are quite a few utility functions sitting in base.c, because my class implementation used them, and I haven't had the time or inclination to sort them out. I plan to reconcile them with the current mess that is the util namespace. * Changed bracing style.
104 lines
5.8 KiB
XML
104 lines
5.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!-- ***** BEGIN LICENSE BLOCK ***** {{{
|
|
Copyright (c) 2006-2009 by Martin Stubenschrott <stubenschrott@vimperator.org>
|
|
|
|
This work is licensed for reuse under an MIT license. Details are
|
|
given in the LICENSE.txt file included with this file.
|
|
}}} ***** END LICENSE BLOCK ***** -->
|
|
|
|
<?xml-stylesheet href="chrome://liberator/skin/liberator.css" type="text/css"?>
|
|
<!DOCTYPE overlay SYSTEM "liberator.dtd" [
|
|
<!ENTITY liberator.content "chrome://liberator/content/">
|
|
<!ENTITY and "&&">
|
|
]>
|
|
|
|
<overlay id="liberator"
|
|
xmlns:liberator="http://vimperator.org/namespaces/liberator"
|
|
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="&liberator.content;liberator-overlay.js"/>
|
|
|
|
<window id="&liberator.mainWindow;">
|
|
<stringbundleset id="liberator-stringbundles">
|
|
<stringbundle id="liberator-charset-bundle"
|
|
src="chrome://global/locale/charsetTitles.properties"/>
|
|
</stringbundleset>
|
|
|
|
<keyset id="mainKeyset">
|
|
<key id="key_open_vimbar" key=":" oncommand="window.liberator ∧ liberator.modules.commandline.open(':', '', liberator.modules.modes.EX);" modifiers=""/>
|
|
<key id="key_stop" keycode="VK_ESCAPE" oncommand="window.liberator ∧ liberator.modules.events.onEscape();"/>
|
|
<!-- other keys are handled inside the event loop in events.js -->
|
|
</keyset>
|
|
|
|
<popupset>
|
|
<panel id="liberator-visualbell" liberator:highlight="Bell"/>
|
|
</popupset>
|
|
|
|
<!--this notifies us also of focus events in the XUL
|
|
from: http://developer.mozilla.org/en/docs/XUL_Tutorial:Updating_Commands !-->
|
|
<commandset id="onVimperatorFocus"
|
|
commandupdater="true"
|
|
events="focus"
|
|
oncommandupdate="if (window.liberator ∧ liberator.modules.events != undefined) liberator.modules.events.onFocusChange(event);"/>
|
|
<commandset id="onVimperatorSelect"
|
|
commandupdater="true"
|
|
events="select"
|
|
oncommandupdate="if (window.liberator ∧ liberator.modules.events != undefined) liberator.modules.events.onSelectionChange(event);"/>
|
|
|
|
<!-- As of Firefox 3.1pre, <iframe>.height changes do not seem to have immediate effect,
|
|
therefore we need to put them into a <vbox> for which that works just fine -->
|
|
<vbox class="liberator-container" hidden="false" collapsed="true">
|
|
<iframe id="liberator-multiline-output" src="chrome://liberator/content/buffer.xhtml"
|
|
flex="1" hidden="false" collapsed="false"
|
|
onclick="window.liberator ∧ liberator.modules.commandline.onMultilineOutputEvent(event)"/>
|
|
</vbox>
|
|
|
|
<vbox class="liberator-container" hidden="false" collapsed="true">
|
|
<iframe id="liberator-completions" src="chrome://liberator/content/buffer.xhtml"
|
|
flex="1" hidden="false" collapsed="false"
|
|
onclick="window.liberator ∧ liberator.modules.commandline.onMultilineOutputEvent(event)"/>
|
|
</vbox>
|
|
|
|
<stack orient="horizontal" align="stretch" class="liberator-container" liberator:highlight="CmdLine">
|
|
<textbox class="plain" id="liberator-message" flex="1" readonly="true" liberator:highlight="Normal"/>
|
|
<hbox id="liberator-commandline" hidden="false" collapsed="true" class="liberator-container" liberator:highlight="Normal">
|
|
<label class="plain" id="liberator-commandline-prompt" flex="0" crop="end" value="" collapsed="true"/>
|
|
<textbox class="plain" id="liberator-commandline-command" flex="1" type="timed" timeout="100"
|
|
oninput="window.liberator ∧ liberator.modules.commandline.onEvent(event);"
|
|
onkeyup="window.liberator ∧ liberator.modules.commandline.onEvent(event);"
|
|
onfocus="window.liberator ∧ liberator.modules.commandline.onEvent(event);"
|
|
onblur="window.liberator ∧ liberator.modules.commandline.onEvent(event);"/>
|
|
</hbox>
|
|
</stack>
|
|
|
|
<vbox class="liberator-container" hidden="false" collapsed="false" liberator:highlight="CmdLine">
|
|
<textbox id="liberator-multiline-input" class="plain" flex="1" rows="1" hidden="false" collapsed="true" multiline="true" liberator:highlight="Normal"
|
|
onkeypress="window.liberator ∧ liberator.modules.commandline.onMultilineInputEvent(event);"
|
|
oninput="window.liberator ∧ liberator.modules.commandline.onMultilineInputEvent(event);"
|
|
onblur="window.liberator ∧ liberator.modules.commandline.onMultilineInputEvent(event);"/>
|
|
</vbox>
|
|
|
|
</window>
|
|
|
|
<statusbar id="status-bar" liberator:highlight="StatusLine">
|
|
<hbox insertbefore="&liberator.statusBefore;" insertafter="&liberator.statusAfter;"
|
|
id="liberator-statusline" flex="1" hidden="false" align="center">
|
|
<textbox class="plain" id="liberator-statusline-field-url" readonly="false" flex="1" crop="end"/>
|
|
<label class="plain" id="liberator-statusline-field-inputbuffer" flex="0"/>
|
|
<label class="plain" id="liberator-statusline-field-progress" flex="0"/>
|
|
<label class="plain" id="liberator-statusline-field-tabcount" flex="0"/>
|
|
<label class="plain" id="liberator-statusline-field-bufferposition" flex="0"/>
|
|
</hbox>
|
|
<!-- just hide them since other elements expect them -->
|
|
<statusbarpanel id="statusbar-display" hidden="true"/>
|
|
<statusbarpanel id="statusbar-progresspanel" hidden="true"/>
|
|
</statusbar>
|
|
|
|
</overlay>
|
|
|
|
<!-- vim: set fdm=marker sw=4 ts=4 et: -->
|