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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? customizetoolbar.js

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
# ***** 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# David Hyatt.# Portions created by the Initial Developer are Copyright (C) 2002# the Initial Developer. All Rights Reserved.## Contributor(s):#   David Hyatt (hyatt@apple.com)#   Blake Ross (blaker@netscape.com)#   Joe Hewitt (hewitt@netscape.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 *****const kRowMax = 4;const kWindowWidth = 600;const kWindowHeight = 400;const kAnimateIncrement = 50;const kAnimateSteps = kWindowHeight / kAnimateIncrement - 1;const kVSizeSlop = 5;var gToolboxDocument = null;var gToolbox = null;var gCurrentDragOverItem = null;var gToolboxChanged = false;var gPreviousMode = null;var gPreviousIconSize = null;function onLoad(){  gToolbox = window.arguments[0];  gToolboxDocument = gToolbox.ownerDocument;    gToolbox.addEventListener("draggesture", onToolbarDragGesture, false);  gToolbox.addEventListener("dragover", onToolbarDragOver, false);  gToolbox.addEventListener("dragexit", onToolbarDragExit, false);  gToolbox.addEventListener("dragdrop", onToolbarDragDrop, false);  repositionDialog();  initDialog();}function onUnload(aEvent){  removeToolboxListeners();  unwrapToolbarItems(true);  persistCurrentSets();    notifyParentComplete();}function onCancel(){  // restore the saved toolbarset for each customizeable toolbar  unwrapToolbarItems(false);  var toolbar = gToolbox.firstChild;  while (toolbar) {    if (isCustomizableToolbar(toolbar)) {      if (!toolbar.hasAttribute("customindex")) {        var previousset = toolbar.getAttribute("previousset");        if (previousset)        {          toolbar.currentSet = previousset;        }      }    }    toolbar = toolbar.nextSibling;  }  // restore the previous mode and iconsize  updateIconSize(gPreviousIconSize == "small");  updateToolbarMode(gPreviousMode);  repositionDialog();  gToolboxChanged = true;  return onAccept(); // we restored the default toolbar, act like a normal accept event now}function onAccept(aEvent){  document.getElementById("main-box").collapsed = true;  window.close();}function initDialog(){  document.getElementById("main-box").collapsed = false;    gPreviousMode = gToolbox.getAttribute("mode");  document.getElementById("modelist").value = gPreviousMode;  gPreviousIconSize = gToolbox.getAttribute("iconsize");  var smallIconsCheckbox = document.getElementById("smallicons");  if (gPreviousMode == "text")    smallIconsCheckbox.disabled = true;  else    smallIconsCheckbox.checked = gPreviousIconSize == "small";  // Build up the palette of other items.  buildPalette();  // Wrap all the items on the toolbar in toolbarpaletteitems.  wrapToolbarItems(true);}function repositionDialog(){  // Position the dialog touching the bottom of the toolbox and centered with   // it. We must resize the window smaller first so that it is positioned   // properly.   var screenX = gToolbox.boxObject.screenX + ((gToolbox.boxObject.width - kWindowWidth) / 2);  var screenY = gToolbox.boxObject.screenY + gToolbox.boxObject.height;  var newHeight = kWindowHeight;  if (newHeight >= screen.availHeight - screenY - kVSizeSlop) {    newHeight = screen.availHeight - screenY - kVSizeSlop;  }  window.resizeTo(kWindowWidth, newHeight);  window.moveTo(screenX, screenY);}function removeToolboxListeners(){  gToolbox.removeEventListener("draggesture", onToolbarDragGesture, false);  gToolbox.removeEventListener("dragover", onToolbarDragOver, false);  gToolbox.removeEventListener("dragexit", onToolbarDragExit, false);  gToolbox.removeEventListener("dragdrop", onToolbarDragDrop, false);}/** * Invoke a callback on the toolbox to notify it that the dialog is done * and going away. */function notifyParentComplete(){  if ("customizeDone" in gToolbox)    gToolbox.customizeDone(gToolboxChanged);}function getToolbarAt(i){  return gToolbox.childNodes[i];}/** * Persist the current set of buttons in all customizable toolbars to * localstore. */function persistCurrentSets(){  if (!gToolboxChanged)    return;  var customCount = 0;  for (var i = 0; i < gToolbox.childNodes.length; ++i) {    // Look for customizable toolbars that need to be persisted.    var toolbar = getToolbarAt(i);    if (isCustomizableToolbar(toolbar)) {      // Calculate currentset and store it in the attribute.      var currentSet = toolbar.currentSet;      toolbar.setAttribute("currentset", currentSet);            var customIndex = toolbar.hasAttribute("customindex");      if (customIndex) {        if (!toolbar.firstChild) {          // Remove custom toolbars whose contents have been removed.          gToolbox.removeChild(toolbar);          --i;        } else {          // Persist custom toolbar info on the <toolbarset/>          gToolbox.toolbarset.setAttribute("toolbar"+(++customCount),                                           toolbar.toolbarName + ":" + currentSet);          gToolboxDocument.persist(gToolbox.toolbarset.id, "toolbar"+customCount);        }      }      if (!customIndex) {        // Persist the currentset attribute directly on hardcoded toolbars.        gToolboxDocument.persist(toolbar.id, "currentset");      }    }  }    // Remove toolbarX attributes for removed toolbars.  while (gToolbox.toolbarset.hasAttribute("toolbar"+(++customCount))) {    gToolbox.toolbarset.removeAttribute("toolbar"+customCount);    gToolboxDocument.persist(gToolbox.toolbarset.id, "toolbar"+customCount);  }}/** * Wraps all items in all customizable toolbars in a toolbox. */function wrapToolbarItems(aStorePreviousSet){  for (var i = 0; i < gToolbox.childNodes.length; ++i) {    var toolbar = getToolbarAt(i);    if (isCustomizableToolbar(toolbar)) {      if (aStorePreviousSet)        toolbar.setAttribute('previousset', toolbar.currentSet);      for (var k = 0; k < toolbar.childNodes.length; ++k) {        var item = toolbar.childNodes[k];        if (isToolbarItem(item)) {          var nextSibling = item.nextSibling;                    var wrapper = wrapToolbarItem(item);               if (nextSibling)            toolbar.insertBefore(wrapper, nextSibling);          else            toolbar.appendChild(wrapper);        }      }    }  }}/** * Unwraps all items in all customizable toolbars in a toolbox. */ function unwrapToolbarItems(aRemovePreviousSet){  for (var i = 0; i < gToolbox.childNodes.length; ++i) {    var toolbar = getToolbarAt(i);    if (isCustomizableToolbar(toolbar)) {      if (aRemovePreviousSet)        toolbar.removeAttribute('previousset');      for (var k = 0; k < toolbar.childNodes.length; ++k) {        var paletteItem = toolbar.childNodes[k];        var toolbarItem = paletteItem.firstChild;        if (toolbarItem && isToolbarItem(toolbarItem)) {          var nextSibling = paletteItem.nextSibling;          if (paletteItem.hasAttribute("itemcommand"))            toolbarItem.setAttribute("command", paletteItem.getAttribute("itemcommand"));          if (paletteItem.hasAttribute("itemobserves"))            toolbarItem.setAttribute("observes", paletteItem.getAttribute("itemobserves"));          paletteItem.removeChild(toolbarItem);           paletteItem.parentNode.removeChild(paletteItem);          if (nextSibling)            toolbar.insertBefore(toolbarItem, nextSibling);          else            toolbar.appendChild(toolbarItem);        }      }    }  }}/** * Creates a wrapper that can be used to contain a toolbaritem and prevent * it from receiving UI events. */function createWrapper(aId){  var wrapper = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                         "toolbarpaletteitem");  wrapper.id = "wrapper-"+aId;    return wrapper;}/** * Wraps an item that has been cloned from a template and adds * it to the end of a row in the palette. */function wrapPaletteItem(aPaletteItem, aCurrentRow, aSpacer){  var wrapper = createWrapper(aPaletteItem.id);  wrapper.setAttribute("flex", 1);  wrapper.setAttribute("align", "center");  wrapper.setAttribute("pack", "center");  wrapper.setAttribute("minheight", "0");  wrapper.setAttribute("minwidth", "0");  wrapper.appendChild(aPaletteItem);    // XXX We need to call this AFTER the palette item has been appended  // to the wrapper or else we crash dropping certain buttons on the   // palette due to removal of the command and disabled attributes - JRH  cleanUpItemForPalette(aPaletteItem, wrapper);  if (aSpacer)    aCurrentRow.insertBefore(wrapper, aSpacer);  else    aCurrentRow.appendChild(wrapper);}/** * Wraps an item that is currently on a toolbar and replaces the item * with the wrapper. This is not used when dropping items from the palette, * only when first starting the dialog and wrapping everything on the toolbars. */function wrapToolbarItem(aToolbarItem){  var wrapper = createWrapper(aToolbarItem.id);    cleanupItemForToolbar(aToolbarItem, wrapper);  wrapper.flex = aToolbarItem.flex;  if (aToolbarItem.parentNode)    aToolbarItem.parentNode.removeChild(aToolbarItem);    wrapper.appendChild(aToolbarItem);    return wrapper;}/** * Get the list of ids for the current set of items on each toolbar. */function getCurrentItemIds(){  var currentItems = {};  for (var i = 0; i < gToolbox.childNodes.length; ++i) {    var toolbar = getToolbarAt(i);    if (isCustomizableToolbar(toolbar)) {      var child = toolbar.firstChild;      while (child) {        if (isToolbarItem(child))          currentItems[child.id] = 1;        child = child.nextSibling;      }    }  }  return currentItems;}/** * Builds the palette of draggable items that are not yet in a toolbar. */function buildPalette(){  // Empty the palette first.  var paletteBox = document.getElementById("palette-box");  while (paletteBox.lastChild)    paletteBox.removeChild(paletteBox.lastChild);  var currentRow = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                            "hbox");  currentRow.setAttribute("class", "paletteRow");  // Add the toolbar separator item.  var templateNode = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                              "toolbarseparator");  templateNode.id = "separator";  wrapPaletteItem(templateNode, currentRow, null);  // Add the toolbar spring item.  templateNode = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                              "toolbarspring");  templateNode.id = "spring";  templateNode.flex = 1;  wrapPaletteItem(templateNode, currentRow, null);  // Add the toolbar spacer item.  templateNode = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                              "toolbarspacer");  templateNode.id = "spacer";  templateNode.flex = 1;  wrapPaletteItem(templateNode, currentRow, null);  var rowSlot = 3;  var currentItems = getCurrentItemIds();  templateNode = gToolbox.palette.firstChild;  while (templateNode) {    // Check if the item is already in a toolbar before adding it to the palette.    if (!(templateNode.id in currentItems)) {      var paletteItem = templateNode.cloneNode(true);      if (rowSlot == kRowMax) {        // Append the old row.        paletteBox.appendChild(currentRow);        // Make a new row.        currentRow = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                              "hbox");        currentRow.setAttribute("class", "paletteRow");        rowSlot = 0;      }      ++rowSlot;      wrapPaletteItem(paletteItem, currentRow, null);    }        templateNode = templateNode.nextSibling;  }  if (currentRow) {     fillRowWithFlex(currentRow);    paletteBox.appendChild(currentRow);  }}/** * Creates a new palette item for a cloned template node and * adds it to the last slot in the palette. */function appendPaletteItem(aItem){  var paletteBox = document.getElementById("palette-box");  var lastRow = paletteBox.lastChild;  var lastSpacer = lastRow.lastChild;     if (lastSpacer.localName != "spacer") {    // The current row is full, so we have to create a new row.    lastRow = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                        "hbox");    lastRow.setAttribute("class", "paletteRow");    paletteBox.appendChild(lastRow);        wrapPaletteItem(aItem, lastRow, null);    fillRowWithFlex(lastRow);  } else {    // Decrement the flex of the last spacer or remove it entirely.    var flex = lastSpacer.getAttribute("flex");    if (flex == 1) {      lastRow.removeChild(lastSpacer);      lastSpacer = null;    } else      lastSpacer.setAttribute("flex", --flex);    // Insert the wrapper where the last spacer was.    wrapPaletteItem(aItem, lastRow, lastSpacer);  }}function fillRowWithFlex(aRow){  var remainingFlex = kRowMax - aRow.childNodes.length;  if (remainingFlex > 0) {    var spacer = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",                                          "spacer");    spacer.setAttribute("flex", remainingFlex);    aRow.appendChild(spacer);  }}/** * Makes sure that an item that has been cloned from a template * is stripped of all properties that may adversely affect it's * appearance in the palette. */function cleanUpItemForPalette(aItem, aWrapper)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线码无精品| 激情偷乱视频一区二区三区| 日韩av在线播放中文字幕| 精一区二区三区| 色综合久久久久久久| 2019国产精品| 国产精品久久久久久久久晋中| 国产欧美精品一区二区色综合| 伊人婷婷欧美激情| 国产不卡在线视频| 久久一区二区三区国产精品| 性做久久久久久免费观看| av一区二区三区四区| 久久网站热最新地址| 日本午夜精品一区二区三区电影 | 欧美成人精品1314www| 中文字幕在线不卡视频| 国精产品一区一区三区mba视频| 欧美丝袜丝交足nylons图片| 国产精品视频观看| 国产成都精品91一区二区三 | 色哟哟一区二区| 亚洲日本一区二区三区| 日韩欧美国产午夜精品| 亚洲日本va午夜在线影院| 国产精品一区二区三区乱码| 日韩一区二区三区电影| 亚洲成精国产精品女| 欧美午夜精品一区二区蜜桃| 亚洲欧美偷拍另类a∨色屁股| 成人一区二区三区视频| 久久久久88色偷偷免费| 精久久久久久久久久久| www国产精品av| 国产呦萝稀缺另类资源| 久久蜜臀中文字幕| 国产成人自拍在线| 国产精品色哟哟| 99在线热播精品免费| 亚洲天堂av老司机| 色久综合一二码| 亚洲1区2区3区视频| 欧美一区日韩一区| 国内精品嫩模私拍在线| 717成人午夜免费福利电影| 中文字幕巨乱亚洲| 91网站在线观看视频| 国产精品高清亚洲| 色婷婷狠狠综合| 日韩不卡免费视频| 久久嫩草精品久久久久| 99精品欧美一区| 午夜精品福利一区二区三区av| 欧美精品欧美精品系列| 国产一区美女在线| 亚洲麻豆国产自偷在线| 欧美福利视频一区| 国产成人自拍网| 亚洲国产视频一区| 久久久天堂av| 色域天天综合网| 色综合久久久久综合| 亚洲第一久久影院| 久久久久亚洲综合| 色老头久久综合| 韩国三级中文字幕hd久久精品| 国产精品美女久久久久高潮| 一级特黄大欧美久久久| 欧美三级韩国三级日本一级| 久久69国产一区二区蜜臀| 国产精品毛片久久久久久| 欧美日韩一区二区在线观看视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 在线播放91灌醉迷j高跟美女| 韩国成人精品a∨在线观看| 一区二区三区在线观看欧美| 日韩视频在线你懂得| gogo大胆日本视频一区| 美女视频一区在线观看| 一区二区三区在线观看欧美| 国产日韩成人精品| 欧美一级在线观看| 91搞黄在线观看| 大美女一区二区三区| 日韩电影免费在线观看网站| 亚洲欧美日韩一区二区三区在线观看| 日韩亚洲欧美中文三级| 色婷婷综合久久久中文字幕| 亚洲综合男人的天堂| 国产精品99久久不卡二区| 亚洲在线视频一区| 国产欧美久久久精品影院| 欧美日韩第一区日日骚| 色综合欧美在线视频区| 丰满放荡岳乱妇91ww| 免费在线视频一区| 亚洲丰满少妇videoshd| 亚洲女厕所小便bbb| 欧美精品一区二区久久久| 欧美蜜桃一区二区三区| 色综合久久久久综合| av亚洲产国偷v产偷v自拍| 国产成人免费视频一区| 国产美女久久久久| 免费在线视频一区| 六月丁香婷婷色狠狠久久| 日产欧产美韩系列久久99| 亚洲一区国产视频| 夜色激情一区二区| 亚洲在线观看免费| 亚洲男帅同性gay1069| 中文字幕一区不卡| 亚洲欧洲国产专区| 亚洲欧美激情插| 欧美亚洲国产一区二区三区| 不卡视频在线观看| 国产夫妻精品视频| 国产精品夜夜嗨| 国产精品白丝jk黑袜喷水| 狠狠色综合日日| 国产一区二区在线观看视频| 国内成人免费视频| 国产一区二区三区四区五区入口| 久久精品99国产精品日本| 久久国产精品无码网站| 经典三级视频一区| 风间由美一区二区三区在线观看 | 91麻豆福利精品推荐| 99re这里只有精品首页| 色婷婷一区二区三区四区| 欧美日韩在线一区二区| 欧美一级日韩免费不卡| 久久久久久久综合日本| 中文字幕免费一区| 亚洲精品视频自拍| 国产精品免费久久| 国产精品视频yy9299一区| 亚洲欧美日韩系列| 一区二区三区日韩精品| 丝袜亚洲另类欧美综合| 美女精品一区二区| av午夜一区麻豆| 欧美人与禽zozo性伦| xnxx国产精品| 一个色综合av| 九色综合狠狠综合久久| 白白色亚洲国产精品| 欧美三电影在线| 久久欧美一区二区| 亚洲综合偷拍欧美一区色| 丝瓜av网站精品一区二区| 国产精品77777| 在线观看国产日韩| 26uuu成人网一区二区三区| 亚洲免费伊人电影| 国产综合色产在线精品| 欧美日韩精品三区| 国产欧美精品区一区二区三区| 亚洲专区一二三| 国产激情视频一区二区三区欧美| 欧美中文字幕一区二区三区 | 成人精品视频一区二区三区尤物| 99精品欧美一区二区三区小说| 欧美三级午夜理伦三级中视频| 精品成人a区在线观看| 亚洲精品成a人| 国产高清不卡一区二区| 欧美群妇大交群中文字幕| 日韩精品电影一区亚洲| av网站一区二区三区| 欧美电视剧在线看免费| 亚洲激情校园春色| 成人黄色777网| 日韩欧美在线综合网| 亚洲精品午夜久久久| 成人免费视频网站在线观看| 精品国产髙清在线看国产毛片| 一片黄亚洲嫩模| a美女胸又www黄视频久久| 久久这里都是精品| 另类综合日韩欧美亚洲| 91精品国产免费| 亚洲二区在线视频| 在线视频一区二区免费| 国产精品久久久久9999吃药| 蜜桃一区二区三区在线| 奇米精品一区二区三区在线观看| av不卡免费电影| 国产女主播视频一区二区| 免费精品视频在线| 欧美精品自拍偷拍| 亚洲成人激情社区| 欧美在线三级电影| 一区二区三区四区在线免费观看| 成人美女视频在线观看18| 精品国产一区a| 紧缚奴在线一区二区三区| 精品国产乱码久久久久久1区2区 | 久久久久久久久久看片| 日本在线不卡一区|