/* -*- Mode: IDL; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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" interface calIItemBase; interface nsIInputStream; interface nsIOutputStream; [scriptable, uuid(efef8333-e995-4f45-bdf7-bfcabbd9793e)] interface calIFileType : nsISupports { /** * The default extension that should be associated * with files of this type. */ readonly attribute AString defaultExtension; /** * The extension filter to use in the filepicker's filter list. * Separate multiple extensions with semicolon and space. * For example "*.html; *.htm". */ readonly attribute AString extensionFilter; /** * The description to show to the user in the filter list. */ readonly attribute AString description; }; [scriptable, uuid(dbe262ca-d6c6-4691-8d46-e7f6bbe632ec)] interface calIImporter : nsISupports { Array getFileTypes(); Array importFromStream(in nsIInputStream aStream); }; [scriptable, uuid(18c75bb3-6309-4c33-903f-6055fec39d07)] interface calIExporter : nsISupports { Array getFileTypes(); /** * Export the items into the stream * * @param aStream the stream to put the data into * @param aItems an array of items to be exported * @param aTitle a title the exporter can choose to use */ void exportToStream(in nsIOutputStream aStream, in Array aItems, in AString aTitle); };