亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美三日本三级三级在线播放| jlzzjlzz欧美大全| 国产婷婷一区二区| 欧美色视频一区| 国产精品99久久久| 亚洲一区电影777| 久久亚洲精品小早川怜子| 欧美亚洲综合色| 国产成人在线影院| 七七婷婷婷婷精品国产| 亚洲精品视频免费看| 久久九九久久九九| 欧美丰满美乳xxx高潮www| 97精品久久久久中文字幕| 极品美女销魂一区二区三区免费| 亚洲制服欧美中文字幕中文字幕| 国产精品伦理一区二区| 欧美va亚洲va在线观看蝴蝶网| 欧美日韩免费一区二区三区视频| 99综合电影在线视频| 国产一区999| 美脚の诱脚舐め脚责91| 亚洲一区二区三区自拍| 亚洲黄一区二区三区| 中文字幕一区二区三区视频| 久久久久国产成人精品亚洲午夜| 欧美一区二区三区日韩| 欧美日韩成人在线一区| 在线免费亚洲电影| 日本韩国一区二区三区视频| 成人精品免费看| 国产不卡在线播放| 国产一区二区在线观看视频| 久久国产精品99久久人人澡| 日本美女一区二区三区视频| 日韩不卡一二三区| 日本成人中文字幕| 捆绑变态av一区二区三区| 久久精品国产99国产精品| 免费看黄色91| 美女视频黄免费的久久 | 久久久久久久久一| 51精品秘密在线观看| 精品视频在线看| 欧美午夜精品久久久久久孕妇| 色天天综合色天天久久| 99国产精品国产精品毛片| 北条麻妃一区二区三区| 色综合天天综合网天天狠天天| 91香蕉视频在线| 欧美伊人久久久久久久久影院| 欧美优质美女网站| 欧美电影一区二区三区| 日韩欧美国产不卡| 国产欧美一区二区三区沐欲| 国产精品女同一区二区三区| 亚洲色欲色欲www在线观看| 一区二区三区在线免费观看| 亚洲va国产va欧美va观看| 日韩激情一区二区| 国产麻豆视频一区| 99re8在线精品视频免费播放| 91美女片黄在线| 欧美日韩国产精品成人| 日韩精品中文字幕一区二区三区 | 欧美老人xxxx18| 欧美丰满少妇xxxxx高潮对白 | 欧美日韩黄色影视| 日韩亚洲欧美在线| 欧美国产精品一区| 亚洲一区二区三区不卡国产欧美| 日韩和欧美的一区| 国产精品一区在线| 色中色一区二区| 欧美丰满一区二区免费视频| 久久―日本道色综合久久| 亚洲啪啪综合av一区二区三区| 婷婷国产在线综合| 国产a精品视频| 欧美在线观看一区| 久久综合色婷婷| 一区二区三区在线观看国产 | 91在线免费看| 欧美精品aⅴ在线视频| 久久综合久久鬼色中文字| 亚洲视频中文字幕| 久久99精品国产麻豆婷婷| av一区二区三区| 777xxx欧美| 亚洲精品中文在线| 国内精品视频666| 欧美亚洲日本国产| 久久久电影一区二区三区| 亚洲综合区在线| 丁香啪啪综合成人亚洲小说| 777久久久精品| 亚洲老司机在线| 狠狠色丁香婷婷综合| 欧美日韩国产经典色站一区二区三区 | 国产成人综合网站| 91麻豆精品国产91| 亚洲人成精品久久久久| 国产一区二区三区在线看麻豆| 色成年激情久久综合| 久久综合丝袜日本网| 日本最新不卡在线| 一本一道波多野结衣一区二区| 久久久久国产成人精品亚洲午夜| 日日夜夜免费精品| 色诱视频网站一区| 国产精品美女久久久久aⅴ国产馆| 日韩在线观看一区二区| 欧美综合天天夜夜久久| 国产精品美女久久久久久久| 九一九一国产精品| 欧美一区国产二区| 亚洲电影第三页| 在线视频综合导航| |精品福利一区二区三区| 国产精品77777| 久久综合av免费| 免费亚洲电影在线| 91精品国产高清一区二区三区| 一区二区三区日韩精品视频| 99国产精品久| 亚洲图片你懂的| 99视频一区二区| 日韩毛片一二三区| 99久久国产综合精品麻豆| 欧美极品另类videosde| 国产成人综合亚洲91猫咪| 久久综合av免费| 国产成人亚洲综合色影视| 精品国产乱码久久久久久夜甘婷婷| 日韩av网站免费在线| 制服丝袜亚洲色图| 日韩电影在线观看电影| 337p亚洲精品色噜噜噜| 婷婷久久综合九色综合绿巨人| 欧美美女黄视频| 丝袜亚洲另类欧美| 欧美久久久久久久久久| 日韩主播视频在线| 欧美白人最猛性xxxxx69交| 久久99精品久久久久久| 久久伊99综合婷婷久久伊| 国产伦精品一区二区三区免费迷 | 国产一区二区美女诱惑| 国产午夜亚洲精品不卡| 9人人澡人人爽人人精品| 亚洲婷婷综合色高清在线| 91麻豆产精品久久久久久| 一区二区三区在线高清| 欧美乱妇15p| 精品综合免费视频观看| 久久美女高清视频| 成人a级免费电影| 亚洲欧美一区二区在线观看| 91福利社在线观看| 亚洲3atv精品一区二区三区| 日韩欧美激情四射| 粉嫩av一区二区三区在线播放| 综合激情成人伊人| 欧美精品v国产精品v日韩精品| 国内精品免费在线观看| 一区在线中文字幕| 欧美群妇大交群中文字幕| 久久激情五月婷婷| 国产精品久久久久aaaa| 欧美亚洲禁片免费| 久久国产三级精品| 成人欧美一区二区三区白人 | 国产精品久久久久aaaa樱花 | 另类小说综合欧美亚洲| 欧美激情一二三区| 在线观看不卡一区| 国产一区二区在线观看视频| √…a在线天堂一区| 欧美一区二区视频观看视频| 国产mv日韩mv欧美| 亚洲高清视频中文字幕| 国产日韩欧美一区二区三区乱码 | 91一区二区三区在线播放| 日本美女视频一区二区| 国产精品久久夜| 91麻豆精品国产91久久久久久久久 | 91国在线观看| 精品一二三四区| 亚洲精品视频免费观看| 久久亚洲捆绑美女| 欧美日韩一区不卡| 成人免费高清在线| 青青草97国产精品免费观看无弹窗版 | 亚洲制服欧美中文字幕中文字幕| 精品对白一区国产伦| 色综合天天综合| 国产精品18久久久| 日韩中文字幕91| 亚洲精品久久久久久国产精华液| 欧美一区二区国产|