/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" #include "extIApplication.idl" interface nsIVariant; interface nsIURI; interface nsIDOMHTMLDocument; interface fuelIBookmarkFolder; interface fuelIBrowserTab; /** * Interface representing a collection of annotations associated * with a bookmark or bookmark folder. */ [scriptable, uuid(335c9292-91a1-4ca0-ad0b-07d5f63ed6cd)] interface fuelIAnnotations : nsISupports { /** * Array of the annotation names associated with the owning item */ readonly attribute nsIVariant names; /** * Determines if an annotation exists with the given name. * @param aName * The name of the annotation * @returns true if an annotation exists with the given name, * false otherwise. */ boolean has(in AString aName); /** * Gets the value of an annotation with the given name. * @param aName * The name of the annotation * @returns A variant containing the value of the annotation. Supports * string, boolean and number. */ nsIVariant get(in AString aName); /** * Sets the value of an annotation with the given name. * @param aName * The name of the annotation * @param aValue * The new value of the annotation. Supports string, boolean * and number * @param aExpiration * The expiration policy for the annotation. * See nsIAnnotationService. */ void set(in AString aName, in nsIVariant aValue, in int32_t aExpiration); /** * Removes the named annotation from the owner item. * @param aName * The name of annotation. */ void remove(in AString aName); }; /** * Interface representing a bookmark item. */ [scriptable, uuid(808585b6-7568-4b26-8c62-545221bf2b8c)] interface fuelIBookmark : nsISupports { /** * The id of the bookmark. */ readonly attribute long long id; /** * The title of the bookmark. */ attribute AString title; /** * The uri of the bookmark. */ attribute nsIURI uri; /** * The description of the bookmark. */ attribute AString description; /** * The keyword associated with the bookmark. */ attribute AString keyword; /** * The type of the bookmark. * values: "bookmark", "separator" */ readonly attribute AString type; /** * The parent folder of the bookmark. */ attribute fuelIBookmarkFolder parent; /** * The annotations object for the bookmark. */ readonly attribute fuelIAnnotations annotations; /** * The events object for the bookmark. * supports: "remove", "change", "visit", "move" */ readonly attribute extIEvents events; /** * Removes the item from the parent folder. Used to * delete a bookmark or separator */ void remove(); }; /** * Interface representing a bookmark folder. Folders * can hold bookmarks, separators and other folders. */ [scriptable, uuid(9f42fe20-52de-4a55-8632-a459c7716aa0)] interface fuelIBookmarkFolder : nsISupports { /** * The id of the folder. */ readonly attribute long long id; /** * The title of the folder. */ attribute AString title; /** * The description of the folder. */ attribute AString description; /** * The type of the folder. * values: "folder" */ readonly attribute AString type; /** * The parent folder of the folder. */ attribute fuelIBookmarkFolder parent; /** * The annotations object for the folder. */ readonly attribute fuelIAnnotations annotations; /** * The events object for the folder. * supports: "add", "addchild", "remove", "removechild", "change", "move" */ readonly attribute extIEvents events; /** * Array of all bookmarks, separators and folders contained * in this folder. */ readonly attribute nsIVariant children; /** * Adds a new child bookmark to this folder. * @param aTitle * The title of bookmark. * @param aURI * The uri of bookmark. */ fuelIBookmark addBookmark(in AString aTitle, in nsIURI aURI); /** * Adds a new child separator to this folder. */ fuelIBookmark addSeparator(); /** * Adds a new child folder to this folder. * @param aTitle * The title of folder. */ fuelIBookmarkFolder addFolder(in AString aTitle); /** * Removes the folder from the parent folder. */ void remove(); }; /** * Interface representing a container for bookmark roots. Roots * are the top level parents for the various types of bookmarks in the system. */ [scriptable, uuid(c9a80870-eb3c-11dc-95ff-0800200c9a66)] interface fuelIBookmarkRoots : nsISupports { /** * The folder for the 'bookmarks menu' root. */ readonly attribute fuelIBookmarkFolder menu; /** * The folder for the 'personal toolbar' root. */ readonly attribute fuelIBookmarkFolder toolbar; /** * The folder for the 'tags' root. */ readonly attribute fuelIBookmarkFolder tags; /** * The folder for the 'unfiled bookmarks' root. */ readonly attribute fuelIBookmarkFolder unfiled; }; /** * Interface representing a browser window. */ [scriptable, uuid(207edb28-eb5e-424e-a862-b0e97C8de866)] interface fuelIWindow : nsISupports { /** * A collection of browser tabs within the browser window. */ readonly attribute nsIVariant tabs; /** * The currently-active tab within the browser window. */ readonly attribute fuelIBrowserTab activeTab; /** * Open a new browser tab, pointing to the specified URI. * @param aURI * The uri to open the browser tab to */ fuelIBrowserTab open(in nsIURI aURI); /** * The events object for the browser window. * supports: "TabOpen", "TabClose", "TabMove", "TabSelect" */ readonly attribute extIEvents events; }; /** * Interface representing a browser tab. */ [scriptable, uuid(3073ceff-777c-41ce-9ace-ab37268147c1)] interface fuelIBrowserTab : nsISupports { /** * The current uri of this tab. */ readonly attribute nsIURI uri; /** * The current index of this tab in the browser window. */ readonly attribute int32_t index; /** * The browser window that is holding the tab. */ readonly attribute fuelIWindow window; /** * The content document of the browser tab. */ readonly attribute nsIDOMHTMLDocument document; /** * The events object for the browser tab. * supports: "load" */ readonly attribute extIEvents events; /** * Load a new URI into this browser tab. * @param aURI * The uri to load into the browser tab */ void load(in nsIURI aURI); /** * Give focus to this browser tab, and bring it to the front. */ void focus(); /** * Close the browser tab. This may not actually close the tab * as script may abort the close operation. */ void close(); /** * Moves this browser tab before another browser tab within the window. * @param aBefore * The tab before which the target tab will be moved */ void moveBefore(in fuelIBrowserTab aBefore); /** * Move this browser tab to the last tab within the window. */ void moveToEnd(); }; /** * Interface for managing and accessing the applications systems */ [scriptable, uuid(fe74cf80-aa2d-11db-abbd-0800200c9a66)] interface fuelIApplication : extIApplication { /** * The root bookmarks object for the application. * Contains all the bookmark roots in the system. */ readonly attribute fuelIBookmarkRoots bookmarks; /** * An array of browser windows within the application. */ readonly attribute nsIVariant windows; /** * The currently active browser window. */ readonly attribute fuelIWindow activeWindow; };