1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-16 21:05:47 +01:00

Import part of top patch in queue: Add no-op option hive for plugin API reasons, cleanup some related code.

This commit is contained in:
Kris Maglione
2011-08-16 21:17:52 -04:00
parent 01fd946df1
commit 1ad3fdf195
7 changed files with 52 additions and 20 deletions

View File

@@ -11,7 +11,7 @@ try {
Components.utils.import("resource://dactyl/bootstrap.jsm");
defineModule("options", {
exports: ["Option", "Options", "ValueError", "options"],
require: ["messages", "storage"],
require: ["contexts", "messages", "storage"],
use: ["commands", "completion", "config", "prefs", "services", "styles", "template", "util"]
}, this);
@@ -757,6 +757,18 @@ var Option = Class("Option", {
EXPORTED_SYMBOLS.push(class_.className);
}, this);
var OptionHive = Class("OptionHive", Contexts.Hive, {
init: function init(group) {
init.supercall(this, group);
this.values = {};
this.has = Set.has(this.values);
},
add: function add(names, description, type, defaultValue, extraInfo) {
return this.modules.options.add(names, description, type, defaultValue, extraInfo);
}
});
/**
* @instance options
*/
@@ -764,6 +776,12 @@ var Options = Module("options", {
Local: function Local(dactyl, modules, window) let ({ contexts } = modules) ({
init: function init() {
const self = this;
update(this, {
hives: contexts.Hives("options", Class("OptionHive", OptionHive, { modules: modules })),
user: contexts.hives.options.user
});
this.needInit = [];
this._options = [];
this._optionMap = {};
@@ -853,6 +871,10 @@ var Options = Module("options", {
*/
add: function add(names, description, type, defaultValue, extraInfo) {
const self = this;
if (!util.isDactyl(Components.stack.caller))
deprecated.warn(add, "options.add", "group.options.add");
util.assert(type in Option.types,
_("option.noSuchType", type),
true);