亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commandglue.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 3 頁
字號:
# -*- Mode: C++; 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-1999# the Initial Developer. All Rights Reserved.## Contributor(s):#   Jan Varga <varga@nixcorp.com>#   H錵an Waara (hwaara@chello.se)#   David Bienvenu (bienvenu@nventure.com)## 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 *****/* * Command-specific code. This stuff should be called by the widgets *///NOTE: gMessengerBundle and gBrandBundle must be defined and set//      for this Overlay to work properlyvar gFolderJustSwitched = false;var gBeforeFolderLoadTime;var gRDFNamespace = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";var gVirtualFolderTerms;var gXFVirtualFolderTerms;var gCurrentVirtualFolderUri;var gPrevFolderFlags;var gPrevSelectedFolder;var gMsgFolderSelected;/* keep in sync with nsMsgFolderFlags.h */var MSG_FOLDER_FLAG_VIRTUAL = 0x0020;var MSG_FOLDER_FLAG_TRASH = 0x0100;var MSG_FOLDER_FLAG_SENTMAIL = 0x0200;var MSG_FOLDER_FLAG_DRAFTS = 0x0400;var MSG_FOLDER_FLAG_QUEUE = 0x0800;var MSG_FOLDER_FLAG_INBOX = 0x1000;var MSG_FOLDER_FLAG_TEMPLATES = 0x400000;var MSG_FOLDER_FLAG_JUNK = 0x40000000;var MSG_FOLDER_FLAG_FAVORITE = 0x80000000;function GetMsgFolderFromResource(folderResource){  if (!folderResource)     return null;  var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);  if (msgFolder && (msgFolder.parent || msgFolder.isServer))    return msgFolder;  else    return null;}function GetServer(uri){    if (!uri) return null;    try {        var folder = GetMsgFolderFromUri(uri, true);        return folder.server;    }    catch (ex) {        dump("GetServer("+uri+") failed, ex="+ex+"\n");    }    return null;}function setTitleFromFolder(msgfolder, subject){    var wintype = document.firstChild.getAttribute('windowtype');    var title;     // If we are showing the mail:3pane. Never include the subject of the selected    // message in the title. ("Inbox for greenlantern@mozilla.org - Mozilla Thunderbird")    // If we are a stand alone message window, we should show the Subject    // and the product but not the account name: "Re: New window Title - Mozilla Thunderbird"    if (wintype == "mail:messageWindow")        title = subject ? subject : "";    else if (msgfolder)    {      title = msgfolder.prettyName;      if (!msgfolder.isServer)      {        var server = msgfolder.server;        var middle;        var end;        if (server.type == "nntp") {            // <folder> on <hostname>            middle = gMessengerBundle.getString("titleNewsPreHost");            end = server.hostName;        } else {            var identity;            try {                var identities = accountManager.GetIdentitiesForServer(server);                identity = identities.QueryElementAt(0, Components.interfaces.nsIMsgIdentity);                // <folder> for <email>                middle = gMessengerBundle.getString("titleMailPreHost");                end = identity.email;          } catch (ex) {}            }        if (middle) title += " " + middle;        if (end) title += " " + end;    }    }#ifndef XP_MACOSX    title += " - " + gBrandBundle.getString("brandShortName");#endif    document.title = title;}function UpdateMailToolbar(caller){  //dump("XXX update mail-toolbar " + caller + "\n");  document.commandDispatcher.updateCommands('mail-toolbar');  // hook for extra toolbar items  var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  observerService.notifyObservers(window, "mail:updateToolbarItems", null);}function ChangeFolderByURI(uri, viewType, viewFlags, sortType, sortOrder){  viewDebug("In ChangeFolderByURI uri = " + uri + " sortType = " + sortType + "\n");  if (uri == gCurrentLoadingFolderURI)    return;  // hook for extra toolbar items  var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  observerService.notifyObservers(window, "mail:setupToolbarItems", uri);  var resource = RDF.GetResource(uri);  var msgfolder =      resource.QueryInterface(Components.interfaces.nsIMsgFolder);  try {      setTitleFromFolder(msgfolder, null);  } catch (ex) {      dump("error setting title: " + ex + "\n");  }  //if it's a server, clear the threadpane and don't bother trying to load.  if(msgfolder.isServer) {    msgWindow.openFolder = null;    ClearThreadPane();    UpdateStatusQuota(null);    // Load AccountCentral page here.    ShowAccountCentral();    return;  }  else  {    if (msgfolder.server.displayStartupPage)    {      gDisplayStartupPage = true;      msgfolder.server.displayStartupPage = false;    }  }  // If the user clicks on msgfolder, time to display thread pane and message pane.  ShowThreadPane();  gCurrentLoadingFolderURI = uri;  gNextMessageAfterDelete = null; // forget what message to select, if any  gCurrentFolderToReroot = uri;  gCurrentLoadingFolderViewFlags = viewFlags;  gCurrentLoadingFolderViewType = viewType;  gCurrentLoadingFolderSortType = sortType;  gCurrentLoadingFolderSortOrder = sortOrder;  var showMessagesAfterLoading;  try {    var server = msgfolder.server;    if (gPrefBranch.getBoolPref("mail.password_protect_local_cache"))    {      showMessagesAfterLoading = server.passwordPromptRequired;      // servers w/o passwords (like local mail) will always be non-authenticated.      // So we need to use the account manager for that case.    }    else if (server.redirectorType) {      var prefString = server.type + "." + server.redirectorType + ".showMessagesAfterLoading";      showMessagesAfterLoading = gPrefBranch.getBoolPref(prefString);    }    else      showMessagesAfterLoading = false;  }  catch (ex) {    showMessagesAfterLoading = false;  }  if (viewType != nsMsgViewType.eShowVirtualFolderResults && (msgfolder.manyHeadersToDownload || showMessagesAfterLoading))  {    gRerootOnFolderLoad = true;    try    {      ClearThreadPane();      SetBusyCursor(window, true);      msgfolder.startFolderLoading();      msgfolder.updateFolder(msgWindow);    }    catch(ex)    {      SetBusyCursor(window, false);      dump("Error loading with many headers to download: " + ex + "\n");    }  }  else  {    if (viewType != nsMsgViewType.eShowVirtualFolderResults)      SetBusyCursor(window, true);    RerootFolder(uri, msgfolder, viewType, viewFlags, sortType, sortOrder);    gRerootOnFolderLoad = false;    msgfolder.startFolderLoading();    //Need to do this after rerooting folder.  Otherwise possibility of receiving folder loaded    //notification before folder has actually changed.    if (viewType != nsMsgViewType.eShowVirtualFolderResults)      msgfolder.updateFolder(msgWindow);  }}function isNewsURI(uri){    if (!uri || uri[0] != 'n') {        return false;    }    else {        return ((uri.substring(0,6) == "news:/") || (uri.substring(0,14) == "news-message:/"));    }}function RerootFolder(uri, newFolder, viewType, viewFlags, sortType, sortOrder){  viewDebug("In reroot folder, sortType = " +  sortType + "viewType = " + viewType + "\n");  if (sortType == 0)  {    try    {      var msgdb = newFolder.getMsgDatabase(msgWindow);      var dbFolderInfo = msgdb.dBFolderInfo;      sortType = dbFolderInfo.sortType;      sortOrder = dbFolderInfo.sortOrder;      viewFlags = dbFolderInfo.viewFlags;      viewType = dbFolderInfo.viewType;      dbFolderInfo = null;    }    catch(ex)    {      dump("invalid db in RerootFolder: " + ex + "\n");    }  }  // workaround for #39655  gFolderJustSwitched = true;  ClearThreadPaneSelection();  //Clear the new messages of the old folder  var oldFolder = gPrevSelectedFolder;  if (oldFolder) {    oldFolder.clearNewMessages();    oldFolder.hasNewMessages = false;  }  //Set the window's new open folder.  msgWindow.openFolder = newFolder;  //the new folder being selected should have its biff state get cleared.  if(newFolder)  {    newFolder.biffState =          Components.interfaces.nsIMsgFolder.nsMsgBiffState_NoMail;  }  //Clear out the thread pane so that we can sort it with the new sort id without taking any time.  // folder.setAttribute('ref', "");  // null this out, so we don't try sort.  if (gDBView) {    gDBView.close();    gDBView = null;  }  // cancel the pending mark as read timer  ClearPendingReadTimer();  // if this is the drafts, sent, or send later folder,  // we show "Recipient" instead of "Author"  SetSentFolderColumns(IsSpecialFolder(newFolder, MSG_FOLDER_FLAG_SENTMAIL | MSG_FOLDER_FLAG_DRAFTS | MSG_FOLDER_FLAG_QUEUE, true));  ShowLocationColumn(viewType == nsMsgViewType.eShowVirtualFolderResults);  // now create the db view, which will sort it.  CreateDBView(newFolder, viewType, viewFlags, sortType, sortOrder);  if (oldFolder)  {     /*we don't null out the db reference for inbox because inbox is like the "main" folder       and performance outweighs footprint */    if (!IsSpecialFolder(oldFolder, MSG_FOLDER_FLAG_INBOX, false))    {      if (oldFolder.URI != newFolder.URI)        oldFolder.setMsgDatabase(null);    }  }  // that should have initialized gDBView, now re-root the thread pane  RerootThreadPane();  SetUpToolbarButtons(uri);  UpdateFolderLocationPicker(gMsgFolderSelected);  UpdateStatusMessageCounts(gMsgFolderSelected);    // hook for extra toolbar items  var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  observerService.notifyObservers(window, "mail:updateToolbarItems", null);  // this is to kick off cross-folder searches for virtual folders.  if (gSearchSession && !gVirtualFolderTerms) // another var might be better...  {    viewDebug("doing a xf folder search in rerootFolder\n");    ViewChangeByFolder(newFolder);    gPreQuickSearchView = null; // don't remember the cross folder search    ScrollToMessageAfterFolderLoad(newFolder);  }}function SwitchView(command){  // when switching thread views, we might be coming out of quick search  // or a message view.  // first set view picker to all  ViewChangeByValue(kViewItemAll);  // clear the QS text, if we need to  ClearQSIfNecessary();    // now switch views  var oldSortType = gDBView ? gDBView.sortType : nsMsgViewSortType.byThread;  var oldSortOrder = gDBView ? gDBView.sortOrder : nsMsgViewSortOrder.ascending;  var viewFlags = gDBView ? gDBView.viewFlags : gCurViewFlags;  // close existing view.  if (gDBView) {    gDBView.close();    gDBView = null;   }  switch(command)  {    case "cmd_viewUnreadMsgs":      viewFlags = viewFlags | nsMsgViewFlagsType.kUnreadOnly;      CreateDBView(msgWindow.openFolder, nsMsgViewType.eShowAllThreads, viewFlags,            oldSortType, oldSortOrder );    break;    case "cmd_viewAllMsgs":      viewFlags = viewFlags & ~nsMsgViewFlagsType.kUnreadOnly;      CreateDBView(msgWindow.openFolder, nsMsgViewType.eShowAllThreads, viewFlags,            oldSortType, oldSortOrder);    break;    case "cmd_viewThreadsWithUnread":      CreateDBView(msgWindow.openFolder, nsMsgViewType.eShowThreadsWithUnread, nsMsgViewFlagsType.kThreadedDisplay,            nsMsgViewSortType.byThread, oldSortOrder);    break;    case "cmd_viewWatchedThreadsWithUnread":      CreateDBView(msgWindow.openFolder, nsMsgViewType.eShowWatchedThreadsWithUnread, nsMsgViewFlagsType.kThreadedDisplay,            nsMsgViewSortType.byThread, oldSortOrder);   break;    case "cmd_viewIgnoredThreads":      if (viewFlags & nsMsgViewFlagsType.kShowIgnored)        viewFlags = viewFlags & ~nsMsgViewFlagsType.kShowIgnored;      else        viewFlags = viewFlags | nsMsgViewFlagsType.kShowIgnored;      CreateDBView(msgWindow.openFolder, nsMsgViewType.eShowAllThreads, viewFlags,            oldSortType, oldSortOrder);    break;  }  RerootThreadPane();}function SetSentFolderColumns(isSentFolder)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级在线视频| 亚洲免费av网站| 51精品视频一区二区三区| 日本高清不卡aⅴ免费网站| 99re这里只有精品首页| eeuss鲁一区二区三区| a在线播放不卡| 色综合色综合色综合| 91亚洲精品久久久蜜桃网站| av午夜精品一区二区三区| 91女厕偷拍女厕偷拍高清| 91黄色免费看| 欧美电影影音先锋| 欧美一区二区三区精品| 日韩美女在线视频 | 中文字幕欧美日本乱码一线二线 | 久久精品国产免费看久久精品| 丝袜美腿亚洲一区二区图片| 五月天亚洲精品| 美女视频黄 久久| 精品在线免费视频| 国产成a人无v码亚洲福利| 成人福利电影精品一区二区在线观看| av资源站一区| 欧美性感一类影片在线播放| 91精品国产91综合久久蜜臀| 精品久久一区二区三区| 中文一区二区完整视频在线观看 | 日韩国产高清影视| 激情综合色丁香一区二区| 国产精品77777| eeuss鲁一区二区三区| 欧美在线free| 精品区一区二区| 136国产福利精品导航| 亚洲第一在线综合网站| 美女脱光内衣内裤视频久久影院| 国产麻豆欧美日韩一区| 91美女视频网站| 日韩一区二区三区在线| 中文字幕av一区二区三区免费看| 亚洲综合一区在线| 精品一区二区三区在线视频| 成人免费看的视频| 69久久99精品久久久久婷婷| 国产视频一区二区三区在线观看 | 国产福利精品导航| 日本道在线观看一区二区| 日韩欧美综合在线| 成人欧美一区二区三区| 全国精品久久少妇| 成人免费毛片片v| 欧美一区二区三区视频免费播放| 亚洲国产岛国毛片在线| 奇米四色…亚洲| 91网站视频在线观看| 精品久久久久久最新网址| 亚洲精品乱码久久久久久久久 | 日韩av网站在线观看| 成人sese在线| 日韩欧美一区二区久久婷婷| 一区二区三区在线观看国产 | 久久亚洲精华国产精华液| 樱花草国产18久久久久| 国产精品69久久久久水密桃| 欧美精品久久久久久久多人混战 | 久久国产精品露脸对白| 色视频成人在线观看免| 国产三级三级三级精品8ⅰ区| 亚洲成人av资源| 99精品在线观看视频| 久久精品夜色噜噜亚洲a∨ | 欧美午夜视频网站| 国产精品大尺度| 国产成人免费视频一区| 日韩欧美成人激情| 五月激情丁香一区二区三区| 91麻豆福利精品推荐| 中文字幕欧美国产| 国产乱理伦片在线观看夜一区| 91麻豆精品国产91久久久使用方法| 亚洲欧洲国产日本综合| 国产福利精品一区二区| 久久久影院官网| 极品少妇xxxx偷拍精品少妇| 日韩一区二区免费在线观看| 亚洲777理论| 欧美日韩综合色| 一区二区三区 在线观看视频| 不卡的av中国片| 中文字幕欧美日韩一区| 成人午夜碰碰视频| 国产亚洲污的网站| 国产精品自拍毛片| 久久午夜羞羞影院免费观看| 精品亚洲porn| 精品少妇一区二区| 国产一区二区三区四区五区美女| 日韩精品一区二区三区四区视频| 日本伊人色综合网| 91精品国产欧美日韩| 日本特黄久久久高潮| 777色狠狠一区二区三区| 日韩中文字幕av电影| 欧美日韩成人一区二区| 三级成人在线视频| 欧美一区二区精品在线| 毛片一区二区三区| xvideos.蜜桃一区二区| 国产成人啪午夜精品网站男同| 国产日本欧美一区二区| 99精品视频免费在线观看| 尤物在线观看一区| 欧美日本在线一区| 久久国产精品一区二区| 国产情人综合久久777777| 99re热视频精品| 亚洲综合男人的天堂| 欧美裸体一区二区三区| 九九**精品视频免费播放| 国产视频一区二区在线观看| 99精品偷自拍| 丝袜美腿成人在线| 欧美成人一区二区三区片免费| 国产在线观看一区二区| 国产精品美女久久久久久久久久久| 不卡的电视剧免费网站有什么| 一卡二卡三卡日韩欧美| 6080亚洲精品一区二区| 国产乱子伦一区二区三区国色天香| 国产精品卡一卡二| 欧美午夜宅男影院| 久久www免费人成看片高清| 欧美国产日本韩| 欧美中文一区二区三区| 久久精品久久99精品久久| 国产精品免费视频观看| 欧美视频你懂的| 精品无人区卡一卡二卡三乱码免费卡 | 色婷婷av一区二区三区大白胸| 天堂影院一区二区| 国产午夜亚洲精品羞羞网站| 91碰在线视频| 久草在线在线精品观看| 中文字幕亚洲区| 91精品综合久久久久久| 国产成人99久久亚洲综合精品| 一区二区三区四区中文字幕| 日韩一级片网站| 91一区二区在线| 精东粉嫩av免费一区二区三区| 亚洲欧美成人一区二区三区| 欧美一级片免费看| 91丨国产丨九色丨pron| 免费人成在线不卡| 日韩伦理免费电影| 欧美www视频| 日本精品视频一区二区| 国产一区二区免费在线| 亚洲午夜免费视频| 国产视频一区二区在线| 欧美一区二区免费视频| 色视频成人在线观看免| 国产成人精品亚洲日本在线桃色| 亚洲国产中文字幕在线视频综合| 国产视频不卡一区| 日韩精品中文字幕在线一区| 99国产精品久| 国产高清一区日本| 日本午夜精品视频在线观看 | 亚洲成av人片在线观看无码| 欧美极品另类videosde| 欧美一区二区播放| 在线亚洲+欧美+日本专区| 粉嫩在线一区二区三区视频| 男人的j进女人的j一区| 一个色妞综合视频在线观看| 亚洲国产精品二十页| 精品日韩在线观看| 91精品国产免费久久综合| 欧美性videosxxxxx| 91蝌蚪porny| 成人深夜在线观看| 国产一区二区在线视频| 免费av成人在线| 亚洲成人av一区| 亚洲视频一区在线观看| 国产蜜臀av在线一区二区三区| 欧美成人精品高清在线播放| 欧美精品1区2区| 欧美视频一区二区三区在线观看 | 一区二区三区欧美久久| 国产精品麻豆99久久久久久| 久久午夜国产精品| 欧美精品一区二区三区高清aⅴ| 欧美一级欧美三级在线观看| 51精品视频一区二区三区| 欧美日韩国产a| 欧美精品黑人性xxxx| 91精品国产综合久久精品app |