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

📄 css_valueimpl.h

📁 将konqueror浏览器移植到ARM9 2410中
💻 H
字号:
/** * 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_valueimpl.h,v 1.24 2001/07/29 16:12:45 knoll Exp $ */#ifndef _CSS_css_valueimpl_h_#define _CSS_css_valueimpl_h_#include <css_value.h>#include "dom_string.h"#include "cssparser.h"#include "misc/loader_client.h"#include <qintdict.h>namespace khtml {    class CachedImage;    class RenderStyle;};namespace DOM {class CSSRuleImpl;class CSSValueImpl;class NodeImpl;class CounterImpl;class CSSStyleDeclarationImpl : public StyleBaseImpl{public:    CSSStyleDeclarationImpl(CSSRuleImpl *parentRule);    CSSStyleDeclarationImpl(CSSRuleImpl *parentRule, QList<CSSProperty> *lstValues);    virtual ~CSSStyleDeclarationImpl();    unsigned long length() const;    CSSRuleImpl *parentRule() const;    DOM::DOMString getPropertyValue ( const DOM::DOMString &propertyName );    DOM::DOMString getPropertyValue ( int id );    CSSValueImpl *getPropertyCSSValue ( const DOM::DOMString &propertyName );    bool removeProperty( int propertyID, bool onlyNonCSSHints );    DOM::DOMString removeProperty ( const DOM::DOMString &propertyName );    DOM::DOMString removeProperty ( int propertyId );    DOM::DOMString getPropertyPriority ( const DOM::DOMString &propertyName );    void setProperty ( const DOM::DOMString &propertyName, const DOM::DOMString &value,		       const DOM::DOMString &priority );    void setProperty( const DOMString &propName, const DOMString &value, bool important, bool nonCSSHint);    void setProperty ( int propertyId, const DOM::DOMString &value, bool important = false, bool nonCSSHint = false);    void setProperty ( int propertyId, int value, bool important = false, bool nonCSSHint = false);    // this treats integers as pixels!    // needed for conversion of html attributes    void setLengthProperty(int id, const DOM::DOMString &value, bool important, bool nonCSSHint = true);    // add a whole, unparsed property    void setProperty ( const DOMString &propertyString);    DOM::DOMString item ( unsigned long index );    DOM::DOMString cssText() const;    void setCssText(DOM::DOMString str);    virtual bool isStyleDeclaration() { return true; }    virtual bool parseString( const DOMString &string, bool = false );    CSSValueImpl *getPropertyCSSValue( int propertyID );    bool getPropertyPriority( int propertyID );    QList<CSSProperty> *values() { return m_lstValues; }    void setNode(NodeImpl *_node) { m_node = _node; }protected:    QList<CSSProperty> *m_lstValues;    NodeImpl *m_node;};class CSSValueImpl : public StyleBaseImpl{public:    CSSValueImpl();    virtual ~CSSValueImpl();    virtual unsigned short valueType() const = 0;    virtual unsigned short cssValueType() { return valueType(); }    virtual DOM::DOMString cssText() const;    void setCssText(DOM::DOMString str);    virtual bool isValue() { return true; }};class CSSInheritedValueImpl : public CSSValueImpl{public:    CSSInheritedValueImpl() : CSSValueImpl() {}    virtual ~CSSInheritedValueImpl() {}    virtual unsigned short valueType() const { return CSSValue::CSS_INHERIT; }    virtual DOM::DOMString cssText() const;};class CSSValueListImpl : public CSSValueImpl{public:    CSSValueListImpl();    virtual ~CSSValueListImpl();    unsigned long length() const { return m_values.count(); }    CSSValueImpl *item ( unsigned long index ) { return m_values.at(index); }    virtual bool isValueList() { return true; }    virtual unsigned short valueType() const;    void append(CSSValueImpl *val);    virtual DOM::DOMString cssText() const;protected:    QList<CSSValueImpl> m_values;};class Counter;class RGBColor;class Rect;class CSSPrimitiveValueImpl : public CSSValueImpl{public:    CSSPrimitiveValueImpl();    CSSPrimitiveValueImpl(int ident);    CSSPrimitiveValueImpl(float num, CSSPrimitiveValue::UnitTypes type);    CSSPrimitiveValueImpl(const DOMString &str, CSSPrimitiveValue::UnitTypes type);    CSSPrimitiveValueImpl(const Counter &c);    CSSPrimitiveValueImpl( RectImpl *r);    CSSPrimitiveValueImpl(const RGBColor &rgb);    CSSPrimitiveValueImpl(const QColor &color);    virtual ~CSSPrimitiveValueImpl();    void cleanup();        unsigned short primitiveType() const;    // use with care!!!    void setPrimitiveType(unsigned short type) { m_type = type; }    void setFloatValue ( unsigned short unitType, float floatValue, int &exceptioncode );    float getFloatValue ( unsigned short unitType);    void setStringValue ( unsigned short stringType, const DOM::DOMString &stringValue, int &exceptioncode );    DOM::DOMStringImpl *getStringValue (  );    CounterImpl *getCounterValue (  );    RectImpl *getRectValue (  );    RGBColor *getRGBColorValue (  );    virtual bool isPrimitiveValue() { return true; }    virtual unsigned short valueType() const;    int getIdent();    virtual bool parseString( const DOMString &string, bool = false);    virtual DOM::DOMString cssText() const;    /*     * computes a length in pixels out of the given CSSValue. Need the RenderStyle to get     * the fontinfo in case val is defined in em or ex.     *     * The metrics have to be a bit different for screen and printer output.     * For screen output we assume 1 inch == 72 px, for printer we assume 300 dpi     *     * this is screen/printer dependent, so we probably need a config option for this,     * and some tool to calibrate.     */    int computeLength(khtml::RenderStyle *style, DOM::DocumentImpl *doc );    float computeLengthFloat(khtml::RenderStyle *style, DOM::DocumentImpl *doc );protected:    int m_type;    union {	int ident;	float num;	DOM::DOMStringImpl *string;	CounterImpl *counter;	RectImpl *rect;	RGBColor *rgbcolor;    } m_value;};class CounterImpl : public DomShared {public:    CounterImpl() { m_identifier = 0; m_listStyle = 0; m_separator = 0; }    DOMString identifier() const { return m_identifier; }    DOMString listStyle() const { return m_listStyle; }    DOMString separator() const { return m_separator; }    DOMString m_identifier;    DOMString m_listStyle;    DOMString m_separator;};class RectImpl : public DomShared {public:    RectImpl();    ~RectImpl();    CSSPrimitiveValueImpl *top() { return m_top; }    CSSPrimitiveValueImpl *right() { return m_right; }    CSSPrimitiveValueImpl *bottom() { return m_bottom; }    CSSPrimitiveValueImpl *left() { return m_left; }    void setTop( CSSPrimitiveValueImpl *top );    void setRight( CSSPrimitiveValueImpl *right );    void setBottom( CSSPrimitiveValueImpl *bottom );    void setLeft( CSSPrimitiveValueImpl *left );protected:    CSSPrimitiveValueImpl *m_top;    CSSPrimitiveValueImpl *m_right;    CSSPrimitiveValueImpl *m_bottom;    CSSPrimitiveValueImpl *m_left;};class CSSImageValueImpl : public CSSPrimitiveValueImpl, public khtml::CachedObjectClient{public:    CSSImageValueImpl(const DOMString &url, const DOMString &baseurl, StyleBaseImpl *style);    CSSImageValueImpl();    virtual ~CSSImageValueImpl();    khtml::CachedImage *image() { return m_image; }protected:    khtml::CachedImage *m_image;};// ------------------------------------------------------------------------------}; // namespace#endif

⌨️ 快捷键说明

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