зеркало из https://github.com/mozilla/pjs.git
115 строки
5.0 KiB
Plaintext
115 строки
5.0 KiB
Plaintext
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||
|
/* ***** 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 Places.
|
||
|
*
|
||
|
* The Initial Developer of the Original Code is Google Inc.
|
||
|
* Portions created by the Initial Developer are Copyright (C) 2005
|
||
|
* the Initial Developer. All Rights Reserved.
|
||
|
*
|
||
|
* Contributor(s):
|
||
|
* Annie Sullivan <annie.sullivan@gmail.com> (original author)
|
||
|
* Asaf Romano <mano@mozilla.com>
|
||
|
*
|
||
|
* 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 ***** */
|
||
|
|
||
|
#include "nsISupports.idl"
|
||
|
|
||
|
interface nsIURI;
|
||
|
interface nsINavHistoryContainerResultNode;
|
||
|
interface nsINavHistoryQueryOptions;
|
||
|
|
||
|
/**
|
||
|
* The dynamic container interface provides a base class for services that want
|
||
|
* to provide containers for temporary contents.
|
||
|
*
|
||
|
* The service can fill result nodes directly into the container when it is
|
||
|
* being opened. It can use the property bag on every result node to store data
|
||
|
* associated with each item, such as full path on disk. It would create
|
||
|
* additional containers for each container, registered to its service.
|
||
|
*
|
||
|
* See also createDynamicContainer in nsINavBookmarksService.
|
||
|
*/
|
||
|
|
||
|
[scriptable, uuid(7e85d97b-4109-4ea7-afd8-bc2cd3840d70)]
|
||
|
interface nsIDynamicContainer : nsISupports
|
||
|
{
|
||
|
/**
|
||
|
* Called when the given container node is about to be populated so that the
|
||
|
* service can populate the container if necessary.
|
||
|
*
|
||
|
* @param aContainer
|
||
|
* The container node for the container being opened. Note that all
|
||
|
* result nodes implement a property bag if you need to store state.
|
||
|
* @param aOptions
|
||
|
* The options used to generate this query. Containers should follow
|
||
|
* these when possible, for example, whether to expand queries, etc.
|
||
|
* Implementations should use this when possible if adding query and
|
||
|
* folder nodes to the container. DO NOT MODIFY THIS VALUE.
|
||
|
*/
|
||
|
void onContainerNodeOpening(in nsINavHistoryContainerResultNode aContainer,
|
||
|
in nsINavHistoryQueryOptions aOptions);
|
||
|
|
||
|
/**
|
||
|
* Called when the given container has just been collapsed so that the
|
||
|
* service can do any necessary cleanup. This is NOT guaranteed to get
|
||
|
* called. In particular, if the query just goes away, you will not get this
|
||
|
* call. This only happens when the container itself goes from the open state
|
||
|
* to the closed state. A service with large numbers of dynamically populated
|
||
|
* items might use this to do some cleanup so those items don't hang around
|
||
|
*
|
||
|
* @param aContainer
|
||
|
* The container node of the container being closed. The service need
|
||
|
* not worry about removing any created nodes, they will be
|
||
|
* automatically removed when this call completes.
|
||
|
*/
|
||
|
void onContainerNodeClosed(in nsINavHistoryContainerResultNode aContainer);
|
||
|
|
||
|
/**
|
||
|
* Called when the given container is about to be deleted from the bookmarks
|
||
|
* table, so that the service can do any necessary cleanup.
|
||
|
* Called BEFORE the container is deleted, so that the service
|
||
|
* can still reference it.
|
||
|
* @param aItemId
|
||
|
* The item-id of the container item.
|
||
|
*/
|
||
|
void onContainerRemoving(in long long aItemId);
|
||
|
|
||
|
/**
|
||
|
* Called when the given container has just been moved, in case
|
||
|
* the service needs to do any bookkeeping.
|
||
|
* Called AFTER the container has been moved.
|
||
|
* @param aItemId
|
||
|
* The item-id of the container item.
|
||
|
* @param aNewParent
|
||
|
* The item of the new parent folder for the container.
|
||
|
* @param aNewIndex
|
||
|
* The index the container will be inserted at, or -1 for append.
|
||
|
*/
|
||
|
void onContainerMoved(in long long aItemId,
|
||
|
in long long aNewParent, in long aNewIndex);
|
||
|
};
|