/* -*- 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 nsIDOMNSDocumentStyle interface definition. * * The Initial Developer of the Original Code is * Boris Zbarsky * Portions created by the Initial Developer are Copyright (C) 2003 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either of 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 "domstubs.idl" #include "nsIDOMDocumentStyle.idl" /** * The nsIDOMNSDocumentStyle interface is an extension to the * nsIDOMDocumentStyle interface. This interface exposes more ways to interact * with style sheets in the Document Object Model. This interface is currently * very much experimental. * * NOTE: This interface represents the additions to nsIDOMDocumentStyle defined * by . * The comments here describe our implementation; if those comments don't match * that spec, file bugs. */ [scriptable, uuid(26311d10-7e24-4c7b-bb3d-17aad86f4d88)] interface nsIDOMNSDocumentStyle : nsIDOMDocumentStyle { /** * This attribute must return the preferred style sheet set as set by the * author. It is determined from the order of style sheet declarations and * the Default-Style HTTP headers, as eventually defined elsewhere in the Web * Apps 1.0 specification. If there is no preferred style sheet set, this * attribute must return the empty string. The case of this attribute must * exactly match the case given by the author where the preferred style sheet * is specified or implied. This attribute must never return null. */ readonly attribute DOMString preferredStyleSheetSet; /** * This attribute indicates which style sheet set is in use. This attribute * is live; changing the disabled attribute on style sheets directly will * change the value of this attribute. * * If all the sheets that are enabled and have a title have the same title * (by case-sensitive comparisons) then the value of this attribute must be * exactly equal to the title of the first enabled style sheet with a title * in the styleSheets list. Otherwise, if style sheets from different sets * are enabled, then the return value must be null (there is no way to * determine what the currently selected style sheet set is in those * conditions). Otherwise, either all style sheets that have a title are * disabled, or there are no alternate style sheets, and * selectedStyleSheetSet must return the empty string. * * Setting this attribute to the null value must have no effect. * * Setting this attribute to a non-null value must call * enableStyleSheetsForSet() with that value as the function's argument, and * set lastStyleSheetSet to that value. * * From the DOM's perspective, all views have the same * selectedStyleSheetSet. If a UA supports multiple views with different * selected alternate style sheets, then this attribute (and the StyleSheet * interface's disabled attribute) must return and set the value for the * default view. */ attribute DOMString selectedStyleSheetSet; /* * This property must initially have the value null. Its value changes when * the selectedStyleSheetSet attribute is set. */ readonly attribute DOMString lastStyleSheetSet; /** * This must return the live list of the currently available style sheet * sets. This list is constructed by enumerating all the style sheets for * this document available to the implementation, in the order they are * listed in the styleSheets attribute, adding the title of each style sheet * with a title to the list, avoiding duplicates by dropping titles that * match (case-sensitively) titles that have already been added to the * list. */ readonly attribute nsIDOMDOMStringList styleSheetSets; /** * Calling this method must change the disabled attribute on each StyleSheet * object with a title attribute with a length greater than 0 in the * styleSheets attribute, so that all those whose title matches the name * argument are enabled, and all others are disabled. Title matches must be * case-sensitive. Calling this method with the empty string disables all * alternate and preferred style sheets (but does not change the state of * persistent style sheets, that is those with no title attribute). * * Calling this method with a null value must have no effect. * * Style sheets that do not have a title are never affected by this * method. This method does not change the values of the lastStyleSheetSet or * preferredStyleSheetSet attributes. */ void enableStyleSheetsForSet(in DOMString name); };