layout/style/nsIStyleSheet.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 /*
     7  * interface representing a collection of style data attached to a
     8  * document, which may be or be combined into a style rule processor
     9  */
    11 #ifndef nsIStyleSheet_h___
    12 #define nsIStyleSheet_h___
    14 #include "mozilla/MemoryReporting.h"
    15 #include <stdio.h>
    16 #include "nsISupports.h"
    18 class nsString;
    19 class nsIURI;
    20 class nsIDocument;
    22 // IID for the nsIStyleSheet interface
    23 // 3eb34a60-04bd-41d9-9f60-882694e61c38
    24 #define NS_ISTYLE_SHEET_IID     \
    25 { 0x3eb34a60, 0x04bd, 0x41d9,   \
    26  { 0x9f, 0x60, 0x88, 0x26, 0x94, 0xe6, 0x1c, 0x38 } }
    28 /**
    29  * A style sheet is a thing associated with a document that has style
    30  * rules.  Those style rules can be reached in one of two ways, depending
    31  * on which level of the nsStyleSet it is in:
    32  *   1) It can be |QueryInterface|d to nsIStyleRuleProcessor
    33  *   2) It can be |QueryInterface|d to nsCSSStyleSheet, with which the
    34  *      |nsStyleSet| uses an |nsCSSRuleProcessor| to access the rules.
    35  */
    36 class nsIStyleSheet : public nsISupports {
    37 public:
    38   NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISTYLE_SHEET_IID)
    40   // basic style sheet data
    41   virtual nsIURI* GetSheetURI() const = 0;
    42   virtual nsIURI* GetBaseURI() const = 0;
    43   virtual void GetTitle(nsString& aTitle) const = 0;
    44   virtual void GetType(nsString& aType) const = 0;
    45   virtual bool HasRules() const = 0;
    47   /**
    48    * Whether the sheet is applicable.  A sheet that is not applicable
    49    * should never be inserted into a style set.  A sheet may not be
    50    * applicable for a variety of reasons including being disabled and
    51    * being incomplete.
    52    *
    53    */
    54   virtual bool IsApplicable() const = 0;
    56   /**
    57    * Set the stylesheet to be enabled.  This may or may not make it
    58    * applicable.  Note that this WILL inform the sheet's document of
    59    * its new applicable state if the state changes but WILL NOT call
    60    * BeginUpdate() or EndUpdate() on the document -- calling those is
    61    * the caller's responsibility.  This allows use of SetEnabled when
    62    * batched updates are desired.  If you want updates handled for
    63    * you, see nsIDOMStyleSheet::SetDisabled().
    64    */
    65   virtual void SetEnabled(bool aEnabled) = 0;
    67   /**
    68    * Whether the sheet is complete.
    69    */
    70   virtual bool IsComplete() const = 0;
    71   virtual void SetComplete() = 0;
    73   // style sheet owner info
    74   virtual nsIStyleSheet* GetParentSheet() const = 0;  // may be null
    75   virtual nsIDocument* GetOwningDocument() const = 0; // may be null
    76   virtual void SetOwningDocument(nsIDocument* aDocument) = 0;
    78 #ifdef DEBUG
    79   virtual void List(FILE* out = stdout, int32_t aIndent = 0) const = 0;
    80 #endif
    82   virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const = 0;
    83 };
    85 NS_DEFINE_STATIC_IID_ACCESSOR(nsIStyleSheet, NS_ISTYLE_SHEET_IID)
    87 #endif /* nsIStyleSheet_h___ */

mercurial