/*
 * BEGIN FLOCK GPL
 *
 * Copyright Flock Inc. 2005-2008
 * http://flock.com
 *
 * This file may be used under the terms of the
 * GNU General Public License Version 2 or later (the "GPL"),
 * http://www.gnu.org/licenses/gpl.html
 *
 * 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.
 *
 * END FLOCK GPL
 */

#include "nsISupports.idl"
#include "nsISimpleEnumerator.idl"
#include "nsIURL.idl"

#include "flockIFeedItem.idl"
#include "flockIFeedFolderItem.idl"

interface flockIFeed;

[scriptable, uuid(d3437a00-1799-47fd-92ab-43b6a2e517ba)]
interface flockIFeedFolder : flockIFeedFolderItem {
    PRUint64 getItemCount();
    nsISimpleEnumerator getItems();

    flockIFeed subscribeURL(in AString url, in AString title);

    void subscribeFeed(in flockIFeed feed);
    void unsubscribeFeed(in flockIFeed feed);

    void subscribeFeedWithPosition(in flockIFeed feed,
                                   in flockIFeedFolderItem target,
                                   in long orientation);

    const long ORIENT_ABOVE  = -1;
    const long ORIENT_INSIDE = 0;
    const long ORIENT_BELOW  = 1;

    flockIFeedFolder addFolder(in AString title);
    void removeFolder(in flockIFeedFolder folder);

    flockIFeedFolder getChildFolder(in AString title);

    nsISimpleEnumerator getChildren();
};
