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

📄 render_cachecss.cpp

📁 monqueror一个很具有参考价值的源玛
💻 CPP
字号:
#include <assert.h>#include "string.h"#include "render_interface.h"#include "../css/css_valueimpl.h"#include "html_headimpl.h"#include "render_cachecss.h"#include "render_loadcss.h"#define DEBUG_BY_XHTANG 0using namespace DOM;using namespace khtml;MGCachedCSSStyleSheet::MGCachedCSSStyleSheet(DOM::DOMString &murl){	m_sheet = 0;	m_loadOk = 0;	m_url = murl;}				MGCachedCSSStyleSheet::MGCachedCSSStyleSheet(DOM::DOMString &murl,unsigned char *url){	m_sheet = 0;	m_loadOk = 0;	m_url = murl;	LoadDataFromTempFile((char*)url);#if 0    // It's css we want.    setAccept( QString::fromLatin1("text/css") );    // load the file    Cache::loader()->load(this, baseURL, false);    loading = true;#endif}MGCachedCSSStyleSheet::~MGCachedCSSStyleSheet(){}void MGCachedCSSStyleSheet::checkNotify(){	if(!m_loadOk)return;		DOM::CSSImportRuleImpl *c;    for ( c = m_clients.first(); c != 0; c = m_clients.next() ){        c->setStyleSheet( m_url, m_sheet );	}	DOM::HTMLLinkElementImpl *cLink;	for ( cLink = m_clientsLink.first(); cLink != 0; cLink = m_clientsLink.next() ){        cLink->setStyleSheet( m_url, m_sheet );	}}void MGCachedCSSStyleSheet::error( int /*err*/, const char */*text*/ ){    m_loadOk = 1;//false;    checkNotify();}bool MGCachedCSSStyleSheet::LoadDataFromTempFile( char TempName[]){	FILE* fp;	int len;	char buf[1025];	fp = fopen(TempName, "r" );	if(fp==NULL) return 0;	m_sheet = (const char*)"";	while(1){		len = fread( buf, 1, 1024, fp );		if(len<0)break;		buf[len] = 0;		m_sheet +=(const char*)buf;		if(len<1024)break;	}	fclose( fp );	m_loadOk = 1;	checkNotify();		return 1;}void MGCachedCSSStyleSheet::ref(DOM::CSSImportRuleImpl *c){    // make sure we don't get it twice...	m_clients.remove(c);	m_clients.append(c);	m_ref++;     if(m_loadOk) c->setStyleSheet( m_url, m_sheet );}void MGCachedCSSStyleSheet::deref(DOM::CSSImportRuleImpl *c){ 	m_clients.remove(c);	m_ref--; 	if( m_ref <= 0 ) 		delete this; }		void MGCachedCSSStyleSheet::ref(DOM::HTMLLinkElementImpl *c,bool b){    // make sure we don't get it twice...	m_clientsLink.remove(c);	m_clientsLink.append(c);	m_ref++; 	if(m_loadOk) c->setStyleSheet( m_url, m_sheet );}void MGCachedCSSStyleSheet::deref(DOM::HTMLLinkElementImpl *c,bool b){ 	m_clientsLink.remove(c);	m_ref--; 	if( m_ref <= 0 ) 		delete this; } 

⌨️ 快捷键说明

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