diff options
author | alecpl <alec@alec.pl> | 2012-03-09 13:23:24 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2012-03-09 13:23:24 +0000 |
commit | 4be86f3a3779ef86be30e8451750130569d2cacd (patch) | |
tree | 9dc44ebaf3f064609bd92b5a1a7e0118c0cbdedc /skins/larry | |
parent | 84d6e279e339cacaea4d3eb61290d54af1c1009b (diff) |
- Unified (single) spellchecker button
Diffstat (limited to 'skins/larry')
-rw-r--r-- | skins/larry/mail.css | 8 | ||||
-rw-r--r-- | skins/larry/styles.css | 10 | ||||
-rw-r--r-- | skins/larry/templates/compose.html | 12 | ||||
-rw-r--r-- | skins/larry/ui.js | 47 |
4 files changed, 62 insertions, 15 deletions
diff --git a/skins/larry/mail.css b/skins/larry/mail.css index a9deea6e1..f96827b27 100644 --- a/skins/larry/mail.css +++ b/skins/larry/mail.css @@ -1166,11 +1166,12 @@ div.message-part blockquote blockquote blockquote { #composebody { position: absolute; - top: 24px; + top: 1px; left: 0; bottom: 0; width: 99%; border: 0; + border-radius: 0; padding: 8px 0 8px 8px; box-shadow: none; resize: none; @@ -1195,11 +1196,6 @@ div.message-part blockquote blockquote blockquote { overflow: auto; } -#spellcheck-control { - margin: 6px 8px; - text-align: right; -} - .defaultSkin table.mceLayout, .defaultSkin table.mceLayout tr.mceLast td { border: 0 !important; diff --git a/skins/larry/styles.css b/skins/larry/styles.css index 4c242f56b..c9a4b0f67 100644 --- a/skins/larry/styles.css +++ b/skins/larry/styles.css @@ -1390,7 +1390,8 @@ ul.proplist li { } .toolbar a.button.spellcheck { - background-position: center -930px; + min-width: 64px; + background-position: left -930px; } .toolbar a.button.insertsig { @@ -1574,10 +1575,15 @@ select.decorated option[selected='selected'] { background: linear-gradient(top, #00aad6 0%, #008fc9 100%); } -ul.toolbarmenu.iconized li a { +ul.toolbarmenu.iconized li a, +ul.toolbarmenu.selectable li a { padding-left: 30px; } +ul.toolbarmenu.selectable li a.selected { + background: url(images/messages.png) 4px -27px no-repeat; +} + ul.toolbarmenu li label { display: block; color: #fff; diff --git a/skins/larry/templates/compose.html b/skins/larry/templates/compose.html index 20bead41c..0c1b81759 100644 --- a/skins/larry/templates/compose.html +++ b/skins/larry/templates/compose.html @@ -3,7 +3,9 @@ <head> <title><roundcube:object name="pagetitle" /></title> <roundcube:include file="/includes/links.html" /> +<roundcube:if condition="config:enable_spellcheck" /> <link rel="stylesheet" type="text/css" href="/googiespell.css" /> +<roundcube:endif /> </head> <body class="noscroll"> @@ -38,7 +40,12 @@ <!-- toolbar --> <div id="messagetoolbar" class="fullwidth"> <div id="mailtoolbar" class="toolbar"> - <roundcube:button command="spellcheck" type="link" class="button spellcheck disabled" classAct="button spellcheck" classSel="button spellcheck pressed" label="spellcheck" title="checkspelling" /> + <roundcube:if condition="config:enable_spellcheck" /> + <span class="dropbutton"> + <roundcube:button command="spellcheck" type="link" class="button spellcheck disabled" classAct="button spellcheck" classSel="button spellcheck pressed" label="spellcheck" title="checkspelling" /> + <span class="dropbuttontip" id="spellmenulink" onclick="UI.show_popup('spellmenu');return false"></span> + </span> + <roundcube:endif /> <roundcube:button name="addattachment" type="link" class="button attach" classAct="button attach" classSel="button attach pressed" label="attach" title="addattachment" onclick="UI.show_uploadform();return false" /> <roundcube:button command="insert-sig" type="link" class="button insertsig disabled" classAct="button insertsig" classSel="button insertsig pressed" label="signature" title="insertsignature" /> <roundcube:container name="toolbar" id="compose-toolbar" /> @@ -142,7 +149,6 @@ <!-- message compose body --> <div id="composeview-bottom"> <div id="composebodycontainer"> - <div id="spellcheck-control"></div> <roundcube:object name="composeBody" id="composebody" form="form" cols="70" rows="20" tabindex="9" /> </div> <div id="compose-attachments" class="rightcol"> @@ -171,6 +177,8 @@ </div> </div> +<div id="spellmenu" class="popupmenu"></div> + <roundcube:include file="/includes/footer.html" /> </body> diff --git a/skins/larry/ui.js b/skins/larry/ui.js index d6f945a6c..7f14c5ea9 100644 --- a/skins/larry/ui.js +++ b/skins/larry/ui.js @@ -24,6 +24,7 @@ function rcube_mail_ui() groupmenu: { above:1 }, mailboxmenu: { above:1 }, composeoptionsmenu: { editable:1, overlap:1 }, + spellmenu: { callback: spellmenu }, // toggle: #1486823, #1486930 'attachment-form': { editable:1, above:1, toggle:!bw.ie&&!bw.linux }, 'upload-form': { editable:1, toggle:!bw.ie&&!bw.linux } @@ -338,13 +339,13 @@ function rcube_mail_ui() bottom.css('height', (form.height() - bottom.position().top) + 'px'); - w = body.parent().width() - 6; - h = body.parent().height() - 36; + w = body.parent().width() - 5; + h = body.parent().height() - 16; body.width(w).height(h); if (window.tinyMCE && tinyMCE.get('composebody')) { - $('#composebody_tbl').width((w+10)+'px').height('').css('margin-top', '1px'); - $('#composebody_ifr').width((w+10)+'px').height((h-22)+'px'); + $('#composebody_tbl').width((w+8)+'px').height('').css('margin-top', '1px'); + $('#composebody_ifr').width((w+8)+'px').height((h-40)+'px'); } else { $('#googie_edit_layer').height(h+'px'); @@ -425,7 +426,7 @@ function rcube_mail_ui() $('select').css('visibility', show?'hidden':'inherit'); $('select', obj).css('visibility', 'inherit'); } - + return show; } @@ -554,6 +555,42 @@ function rcube_mail_ui() } + function spellmenu(show) + { + var link, li, + lang = rcmail.spellcheck_lang(), + menu = popups.spellmenu, + ul = $('ul', menu); + + if (!ul.length) { + ul = $('<ul class="toolbarmenu selectable">'); + + for (i in rcmail.env.spell_langs) { + li = $('<li>'); + link = $('<a href="#">').text(rcmail.env.spell_langs[i]) + .addClass('active').data('lang', i) + .click(function() { + rcmail.spellcheck_lang_set($(this).data('lang')); + }); + + link.appendTo(li); + li.appendTo(ul); + } + + ul.appendTo(menu); + } + + // select current language + $('li', ul).each(function() { + var el = $('a', this); + if (el.data('lang') == lang) + el.addClass('selected'); + else if (el.hasClass('selected')) + el.removeClass('selected'); + }); + } + + /** * */ |