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

📄 mailwindow.js

📁 现在很火的邮件客户端软件thunderbird的源码
💻 JS
📖 第 1 页 / 共 2 页
字号:
      throw Components.results.NS_NOINTERFACE;    },  // nsIMsgStatusFeedback implementation.  showStatusString : function(statusText)    {      this.ensureStatusFields();      if ( !statusText.length )        statusText = this.myDefaultStatus;      else        this.myDefaultStatus = "";      this.statusTextFld.label = statusText;  },  _startMeteors : function()    {      this.ensureStatusFields();      this.meteorsSpinning = true;      this.startTimeoutID = null;      if (!this.progressMeterVisible)      {        this.progressMeterContainer.removeAttribute('collapsed');         this.progressMeterVisible = true;      }      // Turn progress meter on.      this.statusBar.setAttribute("mode","undetermined");      // start the throbber      if (this.throbber)        this.throbber.setAttribute("busy", true);      //turn on stop button and menu      if (this.stopCmd)    this.stopCmd.removeAttribute("disabled");    },  startMeteors : function()    {      this.pendingStartRequests++;      // if we don't already have a start meteor timeout pending      // and the meteors aren't spinning, then kick off a start      if (!this.startTimeoutID && !this.meteorsSpinning && window.MsgStatusFeedback)        this.startTimeoutID = setTimeout('window.MsgStatusFeedback._startMeteors();', 500);      // since we are going to start up the throbber no sense in processing      // a stop timeout...      if (this.stopTimeoutID)      {        clearTimeout(this.stopTimeoutID);        this.stopTimeoutID = null;      }  },   _stopMeteors : function()    {      if(gTimelineEnabled){        gTimelineService.stopTimer("FolderLoading");        gTimelineService.markTimer("FolderLoading");        gTimelineService.resetTimer("FolderLoading");      }      this.ensureStatusFields();      this.showStatusString(defaultStatus);            // stop the throbber      if (this.throbber)        this.throbber.setAttribute("busy", false);      // Turn progress meter off.      this.statusBar.setAttribute("mode","normal");      this.statusBar.value = 0;  // be sure to clear the progress bar      this.statusBar.label = "";      if (this.progressMeterVisible)      {        this.progressMeterContainer.collapsed = true;        this.progressMeterVisible = false;      }      if (this.stopCmd)        this.stopCmd.setAttribute("disabled", "true");      this.meteorsSpinning = false;      this.stopTimeoutID = null;    },   stopMeteors : function()    {      if (this.pendingStartRequests > 0)        this.pendingStartRequests--;      // if we are going to be starting the meteors, cancel the start      if (this.pendingStartRequests == 0 && this.startTimeoutID)      {        clearTimeout(this.startTimeoutID);        this.startTimeoutID = null;      }      // if we have no more pending starts and we don't have a stop timeout already in progress      // AND the meteors are currently running then fire a stop timeout to shut them down.      if (this.pendingStartRequests == 0 && !this.stopTimeoutID)      {        if (this.meteorsSpinning && window.MsgStatusFeedback)          this.stopTimeoutID = setTimeout('window.MsgStatusFeedback._stopMeteors();', 500);      }  },  showProgress : function(percentage)    {      this.ensureStatusFields();      if (percentage >= 0)      {        this.statusBar.setAttribute("mode", "normal");        this.statusBar.value = percentage;        this.statusBar.label = Math.round(percentage) + "%";      }    },  closeWindow : function(percent)  {  }}function nsMsgWindowCommands(){}nsMsgWindowCommands.prototype ={  QueryInterface : function(iid)  {    if (iid.equals(Components.interfaces.nsIMsgWindowCommands) ||        iid.equals(Components.interfaces.nsISupports))      return this;    throw Components.results.NS_NOINTERFACE;  },  SelectFolder: function(folderUri)  {    SelectFolder(folderUri);  },  SelectMessage: function(messageUri)  {    SelectMessage(messageUri);  }}function nsMessagePaneController(){}nsMessagePaneController.prototype ={  QueryInterface : function(iid)  {    if (iid.equals(Components.interfaces.nsIMsgMessagePaneController) ||        iid.equals(Components.interfaces.nsISupports))      return this;    throw Components.results.NS_NOINTERFACE;  },  clearMsgPane: function()  {    if (gDBView)      setTitleFromFolder(gDBView.msgFolder,null);    else      setTitleFromFolder(null,null);    ClearMessagePane();  }}function StopUrls(){  msgWindow.StopUrls();}function loadStartPage() {  try   {    gMessageNotificationBar.clearMsgNotifications();        var startpageenabled = pref.getBoolPref("mailnews.start_page.enabled");    if (startpageenabled)     {            var startpage = pref.getComplexValue("mailnews.start_page.url", Components.interfaces.nsIPrefLocalizedString).data;      // Some users have our old default start page      // showing up as a user pref instead of a default pref. If this is the case, clear the user pref by hand       // and re-read it again so we get the correct default start page.      if (startpage == "chrome://messenger/locale/start.html")      {        pref.clearUserPref("mailnews.start_page.url");        startpage = pref.getComplexValue("mailnews.start_page.url", Components.interfaces.nsIPrefLocalizedString).data;      }      if (startpage != "")       {        GetMessagePaneFrame().location.href = startpage;        //dump("start message pane with: " + startpage + "\n");        ClearMessageSelection();      }    }  }  catch (ex)   {    dump("Error loading start page.\n");    return;  }}// When the ThreadPane is hidden via the displayDeck, we should collapse the// elements that are only meaningful to the thread pane. When AccountCentral is// shown via the displayDeck, we need to switch the displayDeck to show the// accountCentralBox, and load the iframe in the AccountCentral box with// corresponding page.function ShowAccountCentral(){  try  {    document.getElementById("displayDeck").selectedPanel = accountCentralBox;    var acctCentralPage = pref.getComplexValue("mailnews.account_central_page.url",                                               Components.interfaces.nsIPrefLocalizedString).data;    window.frames["accountCentralPane"].location.href = acctCentralPage;  }  catch (ex)  {    dump("Error loading AccountCentral page -> " + ex + "\n");  }}function ShowingAccountCentral(){  if (!IsFolderPaneCollapsed())    GetFolderTree().focus();          gAccountCentralLoaded = true;}function HidingAccountCentral(){  gAccountCentralLoaded = false;}function ShowThreadPane(){  document.getElementById("displayDeck").selectedPanel =     document.getElementById("threadPaneBox");}function ShowingThreadPane(){  var threadPaneSplitter = document.getElementById("threadpane-splitter");  threadPaneSplitter.collapsed = false;  GetMessagePane().collapsed = (threadPaneSplitter.getAttribute("state") == "collapsed");  document.getElementById("key_toggleMessagePane").removeAttribute("disabled");}function HidingThreadPane(){  ClearThreadPane();  GetUnreadCountElement().hidden = true;  GetTotalCountElement().hidden = true;  GetMessagePane().collapsed = true;  document.getElementById("threadpane-splitter").collapsed = true;  document.getElementById("key_toggleMessagePane").setAttribute("disabled", "true");}// the find toolbar needs a method called getBrowserfunction getBrowser() {  return document.getElementById("messagepane");}function ObserveDisplayDeckChange(event){  var selectedPanel = document.getElementById("displayDeck").selectedPanel;  var nowSelected = selectedPanel ? selectedPanel.id : "";  if (nowSelected == "threadPaneBox")    ShowingThreadPane();  else    HidingThreadPane();    if (nowSelected == "accountCentralBox")    ShowingAccountCentral();  else    HidingAccountCentral();}// Given the server, open the twisty and the set the selection// on inbox of that server. // prompt if offline.function OpenInboxForServer(server){  try {    ShowThreadPane();    var inboxFolder = GetInboxFolder(server);    SelectFolder(inboxFolder.URI);    if (MailOfflineMgr.isOnline() || MailOfflineMgr.getNewMail())	{      if (server.type != "imap")        GetMessagesForInboxOnServer(server);    }  }  catch (ex) {      dump("Error opening inbox for server -> " + ex + "\n");      return;  }}function GetSearchSession(){  if (("gSearchSession" in top) && gSearchSession)    return gSearchSession;  else    return null;}

⌨️ 快捷键说明

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