diff --git a/src/www/gfse/editor.js b/src/www/gfse/editor.js
index a731279ab..f3f5bf98f 100644
--- a/src/www/gfse/editor.js
+++ b/src/www/gfse/editor.js
@@ -1908,12 +1908,6 @@ function table(rows) { return wrap("table",rows); }
function td_right(cs) { return node("td",{"class":"right"},cs); }
function td_center(cs) { return node("td",{"class":"center"},cs); }
function jsurl(js) { return "javascript:"+js; }
-function title(t,n) { return attr({title:t},n) }
-
-function attr(as,n) {
- for(var a in as) n.setAttribute(a,as[a]);
- return n
-}
/* -------------------------------------------------------------------------- */
diff --git a/src/www/js/support.js b/src/www/js/support.js
index 47753e768..44c0e3895 100644
--- a/src/www/js/support.js
+++ b/src/www/js/support.js
@@ -160,12 +160,16 @@ function encodeArgs(args) {
function text(s) { return document.createTextNode(s); }
function node(tag,as,ds) {
- var n=document.createElement(tag);
- for(var a in as) n.setAttribute(a,as[a]);
+ var n=attr(as,document.createElement(tag));
if(ds) for(var i in ds) n.appendChild(ds[i]);
return n;
}
+function attr(as,n) {
+ for(var a in as) n.setAttribute(a,as[a]);
+ return n
+}
+
function empty(tag,name,value) {
var el=node(tag,{},[])
if(name && value) el.setAttribute(name,value);
@@ -221,6 +225,8 @@ function tda(cs) { return node("td",{},cs); }
function img(src) { return empty("img","src",src); }
+function title(t,n) { return attr({title:t},n) }
+
/* --- Document modification ------------------------------------------------ */
function clear(el) { replaceInnerHTML(el,""); }
diff --git a/src/www/minibar/about.html b/src/www/minibar/about.html
index 7afa1728e..cfc367c7c 100644
--- a/src/www/minibar/about.html
+++ b/src/www/minibar/about.html
@@ -214,11 +214,14 @@ Some implementation details:
[Added 2012-04-18] Added buttons to use generated translations as input.
(This functionality is available in the original Fridge Poetry, but has
been missing in Minibar, until now.)
+ [Added 2012-11-23] Added support for switching back and forth between the
+ minibar and the new syntax tree editor. The default configuration in
+ minibar_online.js shows how to enable it.
-Last modified: Tue Nov 27 15:02:49 CET 2012
+Last modified: Thu Nov 29 17:02:43 CET 2012
TH
diff --git a/src/www/minibar/minibar.js b/src/www/minibar/minibar.js
index 258de3078..51849fc91 100644
--- a/src/www/minibar/minibar.js
+++ b/src/www/minibar/minibar.js
@@ -101,7 +101,7 @@ Minibar.prototype.show_grammarlist=function(dir,grammar_names,dir_count) {
if(t.timeout) clearTimeout(t.timeout),t.timeout=null;
if(t.grammar_menu.length>1 && !t.grammar_menu.parentElement) {
t.grammar_menu.onchange=pick;
- insertFirst(t.menubar,button("i",bind(t.show_grammarinfo,t)))
+ insertFirst(t.menubar,title("Show grammar info",button("i",bind(t.show_grammarinfo,t))))
insertFirst(t.menubar,t.grammar_menu);
insertFirst(t.menubar,text("Grammar: "));
}
diff --git a/src/www/minibar/minibar_input.js b/src/www/minibar/minibar_input.js
index 212ecd4f8..e2566da7d 100644
--- a/src/www/minibar/minibar_input.js
+++ b/src/www/minibar/minibar_input.js
@@ -33,7 +33,7 @@ function Input(server,translations,opts) { // Input object constructor
appendChildren(menus,[text(" Startcat: "),startcat_menu])
appendChildren(menus,[text(" From: "),from_menu])
appendChildren(buttons,
- [button(options.delete_button_text,bind(delete_last,t),"H"),
+ [title("Delete last word",button(options.delete_button_text,bind(delete_last,t),"H")),
button("Clear",bind(clear_all,t),"L")]);
if(options.random_button)
buttons.appendChild(button("Random",bind(generate_random,t),"R"));
diff --git a/src/www/minibar/minibar_translations.js b/src/www/minibar/minibar_translations.js
index db0382d34..c5eaf6f4c 100644
--- a/src/www/minibar/minibar_translations.js
+++ b/src/www/minibar/minibar_translations.js
@@ -106,7 +106,8 @@ Translations.prototype.show_translations=function(translationResults) {
self.options.abstract_action(t.tree)
}
var abs_hdr = options.abstract_action
- ? button("Abstract",abs_act)
+ ? title("Edit the syntax tree",
+ button("Abstract",abs_act))
: text("Abstract: ")
tbody.appendChild(
tr([th(abs_hdr),
@@ -122,7 +123,8 @@ Translations.prototype.show_translations=function(translationResults) {
if(to=="All" || lin[i].to==to) {
var langcode=langpart(lin[i].to,grammar.name)
//var hdr=text(langcode+": ")
- var hdr=button(langcode,act(lin[i]))
+ var hdr=title("Switch input language to "+langcode,
+ button(langcode,act(lin[i])))
//hdr.disabled=lin[i].to==current.from
var btn=parsetree_button(t.tree,lin[i].to)
tbody.appendChild(tr([th(hdr),