diff -r 000000000000 -r 6474c204b198 editor/idl/nsIEditorStyleSheets.idl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/editor/idl/nsIEditorStyleSheets.idl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 2; 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" + +%{C++ +class nsCSSStyleSheet; +%} + +[ptr] native nsCSSStyleSheet(nsCSSStyleSheet); + +[scriptable, uuid(4805e682-49b9-11d3-9ce4-ed60bd6cb5bc)] + +interface nsIEditorStyleSheets : nsISupports +{ + /** Load and apply the style sheet, specified by aURL, to the + * editor's document, replacing the last style sheet added (if any). + * This is always asynchronous, and may cause network I/O. + * + * @param aURL The style sheet to be loaded and applied. + */ + void replaceStyleSheet(in AString aURL); + + /** Add the given style sheet to the editor's document, + * on top of any that are already there. + * This is always asynchronous, and may cause network I/O. + * + * @param aURL The style sheet to be loaded and applied. + */ + void addStyleSheet(in AString aURL); + + /** Load and apply the override style sheet, specified by aURL, to the + * editor's document, replacing the last override style sheet added (if any). + * This is always synchronous, so aURL should be a local file with only + * local @imports. This action is not undoable. It is not intended for + * "user" style sheets, only for editor developers to add sheets to change + * display behavior for editing (like showing special cursors) that will + * not be affected by loading "document" style sheets with addStyleSheet or + * especially replaceStyleSheet. + * + * @param aURL The style sheet to be loaded and applied. + */ + void replaceOverrideStyleSheet(in AString aURL); + + /** Load and apply an override style sheet, specified by aURL, to + * the editor's document, on top of any that are already there. + * This is always synchronous, so the same caveats about local files and no + * non-local @import as replaceOverrideStyleSheet apply here, too. + * + * @param aURL The style sheet to be loaded and applied. + */ + void addOverrideStyleSheet(in AString aURL); + + /** Remove the given style sheet from the editor's document + * This is always synchronous + * + * @param aURL The style sheet to be removed + */ + void removeStyleSheet(in AString aURL); + + /** Remove the given override style sheet from the editor's document + * This is always synchronous + * + * @param aURL The style sheet to be removed. + */ + void removeOverrideStyleSheet(in AString aURL); + + /** Enable or disable the given style sheet from the editor's document + * This is always synchronous + * + * @param aURL The style sheet to be enabled or disabled + * @param aEnable true to enable, or false to disable the style sheet + */ + void enableStyleSheet(in AString aURL, in boolean aEnable); + + /** Get the nsCSSStyleSheet associated with the given URL. + * + * @param aURL The style sheet's URL + * @return the style sheet + */ + [noscript] nsCSSStyleSheet getStyleSheetForURL(in AString aURL); + + /** Get the URL associated with the given nsCSSStyleSheet. + * + * @param aStyleSheet The style sheet + * @return the style sheet's URL + */ + [noscript] AString getURLForStyleSheet(in nsCSSStyleSheet aStyleSheet); +};