⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 css_ruleimpl.cpp

📁 monqueror一个很具有参考价值的源玛
💻 CPP
字号:
/** * This file is part of the DOM implementation for KDE. * * (C) 1999 Lars Knoll (knoll@kde.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * * $Id: css_ruleimpl.cpp,v 1.2 2002/01/28 04:31:02 leon Exp $ */#include "render_interface.h"#include "css_ruleimpl.h"#include "css_rule.h"#include "css_stylesheet.h"#include "css_stylesheetimpl.h"#include "css_valueimpl.h"#include "cssparser.h"#include "dom_exception.h"#include "dom_string.h"#include "kdebug.h"using namespace DOM;#define DEBUG_BY_XHTANG 0CSSRuleImpl::CSSRuleImpl(StyleBaseImpl *parent)    : StyleListImpl(parent){    m_type = CSSRule::UNKNOWN_RULE;}CSSRuleImpl::~CSSRuleImpl(){}unsigned short CSSRuleImpl::type() const{    return m_type;}CSSStyleSheetImpl *CSSRuleImpl::parentStyleSheet() const{    if( !m_parent ) return 0;    if( m_parent->isCSSStyleSheet() ) return static_cast<CSSStyleSheetImpl *>(m_parent);    return 0;}CSSRuleImpl *CSSRuleImpl::parentRule() const{    if( !m_parent ) return 0;    if( m_parent->isRule() ) return static_cast<CSSRuleImpl *>(m_parent);    return 0;}DOM::DOMString CSSRuleImpl::cssText() const{    // ###    return 0;}void CSSRuleImpl::setCssText(DOM::DOMString /*str*/){    // ###}// ---------------------------------------------------------------------------CSSCharsetRuleImpl::CSSCharsetRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){    m_type = CSSRule::CHARSET_RULE;}CSSCharsetRuleImpl::~CSSCharsetRuleImpl(){}// ---------------------------------------------------------------------------CSSFontFaceRuleImpl::CSSFontFaceRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){    m_type = CSSRule::FONT_FACE_RULE;    m_style = 0;}CSSFontFaceRuleImpl::~CSSFontFaceRuleImpl(){    if(m_style) m_style->deref();}CSSStyleDeclarationImpl *CSSFontFaceRuleImpl::style() const{    return m_style;}// --------------------------------------------------------------------------CSSImportRuleImpl::CSSImportRuleImpl(StyleBaseImpl *parent, const DOM::DOMString &href,				     MediaListImpl *media)    : CSSRuleImpl(parent){    m_type = CSSRule::IMPORT_RULE;    m_lstMedia = media;    m_strHref = href;    m_styleSheet = 0;//    kdDebug( 6080 ) << "CSSImportRule: requesting sheet " << href.string() << " " << baseUrl().string() << endl;    khtml::MGDocLoader *docLoader = 0;    StyleBaseImpl *root = this;    while (root->parent())	root = root->parent();    if (root->isCSSStyleSheet())		docLoader = static_cast<CSSStyleSheetImpl*>(root)->docLoader();#if DEBUG_BY_XHTANG		fprintf(stderr,"CSSImportRuleImpl\n");#endif		#if 0    if (docLoader)	m_cachedSheet = docLoader->requestStyleSheet(href, baseUrl());/*    else	m_cachedSheet = khtml::Cache::requestStyleSheet(href, baseUrl(),false);*/    m_cachedSheet->ref(this);#endif		unsigned char u[256];	DOM::DOMString bu = baseUrl();	uncharURL((DOM::DOMString&)href,bu,u);    if (docLoader)		m_cachedSheet = docLoader->requestStyleSheet((DOM::DOMString&)href,u);#if 0	    else			m_cachedSheet = khtml::Cache::requestStyleSheet(href, baseUrl(),false);#endif		else		m_cachedSheet = NULL;    m_loading = true;}CSSImportRuleImpl::~CSSImportRuleImpl(){    if(m_lstMedia) m_lstMedia->deref();    if(m_styleSheet) m_styleSheet->deref();#if 0    m_cachedSheet->deref(this);#endif		m_cachedSheet->deref(this);}DOMString CSSImportRuleImpl::href() const{    return m_strHref;}MediaListImpl *CSSImportRuleImpl::media() const{    return m_lstMedia;}CSSStyleSheetImpl *CSSImportRuleImpl::styleSheet() const{    return m_styleSheet;}void CSSImportRuleImpl::setStyleSheet(const DOM::DOMString &url, const DOM::DOMString &sheet){//    kdDebug( 6080 ) << "CSSImportRule::setStyleSheet()" << endl;    m_styleSheet = new CSSStyleSheetImpl(this, url);    m_styleSheet->ref();    m_styleSheet->parseString(sheet);    m_loading = false;    checkLoaded();}bool CSSImportRuleImpl::isLoading(){    if(m_loading) return true;    if(m_styleSheet->isLoading()) return true;    return false;}// --------------------------------------------------------------------------CSSMediaRuleImpl::CSSMediaRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){    m_type = CSSRule::MEDIA_RULE;    m_lstMedia = 0;}CSSMediaRuleImpl::~CSSMediaRuleImpl(){    if(m_lstMedia) m_lstMedia->deref();}MediaListImpl *CSSMediaRuleImpl::media() const{    return m_lstMedia;}CSSRuleList CSSMediaRuleImpl::cssRules(){    return this;}unsigned long CSSMediaRuleImpl::insertRule( const DOMString &/*rule*/, unsigned long /*index*/ ){    // ###    return 0;}void CSSMediaRuleImpl::deleteRule( unsigned long /*index*/ ){    // ###}// ---------------------------------------------------------------------------CSSPageRuleImpl::CSSPageRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){    m_type = CSSRule::PAGE_RULE;    m_style = 0;}CSSPageRuleImpl::~CSSPageRuleImpl(){    if(m_style) m_style->deref();}CSSStyleDeclarationImpl *CSSPageRuleImpl::style() const{    return m_style;}// --------------------------------------------------------------------------CSSStyleRuleImpl::CSSStyleRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){    m_type = CSSRule::STYLE_RULE;    m_style = 0;    m_selector = 0;}CSSStyleRuleImpl::~CSSStyleRuleImpl(){    if(m_style) {	m_style->setParent( 0 );	m_style->deref();    }    delete m_selector;}CSSStyleDeclarationImpl *CSSStyleRuleImpl::style() const{    return m_style;}DOM::DOMString CSSStyleRuleImpl::selectorText() const{    // ###    return 0;}void CSSStyleRuleImpl::setSelectorText(DOM::DOMString /*str*/){    // ###}bool CSSStyleRuleImpl::parseString( const DOMString &/*string*/ ){    // ###    return false;}void CSSStyleRuleImpl::setSelector( QList<CSSSelector> *selector){    m_selector = selector;}void CSSStyleRuleImpl::setDeclaration( CSSStyleDeclarationImpl *style){    if(m_style) m_style->deref();    m_style = style;    if(m_style) m_style->ref();}void CSSStyleRuleImpl::setNonCSSHints(){    CSSSelector *s = m_selector->first();    while ( s ) {	s->nonCSSHint = true;	s = m_selector->next();    }}// --------------------------------------------------------------------------CSSUnknownRuleImpl::CSSUnknownRuleImpl(StyleBaseImpl *parent)    : CSSRuleImpl(parent){}CSSUnknownRuleImpl::~CSSUnknownRuleImpl(){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -