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

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

?? customizetoolbar.js

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 2 頁
字號:
# ***** 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)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
裸体一区二区三区| 久久色视频免费观看| 国产乱淫av一区二区三区| 亚洲小少妇裸体bbw| 亚洲精品ww久久久久久p站| 中文字幕av一区二区三区高 | 精品精品国产高清一毛片一天堂| 在线欧美小视频| 97久久精品人人爽人人爽蜜臀| 国产精品一区一区| 麻豆国产精品一区二区三区| 久久精品国产在热久久| 黄色资源网久久资源365| 国产一区二区三区在线看麻豆| 免费成人性网站| 国产成人免费9x9x人网站视频| 国产suv精品一区二区883| 成人av电影在线播放| 日韩欧美视频在线| 欧美v日韩v国产v| 国产日产精品1区| 亚洲综合小说图片| 日韩av在线播放中文字幕| 久久精品国产精品亚洲精品 | 国产成人午夜高潮毛片| av日韩在线网站| 欧美美女一区二区在线观看| 日韩欧美一区二区久久婷婷| 国产欧美日韩在线| 亚洲午夜视频在线| 狠狠色丁香久久婷婷综| 99久久久无码国产精品| 91精品一区二区三区在线观看| 精品播放一区二区| 亚洲一二三区在线观看| 国产一区二区视频在线播放| 在线视频观看一区| 久久久久久久久蜜桃| 亚洲国产中文字幕在线视频综合| 精品一区二区综合| 欧洲色大大久久| 国产日产精品1区| 日韩1区2区日韩1区2区| 92精品国产成人观看免费| 日韩三区在线观看| 亚洲自拍偷拍图区| 成人h动漫精品| 精品日本一线二线三线不卡| 亚洲精品免费播放| 大胆欧美人体老妇| 久久综合网色—综合色88| 亚洲一区二区中文在线| 高清成人免费视频| 欧美成人精品福利| 日韩精品国产欧美| 欧美亚洲国产一区二区三区va| 久久精品人人做人人综合| 免费在线观看一区二区三区| 色国产精品一区在线观看| 久久精品人人做| 久久电影网站中文字幕| 欧美卡1卡2卡| 亚洲午夜精品久久久久久久久| 94-欧美-setu| 亚洲欧美激情在线| 北条麻妃一区二区三区| 国产日韩高清在线| 国产成人av一区二区三区在线观看| 777久久久精品| 日韩av中文字幕一区二区三区| 欧美亚洲国产一区在线观看网站| 亚洲精品国产无套在线观| 99久久综合99久久综合网站| 一区二区三区在线播放| aaa亚洲精品| 亚洲欧美偷拍卡通变态| 免费在线观看视频一区| 99久久婷婷国产综合精品电影| 亚洲国产经典视频| 成人动漫视频在线| 日韩女优av电影| 国产精品毛片a∨一区二区三区| 国产精品一区二区果冻传媒| 91.com视频| 久久免费午夜影院| 日本不卡一二三区黄网| 欧美大胆人体bbbb| 激情六月婷婷综合| 色一区在线观看| 欧美一区二区三区在线观看 | 亚洲自拍都市欧美小说| av一本久道久久综合久久鬼色| 在线91免费看| 日韩精品91亚洲二区在线观看| 69堂成人精品免费视频| 国产精品一区二区你懂的| 亚洲国产成人porn| 欧美美女视频在线观看| 亚洲无人区一区| 久久综合丝袜日本网| av电影天堂一区二区在线观看| 伊人开心综合网| 精品国产成人系列| 成人免费视频一区| 首页亚洲欧美制服丝腿| 中文字幕不卡在线观看| 欧美色图天堂网| 国精产品一区一区三区mba桃花 | 粉嫩aⅴ一区二区三区四区| 亚洲精品成a人| 精品国产亚洲在线| 91麻豆精品秘密| 国内精品嫩模私拍在线| 亚洲最新视频在线观看| 久久久久久久精| 欧美日韩一级黄| k8久久久一区二区三区| 日本美女一区二区三区| **网站欧美大片在线观看| 欧美成人午夜电影| 欧美三级电影网| 国产成人三级在线观看| 婷婷成人激情在线网| 最新国产の精品合集bt伙计| 日韩一区二区免费视频| 欧美亚洲综合一区| 99精品国产一区二区三区不卡| 青青草视频一区| 一区二区在线看| 国产精品美女久久久久久久| 欧美变态凌虐bdsm| 欧美日韩一区二区在线观看视频| 成人激情视频网站| 国产在线观看一区二区| 免费欧美日韩国产三级电影| 国产精品传媒在线| 国产欧美一区二区精品忘忧草| 欧美乱妇15p| 欧美美女视频在线观看| 在线亚洲一区观看| 91免费版pro下载短视频| 欧美性大战久久| 欧美在线制服丝袜| 在线精品视频免费播放| 色婷婷久久一区二区三区麻豆| 国产白丝精品91爽爽久久| 国内久久精品视频| 国内精品写真在线观看| 激情综合网最新| 激情欧美一区二区| 国产一区中文字幕| 国产精品亚洲专一区二区三区 | 国产精品久久久久久久久动漫| 2019国产精品| 国产亚洲一区二区三区| 久久久蜜桃精品| 国产欧美一区二区精品性| 国产视频在线观看一区二区三区| 久久新电视剧免费观看| 国产午夜亚洲精品羞羞网站| 国产性天天综合网| 中文字幕五月欧美| 一区二区三区在线视频播放| 亚洲午夜精品网| 奇米影视一区二区三区| 久久精品国产亚洲一区二区三区| 国内精品免费在线观看| 成人一区二区三区| 91麻豆成人久久精品二区三区| 色8久久人人97超碰香蕉987| 欧美麻豆精品久久久久久| 日韩视频免费直播| 日本一区二区三区四区| 亚洲视频一二三区| 亚洲成人在线免费| 国产一区二三区| 99re成人精品视频| 337p亚洲精品色噜噜狠狠| www久久久久| 依依成人精品视频| 免费成人av资源网| 国产a区久久久| 欧美乱妇20p| 国产精品午夜在线观看| 午夜久久久久久电影| 国内外成人在线视频| 色噜噜狠狠成人中文综合| 日韩欧美一二三四区| 国产精品入口麻豆九色| 欧美a级理论片| 91在线精品一区二区| 日韩欧美专区在线| 亚洲精品视频免费观看| 国产呦精品一区二区三区网站| 色综合激情五月| 国产欧美日韩综合| 奇米精品一区二区三区在线观看| 99免费精品视频| 欧美精品一区二区不卡| 一区二区三区资源|