summaryrefslogtreecommitdiff
path: root/src/www/minibar
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-03-29 17:10:36 +0000
committerhallgren <hallgren@chalmers.se>2012-03-29 17:10:36 +0000
commite85a3fff563bbb71802fea686c9e23f1cfcd72d3 (patch)
treed7ec33cb1d86b766655c483532dd9288b9373804 /src/www/minibar
parenta519d01754f053eaa8301c5433c5a1c64a80d7f9 (diff)
gfse&minibar: work in progress on grammar extension fromminibar
Diffstat (limited to 'src/www/minibar')
-rw-r--r--src/www/minibar/minibar_input.js8
-rw-r--r--src/www/minibar/support.js4
2 files changed, 10 insertions, 2 deletions
diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js
index eb4b959be..499e70cd7 100644
--- a/src/www/minibar/minibar_input.js
+++ b/src/www/minibar/minibar_input.js
@@ -363,6 +363,7 @@ Input.prototype.show_replacements=function(brackets,parent) {
function browse1(fun_info) {
var fun_type = fun_info.def.split(":")[1];
function browse2(cat_info) {
+ var extb=null;
function examine_replacement(rfun) {
function browse3(rfun_info) {
var rfun_type=rfun_info.def.split(":")[1];
@@ -370,12 +371,17 @@ Input.prototype.show_replacements=function(brackets,parent) {
t.replace_word(brackets,parent,rfun);
}
if(rfun_type==fun_type)
- t.words.appendChild(button(rfun,replace))
+ t.words.insertBefore(button(rfun,replace),extb);
}
t.browse(rfun,browse3)
}
var ps=cat_info.producers;
clear(t.words);
+ if(t.options.extend_grammar) {
+ extb=button("New "+cat+"...",
+ function() { t.options.extend_grammar(cat,fun_type)})
+ t.words.appendChild(extb)
+ }
if(ps)
for(var pi in ps)
if(ps[pi]!=fun) examine_replacement(ps[pi])
diff --git a/src/www/minibar/support.js b/src/www/minibar/support.js
index 5d0158ad1..557a3b41f 100644
--- a/src/www/minibar/support.js
+++ b/src/www/minibar/support.js
@@ -146,7 +146,9 @@ function empty_class(tag,cls) { return empty(tag,"class",cls); }
function div_id(id,cs) { return node("div",{id:id},cs); }
function span_id(id) { return empty_id("span",id); }
-function wrap(tag,contents) { return node(tag,{},[contents]); }
+function wrap(tag,contents) {
+ return node(tag,{},Array.isArray(contents) ? contents : [contents]);
+}
function wrap_class(tag,cls,contents) {
return node(tag,{"class":cls},