beckley%qualcomm.com 44483a5805 Sources for the latest version of Penelope: 0.1a21.
git-svn-id: svn://10.0.0.236/trunk@236773 18797224-902f-48f8-a5cc-f745e15eee43
2007-09-27 18:06:45 +00:00

180 lines
5.5 KiB
JavaScript
Executable File

/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is the Mozilla Penelope project.
*
* The Initial Developer of the Original Code is
* QUALCOMM Incorporated.
* Portions created by QUALCOMM Incorporated are
* Copyright (C) 2007 QUALCOMM Incorporated. All Rights Reserved.
*
* Contributor(s):
* Mark Charlebois <mcharleb@qualcomm.com> original author
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/* components defined in this file */
var PenelopeCompose = {
onLoad: function()
{
// quit if this function has already been called
if (arguments.callee.done) return;
// flag this function so we don't do the same thing twice
arguments.callee.done = true;
// rely on startup from MsgComposeCommands.js
window.setTimeout("penelopeComposeLoaded()", 0);
}
};
function penelopeComposeLoaded()
{
var currentEditor = GetCurrentEditor();
currentEditor.returnInParagraphCreatesNewParagraph = true;
dump("set returnInParagraphCreatesNewParagraph\n");
}
//load event handler
window.addEventListener("DOMContentLoaded", function(e) { PenelopeCompose.onLoad(e); }, false);
// The following global variables are defined in MsgComposeCommands.js
// var sMsgComposeService;
// var gMsgCompose;
function increaseMsgPriority()
{
if (gMsgCompose)
{
var msgCompFields = gMsgCompose.compFields;
if (msgCompFields)
{
switch (msgCompFields.priority)
{
case "Highest":
break;
case "High":
msgCompFields.priority = "Highest";
break;
case "Low":
msgCompFields.priority = "Normal";
break;
case "Lowest":
msgCompFields.priority = "Low";
break;
case "Normal":
default:
msgCompFields.priority = "High";
break;
}
// keep priority toolbar button in synch with possible changes via the menu item
updatePriorityToolbarButton(msgCompFields.priority);
}
}
}
function decreaseMsgPriority()
{
if (gMsgCompose)
{
var msgCompFields = gMsgCompose.compFields;
if (msgCompFields)
{
switch (msgCompFields.priority)
{
case "Highest":
msgCompFields.priority = "High";
break;
case "High":
msgCompFields.priority = "Normal";
break;
case "Low":
msgCompFields.priority = "Lowest";
break;
case "Lowest":
break;
case "Normal":
default:
msgCompFields.priority = "Low";
break;
}
// keep priority toolbar button in synch with possible changes via the menu item
updatePriorityToolbarButton(msgCompFields.priority);
}
}
}
function removeFormatting()
{
var currentEditor = GetCurrentEditor();
var selcon = currentEditor.selectionController;
var nsel = selcon.getSelection(selcon.SELECTION_NORMAL);
if (nsel != "")
{
goDoCommand('cmd_copy');
goDoCommand('cmd_pasteNoFormatting');
}
}
function penelopeNextMisspelling()
{
//get the misspelling selection
var currentEditor = GetCurrentEditor();
var selcon = currentEditor.selectionController;
var sel = selcon.getSelection(selcon.SELECTION_SPELLCHECK);
var nsel=selcon.getSelection(selcon.SELECTION_NORMAL);
var before = -1;
for (var i=0; i<sel.rangeCount; i++)
{
var range = sel.getRangeAt(i);
var pos = range.comparePoint(nsel.focusNode, nsel.focusOffset)
if (pos != -1)
{
before = pos;
}
else if (before != -1 && pos == -1)
{
currentEditor.selection.removeAllRanges();
currentEditor.selection.addRange(range);
return;
}
}
if (sel.rangeCount)
{
// Next spelling error must be the first range
currentEditor.selection.removeAllRanges();
currentEditor.selection.addRange(sel.getRangeAt(0));
}
}