css_ruleimpl.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CSS_css_ruleimpl_h_
00026 #define _CSS_css_ruleimpl_h_
00027
00028 #include "dom/dom_string.h"
00029 #include "dom/css_rule.h"
00030 #include "css/css_base.h"
00031 #include "misc/loader_client.h"
00032 #include "misc/shared.h"
00033
00034 namespace khtml {
00035 class CachedCSSStyleSheet;
00036 }
00037
00038 namespace DOM {
00039
00040 class CSSRule;
00041 class CSSStyleSheet;
00042 class CSSStyleSheetImpl;
00043 class CSSStyleDeclarationImpl;
00044 class MediaListImpl;
00045
00046 class CSSRuleImpl : public StyleBaseImpl
00047 {
00048 public:
00049 CSSRuleImpl(StyleBaseImpl *parent)
00050 : StyleBaseImpl(parent), m_type(CSSRule::UNKNOWN_RULE) {}
00051
00052 virtual bool isRule() const { return true; }
00053 unsigned short type() const { return m_type; }
00054
00055 CSSStyleSheetImpl *parentStyleSheet() const;
00056 CSSRuleImpl *parentRule() const;
00057
00058 DOM::DOMString cssText() const;
00059 void setCssText(DOM::DOMString str);
00060 virtual void init() {}
00061
00062 protected:
00063 CSSRule::RuleType m_type;
00064 };
00065
00066
00067 class CSSCharsetRuleImpl : public CSSRuleImpl
00068 {
00069 public:
00070 CSSCharsetRuleImpl(StyleBaseImpl *parent)
00071 : CSSRuleImpl(parent) { m_type = CSSRule::CHARSET_RULE; }
00072
00073 virtual bool isCharsetRule() const { return true; }
00074
00075 DOMString encoding() const { return m_encoding; }
00076 void setEncoding(DOMString _encoding) { m_encoding = _encoding; }
00077
00078 protected:
00079 DOMString m_encoding;
00080 };
00081
00082
00083 class CSSFontFaceRuleImpl : public CSSRuleImpl
00084 {
00085 public:
00086 CSSFontFaceRuleImpl(StyleBaseImpl *parent);
00087
00088 virtual ~CSSFontFaceRuleImpl();
00089
00090 CSSStyleDeclarationImpl *style() const { return m_style; }
00091
00092 virtual bool isFontFaceRule() const { return true; }
00093
00094 protected:
00095 CSSStyleDeclarationImpl *m_style;
00096 };
00097
00098
00099 class CSSImportRuleImpl : public khtml::CachedObjectClient, public CSSRuleImpl
00100 {
00101 public:
00102 CSSImportRuleImpl( StyleBaseImpl *parent, const DOM::DOMString &href,
00103 const DOM::DOMString &media );
00104 CSSImportRuleImpl( StyleBaseImpl *parent, const DOM::DOMString &href,
00105 MediaListImpl *media );
00106
00107 virtual ~CSSImportRuleImpl();
00108
00109 DOM::DOMString href() const { return m_strHref; }
00110 MediaListImpl *media() const { return m_lstMedia; }
00111 CSSStyleSheetImpl *styleSheet() const { return m_styleSheet; }
00112
00113 virtual bool isImportRule() const { return true; }
00114
00115
00116 virtual void setStyleSheet(const DOM::DOMString &url, const DOM::DOMString &sheet);
00117 virtual void error(int err, const QString &text);
00118
00119 bool isLoading();
00120 virtual void init();
00121
00122 protected:
00123 DOMString m_strHref;
00124 MediaListImpl *m_lstMedia;
00125 CSSStyleSheetImpl *m_styleSheet;
00126 khtml::CachedCSSStyleSheet *m_cachedSheet;
00127 bool m_loading;
00128 bool m_done;
00129 };
00130
00131 class MediaList;
00132
00133 class CSSRuleListImpl : public khtml::Shared<CSSRuleListImpl>
00134 {
00135 public:
00136 CSSRuleListImpl() {}
00137
00138 ~CSSRuleListImpl();
00139
00140 unsigned long length() const { return m_lstCSSRules.count(); }
00141 CSSRuleImpl *item ( unsigned long index ) { return m_lstCSSRules.at( index ); }
00142
00143
00144
00145 unsigned long insertRule ( CSSRuleImpl *rule, unsigned long index );
00146 void deleteRule ( unsigned long index );
00147
00148 void append( CSSRuleImpl *rule ) { m_lstCSSRules.append( rule ); }
00149 protected:
00150 QPtrList<CSSRuleImpl> m_lstCSSRules;
00151 };
00152
00153 class CSSMediaRuleImpl : public CSSRuleImpl
00154 {
00155 public:
00156 CSSMediaRuleImpl( StyleBaseImpl *parent );
00157 CSSMediaRuleImpl( StyleBaseImpl *parent, const DOM::DOMString &media );
00158 CSSMediaRuleImpl( StyleBaseImpl *parent, MediaListImpl *mediaList, CSSRuleListImpl *ruleList );
00159
00160 virtual ~CSSMediaRuleImpl();
00161
00162 MediaListImpl *media() const { return m_lstMedia; }
00163 CSSRuleListImpl *cssRules() { return m_lstCSSRules; }
00164
00165 unsigned long insertRule ( const DOM::DOMString &rule, unsigned long index );
00166 void deleteRule ( unsigned long index ) { m_lstCSSRules->deleteRule( index ); }
00167
00168 virtual bool isMediaRule() const { return true; }
00169
00170
00171 unsigned long append( CSSRuleImpl *rule );
00172 protected:
00173 MediaListImpl *m_lstMedia;
00174 CSSRuleListImpl *m_lstCSSRules;
00175 };
00176
00177
00178 class CSSPageRuleImpl : public CSSRuleImpl
00179 {
00180 public:
00181 CSSPageRuleImpl(StyleBaseImpl *parent);
00182
00183 virtual ~CSSPageRuleImpl();
00184
00185 CSSStyleDeclarationImpl *style() const { return m_style; }
00186
00187 virtual bool isPageRule() const { return true; }
00188
00189 DOM::DOMString selectorText() const;
00190 void setSelectorText(DOM::DOMString str);
00191
00192 protected:
00193 CSSStyleDeclarationImpl *m_style;
00194 };
00195
00196
00197 class CSSStyleRuleImpl : public CSSRuleImpl
00198 {
00199 public:
00200 CSSStyleRuleImpl(StyleBaseImpl *parent);
00201
00202 virtual ~CSSStyleRuleImpl();
00203
00204 CSSStyleDeclarationImpl *style() const { return m_style; }
00205
00206 virtual bool isStyleRule() const { return true; }
00207
00208 DOM::DOMString selectorText() const;
00209 void setSelectorText(DOM::DOMString str);
00210
00211 virtual bool parseString( const DOMString &string, bool = false );
00212
00213 void setSelector( QPtrList<CSSSelector> *selector) { m_selector = selector; }
00214 void setDeclaration( CSSStyleDeclarationImpl *style);
00215
00216 QPtrList<CSSSelector> *selector() { return m_selector; }
00217 CSSStyleDeclarationImpl *declaration() { return m_style; }
00218
00219 void setNonCSSHints();
00220
00221 protected:
00222 CSSStyleDeclarationImpl *m_style;
00223 QPtrList<CSSSelector> *m_selector;
00224 };
00225
00226
00227 class CSSUnknownRuleImpl : public CSSRuleImpl
00228 {
00229 public:
00230 CSSUnknownRuleImpl(StyleBaseImpl *parent) : CSSRuleImpl(parent) {}
00231
00232 virtual bool isUnknownRule() const { return true; }
00233 };
00234
00235
00236 }
00237
00238 #endif
This file is part of the documentation for khtml Library Version 3.2.3.