Revision control

Copy as Markdown

Other Tools

/* -*- 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<calIFileType> getFileTypes();
Array<calIItemBase> importFromStream(in nsIInputStream aStream);
};
[scriptable, uuid(18c75bb3-6309-4c33-903f-6055fec39d07)]
interface calIExporter : nsISupports
{
Array<calIFileType> 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<calIItemBase> aItems, in AString aTitle);
};