/*
 * BEGIN FLOCK GPL
 *
 * Copyright Flock Inc. 2005-2009
 * 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 "flockIFeedFolderItem.idl"

interface nsISimpleEnumerator;

interface flockIFeed;
interface flockIFeedItem;

[scriptable, uuid(98ca920a-eb20-49c9-8e4d-8c56c8ec2141)]
interface flockIFeedFolder : flockIFeedFolderItem {
  flockIFeed subscribeURL(in AString aURL, in AString aTitle);

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

  void subscribeFeedWithPosition(in flockIFeed aFeed,
                                 in flockIFeedFolderItem aTarget,
                                 in long aOrientation);

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

  flockIFeedFolder addFolder(in AString aTitle);
  void removeFolder(in flockIFeedFolder aFolder);

  flockIFeedFolder getChildFolder(in AString aTitle);

  nsISimpleEnumerator getChildren();
};
