# ***** 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 the Places Menupopup View. # # The Initial Developer of the Original Code is Google Inc. # Portions created by the Initial Developer are Copyright (C) 2005-2006 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Annie Sullivan # Ben Goodger # Asaf Romano # # 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 ***** null -1 -1 0) --this._endMarker; } // If no static items were found at the beginning, remove all items before // the static items at the end. if (this._startMarker == -1) { var end = (this._endMarker == -1) ? this.childNodes.length - 1 : this._endMarker - 1; for (var i = end; i >=0; i--) { this.removeChild(this.childNodes[i]); if (this._endMarker > 0) --this._endMarker; } } //LOG("KIDS = " + this.childNodes.length); ]]> #ifdef XP_MACOSX false #endif 0) { for (var i = 0; i < cc; ++i) { var child = this._resultNode.getChild(i); this.insertNewItem(child, null); } } else { // This menu is empty. If there is no static content, add // an element to show it is empty. if (this._startMarker == -1 && this._endMarker == -1) { var label = PlacesUtils.getString("bookmarksMenuEmptyFolder"); const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var element = document.createElementNS(XULNS, "menuitem"); element.setAttribute("label", label); element.setAttribute("disabled", true); this.appendChild(element); } } ]]> domNodes. There's only one map per // result/viewer, the field is initialized once for the root menu, // for sub menus it is set to the root's map (see insertNewItem) this._containerNodesMap = []; this.setAttribute("place", val); var queries = { }, options = { }; PlacesUtils.history.queryStringToQueries(val, queries, { }, options); if (!queries.value.length) queries.value = [PlacesUtils.history.getNewQuery()]; this._result = PlacesUtils.history.executeQueries(queries.value, queries.value.length, options.value); this._result.viewer = this._viewer; this._resultNode = this._result.root; return val; ]]> PlacesUtils.GENERIC_VIEW_DROP_TYPES PlacesUtils.GENERIC_VIEW_DROP_TYPES if (event.target == this) this.onPopupShowing(); if (event.target != this) return; // UI performance: keep the resultnode open so we don't rebuild its // contents whenever the popup is reopened. // The autoopened attribute is set for folders which have been // automatically opened when dragged over. Turn off this attribute // when the folder closes because it is no longer applicable. this.removeAttribute("autoopened");