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
00026
00027
#ifndef _CSS_css_rule_h_
00028
#define _CSS_css_rule_h_
00029
00030
#include <dom/dom_string.h>
00031
#include <dom/css_stylesheet.h>
00032
#include <dom/css_value.h>
00033
00034
namespace DOM {
00035
00036
class CSSRuleImpl;
00037
00052 class KHTML_EXPORT CSSRule
00053 {
00054
public:
00055 CSSRule();
00056 CSSRule(
const CSSRule &other);
00057 CSSRule(CSSRuleImpl *impl);
00058
public:
00059
00060 CSSRule & operator = (
const CSSRule &other);
00061
00062 ~CSSRule();
00067 enum RuleType {
00068 UNKNOWN_RULE = 0,
00069 STYLE_RULE = 1,
00070 CHARSET_RULE = 2,
00071 IMPORT_RULE = 3,
00072 MEDIA_RULE = 4,
00073 FONT_FACE_RULE = 5,
00074 PAGE_RULE = 6,
00075 QUIRKS_RULE = 100
00076 };
00077
00085
unsigned short type() const;
00086
00092 DOM::
DOMString cssText() const;
00093
00111
void setCssText( const DOM::
DOMString & );
00112
00117
CSSStyleSheet parentStyleSheet() const;
00118
00126 CSSRule parentRule() const;
00127
00132 CSSRuleImpl *handle() const;
00133
bool isNull() const;
00134
00135 protected:
00136 CSSRuleImpl *impl;
00137
00138
void assignOther( const CSSRule &other, RuleType thisType );
00139 };
00140
00141 class CSSCharsetRuleImpl;
00142
00149 class KHTML_EXPORT
CSSCharsetRule : public CSSRule
00150 {
00151
public:
00152
CSSCharsetRule();
00153
CSSCharsetRule(
const CSSCharsetRule &other);
00154
CSSCharsetRule(
const CSSRule &other);
00155
CSSCharsetRule(CSSCharsetRuleImpl *impl);
00156
public:
00157
00158
CSSCharsetRule & operator = (
const CSSCharsetRule &other);
00159
CSSCharsetRule & operator = (
const CSSRule &other);
00160
00161 ~
CSSCharsetRule();
00162
00168
DOM::DOMString encoding()
const;
00169
00181
void setEncoding(
const DOM::DOMString & );
00182 };
00183
00184
00185
class CSSFontFaceRuleImpl;
00193 class KHTML_EXPORT CSSFontFaceRule :
public CSSRule
00194 {
00195
public:
00196 CSSFontFaceRule();
00197 CSSFontFaceRule(
const CSSFontFaceRule &other);
00198 CSSFontFaceRule(
const CSSRule &other);
00199 CSSFontFaceRule(CSSFontFaceRuleImpl *impl);
00200
public:
00201
00202 CSSFontFaceRule & operator = (
const CSSFontFaceRule &other);
00203 CSSFontFaceRule & operator = (
const CSSRule &other);
00204
00205 ~CSSFontFaceRule();
00206
00212
CSSStyleDeclaration style()
const;
00213 };
00214
00215
class CSSImportRuleImpl;
00223 class KHTML_EXPORT CSSImportRule :
public CSSRule
00224 {
00225
public:
00226 CSSImportRule();
00227 CSSImportRule(
const CSSImportRule &other);
00228 CSSImportRule(
const CSSRule &other);
00229 CSSImportRule(CSSImportRuleImpl *impl);
00230
public:
00231
00232 CSSImportRule & operator = (
const CSSImportRule &other);
00233 CSSImportRule & operator = (
const CSSRule &other);
00234
00235 ~CSSImportRule();
00236
00243
DOM::DOMString href()
const;
00244
00249
MediaList media()
const;
00250
00259
CSSStyleSheet styleSheet()
const;
00260 };
00261
00262
class CSSMediaRuleImpl;
00270 class KHTML_EXPORT CSSMediaRule :
public CSSRule
00271 {
00272
public:
00273 CSSMediaRule();
00274 CSSMediaRule(
const CSSMediaRule &other);
00275 CSSMediaRule(
const CSSRule &other);
00276 CSSMediaRule(CSSMediaRuleImpl *impl);
00277
public:
00278
00279 CSSMediaRule & operator = (
const CSSMediaRule &other);
00280 CSSMediaRule & operator = (
const CSSRule &other);
00281
00282 ~CSSMediaRule();
00283
00290
MediaList media()
const;
00291
00296
CSSRuleList cssRules()
const;
00297
00331
unsigned long insertRule (
const DOM::DOMString &rule,
unsigned long index );
00332
00349
void deleteRule (
unsigned long index );
00350 };
00351
00352
00353
class CSSPageRuleImpl;
00362
class KHTML_EXPORT CSSPageRule :
public CSSRule
00363 {
00364
public:
00365 CSSPageRule();
00366 CSSPageRule(
const CSSPageRule &other);
00367 CSSPageRule(
const CSSRule &other);
00368 CSSPageRule(CSSPageRuleImpl *impl);
00369
public:
00370
00371 CSSPageRule & operator = (
const CSSPageRule &other);
00372 CSSPageRule & operator = (
const CSSRule &other);
00373
00374 ~CSSPageRule();
00375
00381
DOM::DOMString selectorText() const;
00382
00394
void setSelectorText( const DOM::
DOMString & );
00395
00401
CSSStyleDeclaration style() const;
00402 };
00403
00404 class CSSStyleRuleImpl;
00411 class KHTML_EXPORT
CSSStyleRule : public CSSRule
00412 {
00413
public:
00414
CSSStyleRule();
00415
CSSStyleRule(
const CSSStyleRule &other);
00416
CSSStyleRule(
const CSSRule &other);
00417
CSSStyleRule(CSSStyleRuleImpl *impl);
00418
public:
00419
00420
CSSStyleRule & operator = (
const CSSStyleRule &other);
00421
CSSStyleRule & operator = (
const CSSRule &other);
00422
00423 ~
CSSStyleRule();
00424
00432
DOM::DOMString selectorText()
const;
00433
00445
void setSelectorText(
const DOM::DOMString & );
00446
00452
CSSStyleDeclaration style()
const;
00453 };
00454
00455
class CSSUnknownRuleImpl;
00461 class KHTML_EXPORT CSSUnknownRule :
public CSSRule
00462 {
00463
public:
00464 CSSUnknownRule();
00465 CSSUnknownRule(
const CSSUnknownRule &other);
00466 CSSUnknownRule(
const CSSRule &other);
00467 CSSUnknownRule(CSSUnknownRuleImpl *impl);
00468
public:
00469
00470 CSSUnknownRule & operator = (
const CSSUnknownRule &other);
00471 CSSUnknownRule & operator = (
const CSSRule &other);
00472
00473 ~CSSUnknownRule();
00474 };
00475
00476
00477
class CSSRuleListImpl;
00478
class StyleListImpl;
00484 class KHTML_EXPORT CSSRuleList
00485 {
00486
public:
00487 CSSRuleList();
00488 CSSRuleList(
const CSSRuleList &other);
00489 CSSRuleList(CSSRuleListImpl *i);
00490 CSSRuleList(StyleListImpl *i);
00491
public:
00492
00493 CSSRuleList & operator = (
const CSSRuleList &other);
00494
00495 ~CSSRuleList();
00496
00503
unsigned long length()
const;
00504
00517 CSSRule item (
unsigned long index );
00518
00523 CSSRuleListImpl *handle()
const;
00524
bool isNull()
const;
00525
00526
protected:
00527
00528 CSSRuleListImpl *impl;
00529 };
00530
00531
00532 }
00533
00534
#endif