in suite/mailnews/content/messageWindow.js [625:756]
isCommandEnabled: function(command)
{
var loadedFolder;
var enabled = new Object();
enabled.value = false;
var checkStatus = new Object();
switch (command)
{
case "cmd_createFilterFromPopup":
case "cmd_createFilterFromMenu":
loadedFolder = GetLoadedMsgFolder();
return (loadedFolder && loadedFolder.server.canHaveFilters);
case "cmd_delete":
UpdateDeleteCommand();
// fall through
case "button_delete":
if (command == "button_delete")
UpdateDeleteToolbarButton(false);
// fall through
case "cmd_shiftDelete":
case "button_shiftDelete":
loadedFolder = GetLoadedMsgFolder();
return gCurrentMessageUri && loadedFolder && loadedFolder.canDeleteMessages;
case "button_junk":
UpdateJunkToolbarButton();
// fall through
case "cmd_markAsJunk":
case "cmd_markAsNotJunk":
if (gDBView)
gDBView.getCommandStatus(nsMsgViewCommandType.junk, enabled, checkStatus);
return enabled.value;
case "cmd_recalculateJunkScore":
if (GetNumSelectedMessages() > 0 && gDBView)
gDBView.getCommandStatus(nsMsgViewCommandType.runJunkControls, enabled, checkStatus);
return enabled.value;
case "cmd_reply":
case "button_reply":
case "cmd_replyList":
case "cmd_replyGroup":
case "cmd_replySender":
case "cmd_replyall":
case "button_replyall":
case "cmd_replySenderAndGroup":
case "cmd_replyAllRecipients":
case "cmd_forward":
case "button_forward":
case "cmd_forwardInline":
case "cmd_forwardAttachment":
case "cmd_editAsNew":
case "cmd_editDraftMsg":
case "cmd_newMsgFromTemplate":
case "cmd_editTemplateMsg":
case "cmd_print":
case "cmd_printpreview":
case "button_print":
case "cmd_saveAsFile":
return true;
case "cmd_saveAsTemplate":
var target = getMessageBrowser().contentPrincipal.URI.scheme;
return target != "news";
case "cmd_viewPageSource":
case "cmd_reload":
case "cmd_find":
case "button_mark":
case "cmd_markAllRead":
case "cmd_markThreadAsRead":
case "cmd_markReadByDate":
case "cmd_viewAllHeader":
case "cmd_viewNormalHeader":
return true;
case "cmd_markAsRead":
return CanMarkMsgAsRead(true);
case "cmd_markAsUnread":
return CanMarkMsgAsRead(false);
case "cmd_markAsFlagged":
case "button_file":
return (gCurrentMessageUri != null);
case "cmd_markAsShowRemote":
return (GetNumSelectedMessages() > 0 && checkMsgHdrPropertyIsNot("remoteContentPolicy", kAllowRemoteContent));
case "cmd_markAsNotPhish":
return (GetNumSelectedMessages() > 0 && checkMsgHdrPropertyIsNot("notAPhishMessage", kNotAPhishMessage));
case "cmd_printSetup":
return true;
case "cmd_getNewMessages":
case "button_getNewMessages":
case "cmd_getMsgsForAuthAccounts":
return IsGetNewMessagesEnabled();
case "cmd_getNextNMessages":
return IsGetNextNMessagesEnabled();
case "cmd_downloadFlagged":
case "cmd_downloadSelected":
case "cmd_synchronizeOffline":
return !Services.io.offline;
case "cmd_settingsOffline":
return IsAccountOfflineEnabled();
case "cmd_nextMsg":
case "button_next":
case "cmd_nextUnreadMsg":
case "cmd_nextFlaggedMsg":
case "cmd_nextUnreadThread":
case "cmd_previousMsg":
case "cmd_previousUnreadMsg":
case "cmd_previousFlaggedMsg":
case "cmd_applyFiltersToSelection":
return true;
case "cmd_findNext":
case "cmd_findPrev":
return MsgCanFindAgain();
case "cmd_goBack":
case "button_goBack":
return gDBView && gDBView.navigateStatus(nsMsgNavigationType.back);
case "cmd_goForward":
case "button_goForward":
return gDBView && gDBView.navigateStatus(nsMsgNavigationType.forward);
case "button_search":
case "cmd_search":
loadedFolder = GetLoadedMsgFolder();
return (loadedFolder && loadedFolder.server.canSearchMessages);
case "cmd_stop":
return true;
case "cmd_undo":
case "cmd_redo":
return SetupUndoRedoCommand(command);
case "cmd_applyFilters":
case "cmd_runJunkControls":
case "cmd_deleteJunk":
return false;
default:
return false;
}
},