bgneal@312: /** bgneal@312: * charmap.js bgneal@312: * bgneal@312: * Copyright 2009, Moxiecode Systems AB bgneal@312: * Released under LGPL License. bgneal@312: * bgneal@312: * License: http://tinymce.moxiecode.com/license bgneal@312: * Contributing: http://tinymce.moxiecode.com/contributing bgneal@312: */ bgneal@312: bgneal@312: tinyMCEPopup.requireLangPack(); bgneal@312: bgneal@312: var charmap = [ bgneal@312: [' ', ' ', true, 'no-break space'], bgneal@312: ['&', '&', true, 'ampersand'], bgneal@312: ['"', '"', true, 'quotation mark'], bgneal@312: // finance bgneal@312: ['¢', '¢', true, 'cent sign'], bgneal@312: ['€', '€', true, 'euro sign'], bgneal@312: ['£', '£', true, 'pound sign'], bgneal@312: ['¥', '¥', true, 'yen sign'], bgneal@312: // signs bgneal@312: ['©', '©', true, 'copyright sign'], bgneal@312: ['®', '®', true, 'registered sign'], bgneal@312: ['™', '™', true, 'trade mark sign'], bgneal@312: ['‰', '‰', true, 'per mille sign'], bgneal@312: ['µ', 'µ', true, 'micro sign'], bgneal@312: ['·', '·', true, 'middle dot'], bgneal@312: ['•', '•', true, 'bullet'], bgneal@312: ['…', '…', true, 'three dot leader'], bgneal@312: ['′', '′', true, 'minutes / feet'], bgneal@312: ['″', '″', true, 'seconds / inches'], bgneal@312: ['§', '§', true, 'section sign'], bgneal@312: ['¶', '¶', true, 'paragraph sign'], bgneal@312: ['ß', 'ß', true, 'sharp s / ess-zed'], bgneal@312: // quotations bgneal@312: ['‹', '‹', true, 'single left-pointing angle quotation mark'], bgneal@312: ['›', '›', true, 'single right-pointing angle quotation mark'], bgneal@312: ['«', '«', true, 'left pointing guillemet'], bgneal@312: ['»', '»', true, 'right pointing guillemet'], bgneal@312: ['‘', '‘', true, 'left single quotation mark'], bgneal@312: ['’', '’', true, 'right single quotation mark'], bgneal@312: ['“', '“', true, 'left double quotation mark'], bgneal@312: ['”', '”', true, 'right double quotation mark'], bgneal@312: ['‚', '‚', true, 'single low-9 quotation mark'], bgneal@312: ['„', '„', true, 'double low-9 quotation mark'], bgneal@312: ['<', '<', true, 'less-than sign'], bgneal@312: ['>', '>', true, 'greater-than sign'], bgneal@312: ['≤', '≤', true, 'less-than or equal to'], bgneal@312: ['≥', '≥', true, 'greater-than or equal to'], bgneal@312: ['–', '–', true, 'en dash'], bgneal@312: ['—', '—', true, 'em dash'], bgneal@312: ['¯', '¯', true, 'macron'], bgneal@312: ['‾', '‾', true, 'overline'], bgneal@312: ['¤', '¤', true, 'currency sign'], bgneal@312: ['¦', '¦', true, 'broken bar'], bgneal@312: ['¨', '¨', true, 'diaeresis'], bgneal@312: ['¡', '¡', true, 'inverted exclamation mark'], bgneal@312: ['¿', '¿', true, 'turned question mark'], bgneal@312: ['ˆ', 'ˆ', true, 'circumflex accent'], bgneal@312: ['˜', '˜', true, 'small tilde'], bgneal@312: ['°', '°', true, 'degree sign'], bgneal@312: ['−', '−', true, 'minus sign'], bgneal@312: ['±', '±', true, 'plus-minus sign'], bgneal@312: ['÷', '÷', true, 'division sign'], bgneal@312: ['⁄', '⁄', true, 'fraction slash'], bgneal@312: ['×', '×', true, 'multiplication sign'], bgneal@312: ['¹', '¹', true, 'superscript one'], bgneal@312: ['²', '²', true, 'superscript two'], bgneal@312: ['³', '³', true, 'superscript three'], bgneal@312: ['¼', '¼', true, 'fraction one quarter'], bgneal@312: ['½', '½', true, 'fraction one half'], bgneal@312: ['¾', '¾', true, 'fraction three quarters'], bgneal@312: // math / logical bgneal@312: ['ƒ', 'ƒ', true, 'function / florin'], bgneal@312: ['∫', '∫', true, 'integral'], bgneal@312: ['∑', '∑', true, 'n-ary sumation'], bgneal@312: ['∞', '∞', true, 'infinity'], bgneal@312: ['√', '√', true, 'square root'], bgneal@312: ['∼', '∼', false,'similar to'], bgneal@312: ['≅', '≅', false,'approximately equal to'], bgneal@312: ['≈', '≈', true, 'almost equal to'], bgneal@312: ['≠', '≠', true, 'not equal to'], bgneal@312: ['≡', '≡', true, 'identical to'], bgneal@312: ['∈', '∈', false,'element of'], bgneal@312: ['∉', '∉', false,'not an element of'], bgneal@312: ['∋', '∋', false,'contains as member'], bgneal@312: ['∏', '∏', true, 'n-ary product'], bgneal@312: ['∧', '∧', false,'logical and'], bgneal@312: ['∨', '∨', false,'logical or'], bgneal@312: ['¬', '¬', true, 'not sign'], bgneal@312: ['∩', '∩', true, 'intersection'], bgneal@312: ['∪', '∪', false,'union'], bgneal@312: ['∂', '∂', true, 'partial differential'], bgneal@312: ['∀', '∀', false,'for all'], bgneal@312: ['∃', '∃', false,'there exists'], bgneal@312: ['∅', '∅', false,'diameter'], bgneal@312: ['∇', '∇', false,'backward difference'], bgneal@312: ['∗', '∗', false,'asterisk operator'], bgneal@312: ['∝', '∝', false,'proportional to'], bgneal@312: ['∠', '∠', false,'angle'], bgneal@312: // undefined bgneal@312: ['´', '´', true, 'acute accent'], bgneal@312: ['¸', '¸', true, 'cedilla'], bgneal@312: ['ª', 'ª', true, 'feminine ordinal indicator'], bgneal@312: ['º', 'º', true, 'masculine ordinal indicator'], bgneal@312: ['†', '†', true, 'dagger'], bgneal@312: ['‡', '‡', true, 'double dagger'], bgneal@312: // alphabetical special chars bgneal@312: ['À', 'À', true, 'A - grave'], bgneal@312: ['Á', 'Á', true, 'A - acute'], bgneal@312: ['Â', 'Â', true, 'A - circumflex'], bgneal@312: ['Ã', 'Ã', true, 'A - tilde'], bgneal@312: ['Ä', 'Ä', true, 'A - diaeresis'], bgneal@312: ['Å', 'Å', true, 'A - ring above'], bgneal@312: ['Æ', 'Æ', true, 'ligature AE'], bgneal@312: ['Ç', 'Ç', true, 'C - cedilla'], bgneal@312: ['È', 'È', true, 'E - grave'], bgneal@312: ['É', 'É', true, 'E - acute'], bgneal@312: ['Ê', 'Ê', true, 'E - circumflex'], bgneal@312: ['Ë', 'Ë', true, 'E - diaeresis'], bgneal@312: ['Ì', 'Ì', true, 'I - grave'], bgneal@312: ['Í', 'Í', true, 'I - acute'], bgneal@312: ['Î', 'Î', true, 'I - circumflex'], bgneal@312: ['Ï', 'Ï', true, 'I - diaeresis'], bgneal@312: ['Ð', 'Ð', true, 'ETH'], bgneal@312: ['Ñ', 'Ñ', true, 'N - tilde'], bgneal@312: ['Ò', 'Ò', true, 'O - grave'], bgneal@312: ['Ó', 'Ó', true, 'O - acute'], bgneal@312: ['Ô', 'Ô', true, 'O - circumflex'], bgneal@312: ['Õ', 'Õ', true, 'O - tilde'], bgneal@312: ['Ö', 'Ö', true, 'O - diaeresis'], bgneal@312: ['Ø', 'Ø', true, 'O - slash'], bgneal@312: ['Œ', 'Œ', true, 'ligature OE'], bgneal@312: ['Š', 'Š', true, 'S - caron'], bgneal@312: ['Ù', 'Ù', true, 'U - grave'], bgneal@312: ['Ú', 'Ú', true, 'U - acute'], bgneal@312: ['Û', 'Û', true, 'U - circumflex'], bgneal@312: ['Ü', 'Ü', true, 'U - diaeresis'], bgneal@312: ['Ý', 'Ý', true, 'Y - acute'], bgneal@312: ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], bgneal@312: ['Þ', 'Þ', true, 'THORN'], bgneal@312: ['à', 'à', true, 'a - grave'], bgneal@312: ['á', 'á', true, 'a - acute'], bgneal@312: ['â', 'â', true, 'a - circumflex'], bgneal@312: ['ã', 'ã', true, 'a - tilde'], bgneal@312: ['ä', 'ä', true, 'a - diaeresis'], bgneal@312: ['å', 'å', true, 'a - ring above'], bgneal@312: ['æ', 'æ', true, 'ligature ae'], bgneal@312: ['ç', 'ç', true, 'c - cedilla'], bgneal@312: ['è', 'è', true, 'e - grave'], bgneal@312: ['é', 'é', true, 'e - acute'], bgneal@312: ['ê', 'ê', true, 'e - circumflex'], bgneal@312: ['ë', 'ë', true, 'e - diaeresis'], bgneal@312: ['ì', 'ì', true, 'i - grave'], bgneal@312: ['í', 'í', true, 'i - acute'], bgneal@312: ['î', 'î', true, 'i - circumflex'], bgneal@312: ['ï', 'ï', true, 'i - diaeresis'], bgneal@312: ['ð', 'ð', true, 'eth'], bgneal@312: ['ñ', 'ñ', true, 'n - tilde'], bgneal@312: ['ò', 'ò', true, 'o - grave'], bgneal@312: ['ó', 'ó', true, 'o - acute'], bgneal@312: ['ô', 'ô', true, 'o - circumflex'], bgneal@312: ['õ', 'õ', true, 'o - tilde'], bgneal@312: ['ö', 'ö', true, 'o - diaeresis'], bgneal@312: ['ø', 'ø', true, 'o slash'], bgneal@312: ['œ', 'œ', true, 'ligature oe'], bgneal@312: ['š', 'š', true, 's - caron'], bgneal@312: ['ù', 'ù', true, 'u - grave'], bgneal@312: ['ú', 'ú', true, 'u - acute'], bgneal@312: ['û', 'û', true, 'u - circumflex'], bgneal@312: ['ü', 'ü', true, 'u - diaeresis'], bgneal@312: ['ý', 'ý', true, 'y - acute'], bgneal@312: ['þ', 'þ', true, 'thorn'], bgneal@312: ['ÿ', 'ÿ', true, 'y - diaeresis'], bgneal@442: ['Α', 'Α', true, 'Alpha'], bgneal@312: ['Β', 'Β', true, 'Beta'], bgneal@312: ['Γ', 'Γ', true, 'Gamma'], bgneal@312: ['Δ', 'Δ', true, 'Delta'], bgneal@312: ['Ε', 'Ε', true, 'Epsilon'], bgneal@312: ['Ζ', 'Ζ', true, 'Zeta'], bgneal@312: ['Η', 'Η', true, 'Eta'], bgneal@312: ['Θ', 'Θ', true, 'Theta'], bgneal@312: ['Ι', 'Ι', true, 'Iota'], bgneal@312: ['Κ', 'Κ', true, 'Kappa'], bgneal@312: ['Λ', 'Λ', true, 'Lambda'], bgneal@312: ['Μ', 'Μ', true, 'Mu'], bgneal@312: ['Ν', 'Ν', true, 'Nu'], bgneal@312: ['Ξ', 'Ξ', true, 'Xi'], bgneal@312: ['Ο', 'Ο', true, 'Omicron'], bgneal@312: ['Π', 'Π', true, 'Pi'], bgneal@312: ['Ρ', 'Ρ', true, 'Rho'], bgneal@312: ['Σ', 'Σ', true, 'Sigma'], bgneal@312: ['Τ', 'Τ', true, 'Tau'], bgneal@312: ['Υ', 'Υ', true, 'Upsilon'], bgneal@312: ['Φ', 'Φ', true, 'Phi'], bgneal@312: ['Χ', 'Χ', true, 'Chi'], bgneal@312: ['Ψ', 'Ψ', true, 'Psi'], bgneal@312: ['Ω', 'Ω', true, 'Omega'], bgneal@312: ['α', 'α', true, 'alpha'], bgneal@312: ['β', 'β', true, 'beta'], bgneal@312: ['γ', 'γ', true, 'gamma'], bgneal@312: ['δ', 'δ', true, 'delta'], bgneal@312: ['ε', 'ε', true, 'epsilon'], bgneal@312: ['ζ', 'ζ', true, 'zeta'], bgneal@312: ['η', 'η', true, 'eta'], bgneal@312: ['θ', 'θ', true, 'theta'], bgneal@312: ['ι', 'ι', true, 'iota'], bgneal@312: ['κ', 'κ', true, 'kappa'], bgneal@312: ['λ', 'λ', true, 'lambda'], bgneal@312: ['μ', 'μ', true, 'mu'], bgneal@312: ['ν', 'ν', true, 'nu'], bgneal@312: ['ξ', 'ξ', true, 'xi'], bgneal@312: ['ο', 'ο', true, 'omicron'], bgneal@312: ['π', 'π', true, 'pi'], bgneal@312: ['ρ', 'ρ', true, 'rho'], bgneal@312: ['ς', 'ς', true, 'final sigma'], bgneal@312: ['σ', 'σ', true, 'sigma'], bgneal@312: ['τ', 'τ', true, 'tau'], bgneal@312: ['υ', 'υ', true, 'upsilon'], bgneal@312: ['φ', 'φ', true, 'phi'], bgneal@312: ['χ', 'χ', true, 'chi'], bgneal@312: ['ψ', 'ψ', true, 'psi'], bgneal@312: ['ω', 'ω', true, 'omega'], bgneal@312: // symbols bgneal@312: ['ℵ', 'ℵ', false,'alef symbol'], bgneal@312: ['ϖ', 'ϖ', false,'pi symbol'], bgneal@312: ['ℜ', 'ℜ', false,'real part symbol'], bgneal@312: ['ϑ','ϑ', false,'theta symbol'], bgneal@312: ['ϒ', 'ϒ', false,'upsilon - hook symbol'], bgneal@312: ['℘', '℘', false,'Weierstrass p'], bgneal@312: ['ℑ', 'ℑ', false,'imaginary part'], bgneal@312: // arrows bgneal@312: ['←', '←', true, 'leftwards arrow'], bgneal@312: ['↑', '↑', true, 'upwards arrow'], bgneal@312: ['→', '→', true, 'rightwards arrow'], bgneal@312: ['↓', '↓', true, 'downwards arrow'], bgneal@312: ['↔', '↔', true, 'left right arrow'], bgneal@312: ['↵', '↵', false,'carriage return'], bgneal@312: ['⇐', '⇐', false,'leftwards double arrow'], bgneal@312: ['⇑', '⇑', false,'upwards double arrow'], bgneal@312: ['⇒', '⇒', false,'rightwards double arrow'], bgneal@312: ['⇓', '⇓', false,'downwards double arrow'], bgneal@312: ['⇔', '⇔', false,'left right double arrow'], bgneal@312: ['∴', '∴', false,'therefore'], bgneal@312: ['⊂', '⊂', false,'subset of'], bgneal@312: ['⊃', '⊃', false,'superset of'], bgneal@312: ['⊄', '⊄', false,'not a subset of'], bgneal@312: ['⊆', '⊆', false,'subset of or equal to'], bgneal@312: ['⊇', '⊇', false,'superset of or equal to'], bgneal@312: ['⊕', '⊕', false,'circled plus'], bgneal@312: ['⊗', '⊗', false,'circled times'], bgneal@312: ['⊥', '⊥', false,'perpendicular'], bgneal@312: ['⋅', '⋅', false,'dot operator'], bgneal@312: ['⌈', '⌈', false,'left ceiling'], bgneal@312: ['⌉', '⌉', false,'right ceiling'], bgneal@312: ['⌊', '⌊', false,'left floor'], bgneal@312: ['⌋', '⌋', false,'right floor'], bgneal@312: ['〈', '〈', false,'left-pointing angle bracket'], bgneal@312: ['〉', '〉', false,'right-pointing angle bracket'], bgneal@442: ['◊', '◊', true, 'lozenge'], bgneal@442: ['♠', '♠', true, 'black spade suit'], bgneal@312: ['♣', '♣', true, 'black club suit'], bgneal@312: ['♥', '♥', true, 'black heart suit'], bgneal@312: ['♦', '♦', true, 'black diamond suit'], bgneal@312: [' ', ' ', false,'en space'], bgneal@312: [' ', ' ', false,'em space'], bgneal@312: [' ', ' ', false,'thin space'], bgneal@312: ['', '', false,'zero width non-joiner'], bgneal@312: ['', '', false,'zero width joiner'], bgneal@312: ['', '', false,'left-to-right mark'], bgneal@312: ['', '', false,'right-to-left mark'], bgneal@312: ['', '', false,'soft hyphen'] bgneal@312: ]; bgneal@312: bgneal@312: tinyMCEPopup.onInit.add(function() { bgneal@312: tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); bgneal@442: addKeyboardNavigation(); bgneal@312: }); bgneal@312: bgneal@442: function addKeyboardNavigation(){ bgneal@442: var tableElm, cells, settings; bgneal@442: bgneal@442: cells = tinyMCEPopup.dom.select(".charmaplink", "charmapgroup"); bgneal@442: bgneal@442: settings ={ bgneal@442: root: "charmapgroup", bgneal@442: items: cells bgneal@442: }; bgneal@442: bgneal@442: tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom); bgneal@442: } bgneal@442: bgneal@312: function renderCharMapHTML() { bgneal@312: var charsPerRow = 20, tdWidth=20, tdHeight=20, i; bgneal@442: var html = '