#ifndef HTML_HEADIMPL_H
#define HTML_HEADIMPL_H
#include "html/html_elementimpl.h"
#include "misc/loader_client.h"
#include "css/css_stylesheetimpl.h"
class KHTMLView;
namespace khtml {
class CachedCSSStyleSheet;
};
namespace DOM {
class DOMString;
class HTMLFormElementImpl;
class StyleSheetImpl;
class CSSStyleSheetImpl;
class HTMLBaseElementImpl : public HTMLElementImpl
{
public:
HTMLBaseElementImpl(DocumentPtr *doc);
~HTMLBaseElementImpl();
DOMString href() const { return m_href; }
DOMString target() const { return m_target; }
virtual Id id() const;
virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);
virtual void insertedIntoDocument();
virtual void removedFromDocument();
void process();
protected:
DOMString m_href;
DOMString m_target;
};
class HTMLLinkElementImpl : public khtml::CachedObjectClient, public HTMLElementImpl
{
public:
HTMLLinkElementImpl(DocumentPtr *doc);
~HTMLLinkElementImpl();
virtual Id id() const;
StyleSheetImpl* sheet() const { return m_sheet; }
virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);
void process();
virtual void insertedIntoDocument();
virtual void removedFromDocument();
virtual void setStyleSheet(const DOM::DOMString &url, const DOM::DOMString &sheet);
bool isLoading() const;
void sheetLoaded();
bool isAlternate() const { return m_disabledState == 0 && m_alternate; }
bool isDisabled() const { return m_disabledState == 2; }
bool isEnabledViaScript() const { return m_disabledState == 1; }
int disabledState() { return m_disabledState; }
void setDisabledState(bool _disabled);
virtual bool isURLAttribute(AttributeImpl *attr) const;
protected:
khtml::CachedCSSStyleSheet *m_cachedSheet;
CSSStyleSheetImpl *m_sheet;
DOMString m_url;
DOMString m_type;
QString m_media;
DOMString m_rel;
int m_disabledState; bool m_loading;
bool m_alternate;
QString m_data; };
class HTMLMetaElementImpl : public HTMLElementImpl
{
public:
HTMLMetaElementImpl(DocumentPtr *doc);
~HTMLMetaElementImpl();
virtual Id id() const;
virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);
virtual void insertedIntoDocument();
void process();
protected:
DOMString m_equiv;
DOMString m_content;
};
class HTMLScriptElementImpl : public HTMLElementImpl
{
public:
HTMLScriptElementImpl(DocumentPtr *doc);
~HTMLScriptElementImpl();
virtual Id id() const;
virtual bool isURLAttribute(AttributeImpl *attr) const;
};
class HTMLStyleElementImpl : public HTMLElementImpl
{
public:
HTMLStyleElementImpl(DocumentPtr *doc);
~HTMLStyleElementImpl();
virtual Id id() const;
StyleSheetImpl *sheet() const { return m_sheet; }
virtual void parseHTMLAttribute(HTMLAttributeImpl *attr);
virtual void insertedIntoDocument();
virtual void removedFromDocument();
virtual void childrenChanged();
bool isLoading() const;
void sheetLoaded();
protected:
CSSStyleSheetImpl *m_sheet;
bool m_loading;
DOMString m_type;
QString m_media;
};
class HTMLTitleElementImpl : public HTMLElementImpl
{
public:
HTMLTitleElementImpl(DocumentPtr *doc);
~HTMLTitleElementImpl();
virtual Id id() const;
virtual void insertedIntoDocument();
virtual void removedFromDocument();
virtual void childrenChanged();
protected:
DOMString m_title;
};
};
#endif