2 * (C) Copyright 2007-2008 Jeremy Maitin-Shepard
4 * Use, modification, and distribution are subject to the terms specified in the
8 require("interactive.js");
10 function define_global_mode(name, enable, disable)
12 var hyphen_name = name.replace("_","-","g");
13 var state = name + "_enabled";
15 var enable_hook_name = hyphen_name + "-enable-hook";
16 var disable_hook_name = hyphen_name + "-disable-hook";
17 define_hook(enable_hook_name);
18 define_hook(disable_hook_name);
19 var func = function (arg) {
20 var curstate = conkeror[state];
21 var newstate = (arg == null) ? !curstate : (arg > 0);
22 if (curstate == newstate)
24 conkeror[state] = newstate;
27 conkeror[enable_hook_name].run();
30 conkeror[disable_hook_name].run();
34 interactive(hyphen_name, null, function (I) {
36 func(arg && univ_arg_to_number(arg));
37 I.minibuffer.message(hyphen_name + (conkeror[state] ? " enabled" : " disabled"));
40 ignore_function_for_get_caller_source_code_reference("define_global_mode");