📄 render_style.h
字号:
//------------------------------------------------
// Box attributes. Not inherited.
class StyleBoxData : public Shared<StyleBoxData>
{
public:
StyleBoxData();
StyleBoxData(const StyleBoxData& o );
// copy and assignment
// StyleBoxData(const StyleBoxData &other);
// const StyleBoxData &operator = (const StyleBoxData &other);
bool operator==(const StyleBoxData& o) const;
bool operator!=(const StyleBoxData& o) const {
return !(*this == o);
}
Length width;
Length height;
Length min_width;
Length max_width;
Length min_height;
Length max_height;
Length vertical_align;
int z_index;
bool z_auto : 1;
};
//------------------------------------------------
// Dashboard region attributes. Not inherited.
#if APPLE_CHANGES
struct StyleDashboardRegion
{
QString label;
LengthBox offset;
int type;
enum {
None,
Circle,
Rectangle
};
bool operator==(const StyleDashboardRegion& o) const
{
return type == o.type && offset == o.offset && label == o.label;
}
};
#endif
//------------------------------------------------
// Random visual rendering model attributes. Not inherited.
enum EOverflow {
OVISIBLE, OHIDDEN, OSCROLL, OAUTO, OMARQUEE, OOVERLAY
};
enum EVerticalAlign {
BASELINE, MIDDLE, SUB, SUPER, TEXT_TOP,
TEXT_BOTTOM, TOP, BOTTOM, BASELINE_MIDDLE, LENGTH
};
enum EClear{
CNONE = 0, CLEFT = 1, CRIGHT = 2, CBOTH = 3
};
enum ETableLayout {
TAUTO, TFIXED
};
enum EUnicodeBidi {
UBNormal, Embed, Override
};
class StyleVisualData : public Shared<StyleVisualData>
{
public:
StyleVisualData();
~StyleVisualData();
StyleVisualData(const StyleVisualData& o );
bool operator==( const StyleVisualData &o ) const {
return ( clip == o.clip &&
hasClip == o.hasClip &&
colspan == o.colspan &&
counter_increment == o.counter_increment &&
counter_reset == o.counter_reset &&
#if !APPLE_CHANGES
palette == o.palette &&
#endif
textDecoration == o.textDecoration);
}
bool operator!=( const StyleVisualData &o ) const {
return !(*this == o);
}
LengthBox clip;
bool hasClip : 1;
int textDecoration : 4; // Text decorations defined *only* by this element.
short colspan; // for html, not a css2 attribute
short counter_increment; //ok, so these are not visual mode spesific
short counter_reset; //can't go to inherited, since these are not inherited
#if !APPLE_CHANGES
QPalette palette; //widget styling with IE attributes
#endif
};
//------------------------------------------------
enum EBackgroundRepeat {
REPEAT, REPEAT_X, REPEAT_Y, NO_REPEAT
};
struct BackgroundLayer {
public:
BackgroundLayer();
~BackgroundLayer();
CachedImage* backgroundImage() const { return m_image; }
Length backgroundXPosition() const { return m_xPosition; }
Length backgroundYPosition() const { return m_yPosition; }
bool backgroundAttachment() const { return m_bgAttachment; }
EBackgroundRepeat backgroundRepeat() const { return m_bgRepeat; }
BackgroundLayer* next() const { return m_next; }
BackgroundLayer* next() { return m_next; }
bool isBackgroundImageSet() const { return m_imageSet; }
bool isBackgroundXPositionSet() const { return m_xPosSet; }
bool isBackgroundYPositionSet() const { return m_yPosSet; }
bool isBackgroundAttachmentSet() const { return m_attachmentSet; }
bool isBackgroundRepeatSet() const { return m_repeatSet; }
void setBackgroundImage(CachedImage* i) { m_image = i; m_imageSet = true; }
void setBackgroundXPosition(const Length& l) { m_xPosition = l; m_xPosSet = true; }
void setBackgroundYPosition(const Length& l) { m_yPosition = l; m_yPosSet = true; }
void setBackgroundAttachment(bool b) { m_bgAttachment = b; m_attachmentSet = true; }
void setBackgroundRepeat(EBackgroundRepeat r) { m_bgRepeat = r; m_repeatSet = true; }
void clearBackgroundImage() { m_imageSet = false; }
void clearBackgroundXPosition() { m_xPosSet = false; }
void clearBackgroundYPosition() { m_yPosSet = false; }
void clearBackgroundAttachment() { m_attachmentSet = false; }
void clearBackgroundRepeat() { m_repeatSet = false; }
void setNext(BackgroundLayer* n) { if (m_next != n) { delete m_next; m_next = n; } }
BackgroundLayer& operator=(const BackgroundLayer& o);
BackgroundLayer(const BackgroundLayer& o);
bool operator==(const BackgroundLayer& o) const;
bool operator!=(const BackgroundLayer& o) const {
return !(*this == o);
}
bool containsImage(CachedImage* c) const { if (c == m_image) return true; if (m_next) return m_next->containsImage(c); return false; }
bool hasImage() const {
if (m_image)
return true;
return m_next ? m_next->hasImage() : false;
}
bool hasFixedImage() const {
if (m_image && !m_bgAttachment)
return true;
return m_next ? m_next->hasFixedImage() : false;
}
void fillUnsetProperties();
void cullEmptyLayers();
CachedImage* m_image;
Length m_xPosition;
Length m_yPosition;
bool m_bgAttachment : 1;
EBackgroundRepeat m_bgRepeat : 2;
bool m_imageSet : 1;
bool m_attachmentSet : 1;
bool m_repeatSet : 1;
bool m_xPosSet : 1;
bool m_yPosSet : 1;
BackgroundLayer* m_next;
};
class StyleBackgroundData : public Shared<StyleBackgroundData>
{
public:
StyleBackgroundData();
~StyleBackgroundData() {}
StyleBackgroundData(const StyleBackgroundData& o );
bool operator==(const StyleBackgroundData& o) const;
bool operator!=(const StyleBackgroundData &o) const {
return !(*this == o);
}
BackgroundLayer m_background;
QColor m_color;
OutlineValue m_outline;
};
//------------------------------------------------
// CSS3 Marquee Properties
enum EMarqueeBehavior { MNONE, MSCROLL, MSLIDE, MALTERNATE, MUNFURL };
enum EMarqueeDirection { MAUTO = 0, MLEFT = 1, MRIGHT = -1, MUP = 2, MDOWN = -2, MFORWARD = 3, MBACKWARD = -3 };
class StyleMarqueeData : public Shared<StyleMarqueeData>
{
public:
StyleMarqueeData();
StyleMarqueeData(const StyleMarqueeData& o);
bool operator==(const StyleMarqueeData& o) const;
bool operator!=(const StyleMarqueeData& o) const {
return !(*this == o);
}
Length increment;
int speed;
int loops; // -1 means infinite.
EMarqueeBehavior behavior : 3;
EMarqueeDirection direction : 3;
};
//------------------------------------------------
// CSS3 Flexible Box Properties
enum EBoxAlignment { BSTRETCH, BSTART, BCENTER, BEND, BJUSTIFY, BBASELINE };
enum EBoxOrient { HORIZONTAL, VERTICAL };
enum EBoxLines { SINGLE, MULTIPLE };
enum EBoxDirection { BNORMAL, BREVERSE };
class StyleFlexibleBoxData : public Shared<StyleFlexibleBoxData>
{
public:
StyleFlexibleBoxData();
StyleFlexibleBoxData(const StyleFlexibleBoxData& o);
bool operator==(const StyleFlexibleBoxData& o) const;
bool operator!=(const StyleFlexibleBoxData &o) const {
return !(*this == o);
}
float flex;
unsigned int flex_group;
unsigned int ordinal_group;
EBoxAlignment align : 3;
EBoxAlignment pack: 3;
EBoxOrient orient: 1;
EBoxLines lines : 1;
};
// This struct holds information about shadows for the text-shadow and box-shadow properties.
struct ShadowData {
ShadowData(int _x, int _y, int _blur, const QColor& _color)
:x(_x), y(_y), blur(_blur), color(_color), next(0) {}
ShadowData(const ShadowData& o);
~ShadowData() { delete next; }
bool operator==(const ShadowData& o) const;
bool operator!=(const ShadowData &o) const {
return !(*this == o);
}
int x;
int y;
int blur;
QColor color;
ShadowData* next;
};
#ifndef KHTML_NO_XBL
struct BindingURI {
BindingURI(DOM::DOMStringImpl*);
~BindingURI();
BindingURI* copy();
bool operator==(const BindingURI& o) const;
bool operator!=(const BindingURI& o) const {
return !(*this == o);
}
BindingURI* next() { return m_next; }
void setNext(BindingURI* n) { m_next = n; }
DOM::DOMStringImpl* uri() { return m_uri; }
BindingURI* m_next;
DOM::DOMStringImpl* m_uri;
};
#endif
//------------------------------------------------
// CSS3 User Modify Properties
enum EUserModify {
READ_ONLY, READ_WRITE
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -