From b1112787e60be712d508e80baaf0d6f9a861f0ac Mon Sep 17 00:00:00 2001
From: Ben Coburn <btcoburn@silicodon.net>
Date: Fri, 28 Apr 2006 03:51:58 +0200
Subject: accesskey tooltip rewriting

Does client-side rewriting of accesskey tooltip text so that it will be
more OS and browser specific. Dokuwiki should output all accesskey tooltips
as [ALT+<key>] because this patch matches on "[ALT+".

darcs-hash:20060428015158-05dcb-0102a1b2068c053e81dd21ad3927c78b6c9f349e.gz
---
 lib/scripts/script.js | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

(limited to 'lib/scripts')

diff --git a/lib/scripts/script.js b/lib/scripts/script.js
index 87fd8e503..d6be1cba9 100644
--- a/lib/scripts/script.js
+++ b/lib/scripts/script.js
@@ -16,6 +16,33 @@ if (clientPC.indexOf('opera')!=-1) {
     var is_opera_seven = (window.opera && document.childNodes);
 }
 
+/**
+ * Rewrite the accesskey tooltips to be more browser and OS specific.
+ *
+ * Accesskey tooltips are still only a best-guess of what will work
+ * on well known systems.
+ *
+ * @author Ben Coburn <btcoburn@silicodon.net>
+ */
+function updateAccessKeyTooltip() {
+  // determin tooltip text (order matters)
+  var tip = 'ALT+'; //default
+  if (domLib_isMac) { tip = 'CTRL+'; }
+  if (domLib_isOpera) { tip = 'SHIFT+ESC '; }
+  // add other cases here...
+
+  // do tooltip update
+  if (tip=='ALT+') { return; }
+  var exp = /\[ALT\+/i;
+  var rep = '['+tip;
+  var elements = domLib_getElementsByTagNames(['a', 'input', 'button']);
+  for (var i=0; i<elements.length; i++) {
+    if (elements[i].accessKey.length==1 && elements[i].title.length>0) {
+      elements[i].title = elements[i].title.replace(exp, rep);
+    }
+  }
+}
+
 /**
  * Handy shortcut to document.getElementById
  *
-- 
cgit v1.2.3