/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * * The contents of this file are subject to the Netscape 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/NPL/ * * 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.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "nsISupports.idl" #include "nsIRDFCompositeDataSource.idl" #include "nsIRDFResource.idl" %{C++ class nsRDFSortState; %} [ptr] native nsRDFSortState(nsRDFSortState); interface nsIContent; interface nsIDOMNode; /** * A service used to sort the contents of a XUL widget. */ [scriptable, uuid(BFD05261-834C-11d2-8EAC-00805F29F371)] interface nsIXULSortService : nsISupports { /** * * Sort the contents of the widget containing aNode * using aSortResource as the comparison key, and * aSortDirection as the direction. * * @param aNode A node in the XUL widget whose children are to be * sorted. Sort will traverse upwards to find the * root node at which to begin the actualy sorting. For optimal * results, pass in the root of the widget. * * @param aSortResource The RDF resource to be used as * the comparison key. * * @param aSortDirection May be either natural to return * the contents to their natural (unsorted) order, * ascending to sort the contents in ascending order, or * descending to sort the contents in descending order. */ void Sort(in nsIDOMNode aNode, in string aSortResource, in string aSortDirection); /** * Used internally for insertion sorting. */ [noscript] void InsertContainerNode(in nsIRDFCompositeDataSource db, in nsRDFSortState sortStatePtr, in nsIContent root, in nsIContent trueParent, in nsIContent container, in nsIContent node, in boolean aNotify); }; %{C++ extern nsresult NS_NewXULSortService(nsIXULSortService **result); %}