diff options
| author | hallgren <hallgren@chalmers.se> | 2012-03-29 17:10:36 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2012-03-29 17:10:36 +0000 |
| commit | e85a3fff563bbb71802fea686c9e23f1cfcd72d3 (patch) | |
| tree | d7ec33cb1d86b766655c483532dd9288b9373804 /src/www/minibar | |
| parent | a519d01754f053eaa8301c5433c5a1c64a80d7f9 (diff) | |
gfse&minibar: work in progress on grammar extension fromminibar
Diffstat (limited to 'src/www/minibar')
| -rw-r--r-- | src/www/minibar/minibar_input.js | 8 | ||||
| -rw-r--r-- | src/www/minibar/support.js | 4 |
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}, |
