⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagewindow.js

📁 现在很火的邮件客户端软件thunderbird的源码
💻 JS
📖 第 1 页 / 共 3 页
字号:
    viewType = nsMsgViewType.eShowSearch;  }  // create a db view  CreateBareDBView(originalView, msgFolder, viewType, viewFlags, sortType, sortOrder);   var uri;  if (gCurrentMessageUri)    uri = gCurrentMessageUri;  else if (gCurrentFolderUri)    uri = gCurrentFolderUri;  else    uri = null;  SetUpToolbarButtons(uri);  // hook for extra toolbar items  var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  observerService.notifyObservers(window, "mail:setupToolbarItems", uri);}function extractMsgKeyFromURI(){  var msgKey = -1;  var msgHdr =   messenger.msgHdrFromURI(gCurrentMessageUri);  if (msgHdr)    msgKey = msgHdr.messageKey;  return msgKey;}function ShowMenus(){  var openMail3Pane_menuitem = document.getElementById('tasksMenuMail');  if (openMail3Pane_menuitem)    openMail3Pane_menuitem.removeAttribute("hidden");}// Toolbar buttons like quick search and mail views should be hidden for the message windowfunction HideToolbarButtons(){  var mailToolbar = document.getElementById('mail-bar2');  if (mailToolbar)  {    // the quick search box is part of the default toolbar set for the 3-pane and since it is shared code,    // the stand alone message window. We need to remove the search-container from the defaultset,    // remove the toolbar button itself from the DOM because we've already created it.    var defaultSet = mailToolbar.getAttribute("defaultset");    defaultSet = defaultSet.replace(/search-container/i, "");    mailToolbar.setAttribute('defaultset', defaultSet);        var searchContainer = document.getElementById('search-container');    if (searchContainer)      searchContainer.parentNode.removeChild(searchContainer);        // now hack the toolbar palette to remove all of the toolbar items which don't    // make sense for the stand alone message window. This prevents them from showing up in the     // customize dialog.    var toolbarPalette = document.getElementById('mail-toolbox').palette;    toolbarPalette.removeChild(toolbarPalette.getElementsByAttribute('id', 'search-container')[0]);    toolbarPalette.removeChild(toolbarPalette.getElementsByAttribute('id', 'mailviews-container')[0]);    toolbarPalette.removeChild(toolbarPalette.getElementsByAttribute('id', 'folder-location-container')[0]);      }}function HideMenus(){	var message_menuitem=document.getElementById('menu_showMessage');	if (message_menuitem)		message_menuitem.setAttribute("hidden", "true");	var showSearch_showMessage_Separator = document.getElementById('menu_showSearch_showMessage_Separator');	if (showSearch_showMessage_Separator)		showSearch_showMessage_Separator.setAttribute("hidden", "true");	var expandOrCollapseMenu = document.getElementById('menu_expandOrCollapse');	if (expandOrCollapseMenu)		expandOrCollapseMenu.setAttribute("hidden", "true");	var renameFolderMenu = document.getElementById('menu_renameFolder');	if (renameFolderMenu)		renameFolderMenu.setAttribute("hidden", "true");  var viewLayoutMenu = document.getElementById("menu_MessagePaneLayout");  if (viewLayoutMenu)    viewLayoutMenu.setAttribute("hidden", "true");  var viewFolderMenu = document.getElementById("menu_FolderViews");  if (viewFolderMenu)    viewFolderMenu.setAttribute("hidden", "true");	var viewMessagesMenu = document.getElementById('viewMessagesMenu');	if (viewMessagesMenu)		viewMessagesMenu.setAttribute("hidden", "true");	var viewMessageViewMenu = document.getElementById('viewMessageViewMenu');	if (viewMessageViewMenu)		viewMessageViewMenu.setAttribute("hidden", "true");	var viewMessagesMenuSeparator = document.getElementById('viewMessagesMenuSeparator');	if (viewMessagesMenuSeparator)		viewMessagesMenuSeparator.setAttribute("hidden", "true");	var openMessageMenu = document.getElementById('openMessageWindowMenuitem');	if (openMessageMenu)		openMessageMenu.setAttribute("hidden", "true");  var viewSortMenuSeparator = document.getElementById('viewSortMenuSeparator');  if (viewSortMenuSeparator)    viewSortMenuSeparator.setAttribute("hidden", "true");	var viewSortMenu = document.getElementById('viewSortMenu');	if (viewSortMenu)		viewSortMenu.setAttribute("hidden", "true");	var emptryTrashMenu = document.getElementById('menu_emptyTrash');	if (emptryTrashMenu)		emptryTrashMenu.setAttribute("hidden", "true");  var menuPropertiesSeparator = document.getElementById("editPropertiesSeparator");  if (menuPropertiesSeparator)    menuPropertiesSeparator.setAttribute("hidden", "true");	var menuProperties = document.getElementById('menu_properties');	if (menuProperties)		menuProperties.setAttribute("hidden", "true");  var favoriteFolder = document.getElementById('menu_favoriteFolder');  if (favoriteFolder)  {    favoriteFolder.disabled = true;    favoriteFolder.setAttribute("hidden", "true");  }	var compactFolderMenu = document.getElementById('menu_compactFolder');	if (compactFolderMenu)		compactFolderMenu.setAttribute("hidden", "true");	var trashSeparator = document.getElementById('trashMenuSeparator');	if (trashSeparator)		trashSeparator.setAttribute("hidden", "true");	var goStartPageSeparator = document.getElementById('goNextSeparator');	if (goStartPageSeparator)		goStartPageSeparator.hidden = true;  var goStartPage = document.getElementById('goStartPage');	if (goStartPage)   goStartPage.hidden = true;}function OnUnloadMessageWindow(){	// FIX ME - later we will be able to use onunload from the overlay	OnUnloadMsgHeaderPane();	OnMailWindowUnload();		gFindBar.uninitFindBar();}function CreateMessageWindowGlobals(){	gCompositeDataSource = Components.classes[compositeDataSourceContractID].createInstance();	gCompositeDataSource = gCompositeDataSource.QueryInterface(Components.interfaces.nsIRDFCompositeDataSource);}function InitializeDataSources(){  AddDataSources();  //Now add datasources to composite datasource  gCompositeDataSource.AddDataSource(accountManagerDataSource);  gCompositeDataSource.AddDataSource(folderDataSource);}function GetSelectedMsgFolders(){  var folderArray = new Array(1);  var msgFolder = GetLoadedMsgFolder();  if (msgFolder)    folderArray[0] = msgFolder;	  return folderArray;}function GetFirstSelectedMessage(){	return GetLoadedMessage();}function GetNumSelectedMessages(){	if (gCurrentMessageUri)		return 1;	else		return 0;}function GetSelectedMessages(){	var messageArray = new Array(1);	var message = GetLoadedMessage();	if (message)		messageArray[0] = message;		return messageArray;}function GetSelectedIndices(dbView){  try {    var indicesArray = {};     var length = {};    dbView.getIndicesForSelection(indicesArray,length);    return indicesArray.value;  }  catch (ex) {    dump("ex = " + ex + "\n");    return null;  }}function GetLoadedMsgFolder(){  return (gCurrentFolderUri)    ? RDF.GetResource(gCurrentFolderUri).QueryInterface(Components.interfaces.nsIMsgFolder)    : null;}function GetSelectedFolderURI(){  return gCurrentFolderUri;}function GetLoadedMessage(){  return gCurrentMessageUri;}//Clear everything related to the current message. called after load start page.function ClearMessageSelection(){  gCurrentMessageUri = null;  gCurrentFolderUri = null;  UpdateMailToolbar("clear msg, std alone window");}function GetCompositeDataSource(command){  return gCompositeDataSource;	}function SetNextMessageAfterDelete(){  gNextMessageViewIndexAfterDelete = gDBView.msgToSelectAfterDelete;}function SelectFolder(folderUri){  if (folderUri == gCurrentFolderUri)    return;  var msgfolder = RDF.GetResource(folderUri).QueryInterface(Components.interfaces.nsIMsgFolder);  if (!msgfolder || msgfolder.isServer)    return;  // close old folder view  var dbview = GetDBView();    if (dbview)    dbview.close();   gCurrentFolderToRerootForStandAlone = folderUri;  if (msgfolder.manyHeadersToDownload)  {    gRerootOnFolderLoadForStandAlone = true;    try    {      msgfolder.startFolderLoading();      msgfolder.updateFolder(msgWindow);    }    catch(ex)    {      dump("Error loading with many headers to download: " + ex + "\n");    }  }  else  {    RerootFolderForStandAlone(folderUri);    gRerootOnFolderLoadForStandAlone = false;    msgfolder.startFolderLoading();    //Need to do this after rerooting folder.  Otherwise possibility of receiving folder loaded    //notification before folder has actually changed.    msgfolder.updateFolder(msgWindow);  }    }function RerootFolderForStandAlone(uri){  gCurrentFolderUri = uri;  // create new folder view  CreateView(null);    // now do the work to load the appropriate message  if (gNextMessageAfterLoad) {    var type = gNextMessageAfterLoad;    gNextMessageAfterLoad = null;    LoadMessageByNavigationType(type);  }    SetUpToolbarButtons(gCurrentFolderUri);    UpdateMailToolbar("reroot folder in stand alone window");    // hook for extra toolbar items  var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  observerService.notifyObservers(window, "mail:setupToolbarItems", uri);} function GetMsgHdrFromUri(messageUri){  return messenger.msgHdrFromURI(messageUri);}function SelectMessage(messageUri){  var msgHdr = GetMsgHdrFromUri(messageUri);  LoadMessageByMsgKey(msgHdr.messageKey);} function ReloadMessage(){  gDBView.reloadMessage();}function MsgDeleteMessageFromMessageWindow(reallyDelete, fromToolbar){  // if from the toolbar, return right away if this is a news message  // only allow cancel from the menu:  "Edit | Cancel / Delete Message"  if (fromToolbar)  {    if (isNewsURI(gCurrentFolderUri))     {        // if news, don't delete        return;    }  }    // before we delete   SetNextMessageAfterDelete();  if (reallyDelete)      gDBView.doCommand(nsMsgViewCommandType.deleteNoTrash);  else      gDBView.doCommand(nsMsgViewCommandType.deleteMsg);}// MessageWindowController object (handles commands when one of the trees does not have focus)var MessageWindowController ={   supportsCommand: function(command)  {    switch ( command )    {      case "cmd_delete":      case "cmd_undo":      case "cmd_redo":      case "cmd_killThread":      case "cmd_watchThread":      case "button_delete":      case "button_junk":      case "cmd_shiftDelete":      case "cmd_saveAsFile":      case "cmd_saveAsTemplate":      case "cmd_viewPageSource":      case "cmd_getMsgsForAuthAccounts":      case "cmd_tag":      case "button_mark":      case "cmd_markAsRead":      case "cmd_markAllRead":      case "cmd_markThreadAsRead":      case "cmd_markReadByDate":      case "cmd_markAsFlagged":      case "button_file":      case "cmd_file":      case "cmd_markAsJunk":      case "cmd_markAsNotJunk":      case "cmd_recalculateJunkScore":      case "cmd_applyFilters":      case "cmd_runJunkControls":      case "cmd_deleteJunk":      case "cmd_nextMsg":      case "button_next":      case "button_previous":      case "cmd_nextUnreadMsg":      case "cmd_nextFlaggedMsg":

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -