?? mail3panewindowcommands.js
字號:
# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-# ***** 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 Mozilla Communicator client code, released# March 31, 1998.## The Initial Developer of the Original Code is# Netscape Communications Corporation.# Portions created by the Initial Developer are Copyright (C) 1998-2000# the Initial Developer. All Rights Reserved.## Contributor(s):# Jan Varga <varga@nixcorp.com># H錵an Waara (hwaara@chello.se)## 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 *****var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);var gMessengerBundle = document.getElementById("bundle_messenger");// Controller object for folder panevar FolderPaneController ={ supportsCommand: function(command) { switch ( command ) { case "cmd_delete": case "button_delete": //case "cmd_selectAll": the folder pane currently only handles single selection case "cmd_cut": case "cmd_copy": case "cmd_paste": return true; default: return false; } }, isCommandEnabled: function(command) { if (IsFakeAccount()) return false; switch ( command ) { case "cmd_cut": case "cmd_copy": case "cmd_paste": return false; case "cmd_delete": case "button_delete": if ( command == "cmd_delete" ) goSetMenuValue(command, 'valueFolder'); var folderTree = GetFolderTree(); var startIndex = {}; var endIndex = {}; folderTree.view.selection.getRangeAt(0, startIndex, endIndex); if (startIndex.value >= 0) { var canDeleteThisFolder; var specialFolder = null; var isServer = null; var serverType = null; try { var folderResource = GetFolderResource(folderTree, startIndex.value); specialFolder = GetFolderAttribute(folderTree, folderResource, "SpecialFolder"); isServer = GetFolderAttribute(folderTree, folderResource, "IsServer"); serverType = GetFolderAttribute(folderTree, folderResource, "ServerType"); if (serverType == "nntp") { if ( command == "cmd_delete" ) { goSetMenuValue(command, 'valueNewsgroup'); goSetAccessKey(command, 'valueNewsgroupAccessKey'); } } } catch (ex) { //dump("specialFolder failure: " + ex + "\n"); } if (specialFolder == "Inbox" || specialFolder == "Trash" || specialFolder == "Drafts" || specialFolder == "Sent" || specialFolder == "Templates" || specialFolder == "Unsent Messages" || (specialFolder == "Junk" && !CanRenameDeleteJunkMail(GetSelectedFolderURI())) || isServer == "true") canDeleteThisFolder = false; else canDeleteThisFolder = true; return canDeleteThisFolder && isCommandEnabled(command); } else return false; default: return false; } }, doCommand: function(command) { // if the user invoked a key short cut then it is possible that we got here for a command which is // really disabled. kick out if the command should be disabled. if (!this.isCommandEnabled(command)) return; switch ( command ) { case "cmd_delete": case "button_delete": MsgDeleteFolder(); break; } }, onEvent: function(event) { }};// DefaultController object (handles commands when one of the trees does not have focus)var DefaultController ={ supportsCommand: function(command) { switch ( command ) { case "cmd_createFilterFromPopup": case "cmd_close": case "cmd_reply": case "button_reply": case "cmd_replySender": case "cmd_replyGroup": case "cmd_replyall": case "button_replyall": case "cmd_forward": case "button_forward": case "cmd_forwardInline": case "cmd_forwardAttachment": case "cmd_editAsNew": case "cmd_createFilterFromMenu": case "cmd_delete": case "button_delete": case "button_junk": case "cmd_shiftDelete": case "cmd_nextMsg": case "button_next": case "button_previous": case "cmd_nextUnreadMsg": case "cmd_nextFlaggedMsg": case "cmd_nextUnreadThread": case "cmd_previousMsg": case "cmd_previousUnreadMsg": case "cmd_previousFlaggedMsg": case "button_goForward": case "button_goBack": case "cmd_goForward": case "cmd_goBack": case "cmd_goStartPage": case "cmd_viewAllMsgs": case "cmd_viewUnreadMsgs": case "cmd_viewThreadsWithUnread": case "cmd_viewWatchedThreadsWithUnread": case "cmd_viewIgnoredThreads": case "cmd_undo": case "cmd_redo": case "cmd_expandAllThreads": case "cmd_collapseAllThreads": case "cmd_renameFolder": case "cmd_sendUnsentMsgs": case "cmd_openMessage": case "button_print": case "cmd_print": case "cmd_printpreview": case "cmd_printSetup": case "cmd_saveAsFile": case "cmd_saveAsTemplate": case "cmd_properties": case "cmd_viewPageSource": case "cmd_setFolderCharset": case "cmd_reload": case "button_getNewMessages": case "cmd_getNewMessages": case "cmd_getMsgsForAuthAccounts": case "cmd_getNextNMessages": case "cmd_find": case "cmd_findAgain": case "cmd_findPrevious": case "cmd_search": case "button_mark": case "cmd_tag": case "cmd_markAsRead": case "cmd_markAllRead": case "cmd_markThreadAsRead": case "cmd_markReadByDate": case "cmd_markAsFlagged": case "cmd_markAsJunk": case "cmd_markAsNotJunk": case "cmd_recalculateJunkScore": case "cmd_applyFilters": case "cmd_runJunkControls": case "cmd_deleteJunk": case "button_file": case "cmd_file": case "cmd_emptyTrash": case "cmd_compactFolder": case "cmd_settingsOffline": case "cmd_close": case "cmd_selectAll": case "cmd_selectThread": case "cmd_moveToFolderAgain": return true; case "cmd_downloadFlagged": case "cmd_downloadSelected": case "cmd_synchronizeOffline": return MailOfflineMgr.isOnline(); case "cmd_watchThread": case "cmd_killThread": return(isNewsURI(GetFirstSelectedMessage())); default: return false; } }, isCommandEnabled: function(command) { var enabled = new Object(); enabled.value = false; var checkStatus = new Object(); if (IsFakeAccount()) return false; switch ( command ) { case "cmd_delete": UpdateDeleteCommand(); // fall through if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.deleteMsg, enabled, checkStatus); return enabled.value; case "cmd_shiftDelete": if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.deleteNoTrash, enabled, checkStatus); return enabled.value; case "button_junk": UpdateJunkToolbarButton(); if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.junk, enabled, checkStatus); return enabled.value; case "cmd_killThread": return GetNumSelectedMessages() > 0; case "cmd_watchThread": if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.toggleThreadWatched, enabled, checkStatus); return enabled.value; case "cmd_createFilterFromPopup": case "cmd_createFilterFromMenu": var loadedFolder = GetLoadedMsgFolder(); if (!(loadedFolder && loadedFolder.server.canHaveFilters)) return false; // else fall thru case "cmd_saveAsFile": case "cmd_saveAsTemplate": if (GetNumSelectedMessages() > 1) return false; // else fall thru case "cmd_reply": case "button_reply": case "cmd_replySender": case "cmd_replyGroup": case "cmd_replyall": case "button_replyall": case "cmd_forward": case "button_forward": case "cmd_forwardInline": case "cmd_forwardAttachment": case "cmd_editAsNew": case "cmd_openMessage": case "button_print": case "cmd_print": case "cmd_viewPageSource": case "cmd_reload": if (GetNumSelectedMessages() > 0) { if (gDBView) { gDBView.getCommandStatus(nsMsgViewCommandType.cmdRequiringMsgBody, enabled, checkStatus); return enabled.value; } } return false; case "cmd_printpreview": if ( GetNumSelectedMessages() == 1 && gDBView) { gDBView.getCommandStatus(nsMsgViewCommandType.cmdRequiringMsgBody, enabled, checkStatus); return enabled.value; } return false; case "cmd_printSetup": return true; case "cmd_markAsFlagged": case "button_file": case "cmd_file": return (GetNumSelectedMessages() > 0 ); case "cmd_markAsJunk": case "cmd_markAsNotJunk": case "cmd_recalculateJunkScore": // can't do news on junk yet. return (GetNumSelectedMessages() > 0 && !isNewsURI(GetFirstSelectedMessage())); case "cmd_applyFilters": if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.applyFilters, enabled, checkStatus); return enabled.value; case "cmd_runJunkControls": if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.runJunkControls, enabled, checkStatus); return enabled.value; case "cmd_deleteJunk": if (gDBView) gDBView.getCommandStatus(nsMsgViewCommandType.deleteJunk, enabled, checkStatus); return enabled.value; case "button_mark": case "cmd_tag": case "cmd_markAsRead": case "cmd_markThreadAsRead": return GetNumSelectedMessages() > 0; case "button_previous": case "button_next": return IsViewNavigationItemEnabled(); case "cmd_nextMsg": case "cmd_nextUnreadMsg": case "cmd_nextUnreadThread": case "cmd_previousMsg": case "cmd_previousUnreadMsg": return IsViewNavigationItemEnabled(); case "button_goForward": case "button_goBack": case "cmd_goForward": case "cmd_goBack": if (gDBView) enabled.value = gDBView.navigateStatus((command == "cmd_goBack" || command == "button_goBack") ? nsMsgNavigationType.back : nsMsgNavigationType.forward); return enabled.value; case "cmd_goStartPage": return pref.getBoolPref("mailnews.start_page.enabled") && !IsMessagePaneCollapsed(); case "cmd_markAllRead": case "cmd_markReadByDate": return IsFolderSelected(); case "cmd_find": case "cmd_findAgain": case "cmd_findPrevious": return IsMessageDisplayedInMessagePane(); break; case "cmd_search": return IsCanSearchMessagesEnabled(); case "cmd_selectAll": return gDBView != null; // these are enabled on when we are in threaded mode case "cmd_selectThread": if (GetNumSelectedMessages() <= 0) return false; case "cmd_expandAllThreads": case "cmd_collapseAllThreads": if (!gDBView || !gDBView.supportsThreading) return false;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -