0 "" 0 ? this.selectedItems[0] : null; ]]> 0) return this.getIndexOfItem(this.selectedItems[0]); return -1; ]]> = 0) { this.selectItem(this.getItemAtIndex(val)); } else { this.clearSelection(); this.currentItem = null; } ]]> 0) return this.selectedItem.value; return null; ]]> if (this._currentItem == val) return val; if (this._currentItem) this._currentItem.current = false; this._currentItem = val; if (val) val.current = true; return val; return this.currentItem ? this.getIndexOfItem(this.currentItem) : -1; = 0) this.currentItem = this.getItemAtIndex(val); else this.currentItem = null; ]]> new ChromeNodeList() this._selectionStart = null; var suppress = this._suppressOnSelect; this._suppressOnSelect = true; var item = this.getItemAtIndex(0); while (item) { this.addItemToSelection(item); item = this.getNextItem(item, 1); } this._suppressOnSelect = suppress; this._fireOnSelect(); this._selectionStart = null; var suppress = this._suppressOnSelect; this._suppressOnSelect = true; var item = this.getItemAtIndex(0); while (item) { if (item.selected) this.removeItemFromSelection(item); else this.addItemToSelection(item); item = this.getNextItem(item, 1); } this._suppressOnSelect = suppress; this._fireOnSelect(); 0) { let item = this.selectedItems[0]; item.selected = false; this.selectedItems.remove(item); } } this._selectionStart = null; this._fireOnSelect(); ]]> if (val) this.setAttribute("disableKeyNavigation", "true"); else this.removeAttribute("disableKeyNavigation"); return val; numItems - 1) newIndex = numItems - 1; var newItem = this.getItemAtIndex(newIndex); // make sure that the item is actually visible/selectable if (this._userSelecting && newItem && !this._canUserSelect(newItem)) newItem = aOffset > 0 ? this.getNextItem(newItem, 1) || this.getPreviousItem(newItem, 1) : this.getPreviousItem(newItem, 1) || this.getNextItem(newItem, 1); if (newItem) { this.ensureIndexIsVisible(this.getIndexOfItem(newItem)); if (aIsSelectingRange) this.selectItemRange(null, newItem); else if (aIsSelecting) this.selectItem(newItem); this.currentItem = newItem; } ]]> aMe._fireOnSelect(); aMe._selectTimeout = null; false false false null null null 0) { if (this.currentIndex == -1) { this.currentIndex = this.getIndexOfFirstVisibleRow(); } else { this.currentItem._fireEvent("DOMMenuItemActive"); } } this._lastKeyTime = 0; ]]> 1000) this._incrementalString = ""; var key = String.fromCharCode(event.charCode).toLowerCase(); this._incrementalString += key; this._lastKeyTime = event.timeStamp; // If all letters in the incremental string are the same, just // try to match the first one var incrementalString = /^(.)\1+$/.test(this._incrementalString) ? RegExp.$1 : this._incrementalString; var length = incrementalString.length; var rowCount = this.getRowCount(); var l = this.selectedItems.length; var start = l > 0 ? this.getIndexOfItem(this.selectedItems[l - 1]) : -1; // start from the first element if none was selected or from the one // following the selected one if it's a new or a repeated-letter search if (start == -1 || length == 1) start++; for (var i = 0; i < rowCount; i++) { var k = (start + i) % rowCount; var listitem = this.getItemAtIndex(k); if (!this._canUserSelect(listitem)) continue; // allow richlistitems to specify the string being searched for var searchText = "searchLabel" in listitem ? listitem.searchLabel : listitem.getAttribute("label"); // (see also bug 250123) searchText = searchText.substring(0, length).toLowerCase(); if (searchText == incrementalString) { this.ensureIndexIsVisible(k); this.timedSelect(listitem, this._selectDelay); break; } } ]]> const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var item = this.ownerDocument.createElementNS(XULNS, "listitem"); item.setAttribute("label", aLabel); item.setAttribute("value", aValue); this.appendChild(item); return item; const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var item = this.ownerDocument.createElementNS(XULNS, "listitem"); item.setAttribute("label", aLabel); item.setAttribute("value", aValue); var before = this.getItemAtIndex(aIndex); if (before) this.insertBefore(item, before); else this.appendChild(item); return item; return this.listBoxObject.getIndexOfItem(item); return this.listBoxObject.getItemAtIndex(index); return this.listBoxObject.ensureIndexIsVisible(index); return this.ensureIndexIsVisible(this.listBoxObject.getIndexOfItem(element)); return this.listBoxObject.scrollToIndex(index); return this.listBoxObject.getNumberOfVisibleRows(); return this.listBoxObject.getIndexOfFirstVisibleRow(); return this.listBoxObject.getRowCount(); = 0 && i > maxTop; i--) { item = this.getItemAtIndex(i); if (item && !this._canUserSelect(item)) maxTop--; } if (newTop >= maxTop) newTop = maxTop; } if (newTop < 0) newTop = 0; this.scrollToIndex(newTop); return pageOffset; ]]>