Webkit之常用对象API梳理

本文详细梳理了Webkit中的关键对象API,包括Node的节点操作、RenderObject的渲染处理、RenderStyle的样式管理和RenderTheme的绘制方法。重点讨论了节点遍历、样式计算、渲染对象的创建与调整,以及事件处理和HTML元素属性解析。同时,概述了网络加载的相关接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)Node

#NodeType nodeType()//获取节点类型

#ContainerNode parentNode()//容器节点

#Element parentElement()//父亲元素

#Node

>>previousSibling()、nextSibling()//前后节点

>>childNodes()、firstChild()、lastChild()//孩子兄弟

>>lastDescendant()、firstDescendant//继承节点

#NamedNodeMap attributes()//获取属性列表

#ScriptExecutionContext scriptExecutionContext()//script执行上下文。

#RenderObject renderer()、nextRenderer()、previousRenderer()//渲染对象

#RenderBox renderBox()//渲染Box

#RenderBoxModelObject renderBoxModelObject()//渲染Box模型

#RenderStyle renderStyle()、computedStyle()//渲染Style信息体

#NodeList

>>getElementsByTagName()

>>getElementsByTagNameNS()

>>getElementsByName()

>>getElementsByClassName()


2)RenderObject

#Document document()//获取文档对象

#Frame frame()//数据Frame

#Node node()//数据节点

#RenderView view()//渲染物理View

#RenderStyle style()//渲染信息


3)RenderStyle

#inheritFrom():继承父元素

#RenderStyle//获取渲染样式

>>addCachedPseudoStyle()、removeCachedPseudoStyle()、getCachedPseudoStyle()

#create()、createDefaultStyle()、createAnonymousStyle()

#clone()//克隆


4)RenderTheme

#创建:defaultTheme()

#操作:

void adjustStyle()//Style发生改变时需要调度此函数。

bool paint(RenderObject*, const PaintInfo&, const IntRect&);

//绘制RenderObject的的背景,前景一般由engine提供(button`s text)


5)RenderThemeQt

#static void initStyleOption(QWidget *widget, QStyleOption& option)

 //根据QWidget的特性提取QStyleOption信息。

#QStyleFactory::create(QLatin1String("windows"));

 //创建默认的QStyle式样。

#绘制操作:

 paintButton(RenderObject* o, const PaintInfo& i, const IntRect& r)

 paintTextField():绘制文本域

 paintTextArea():绘制文本域

 paintMenuList():菜单列表

 paintMenuListButton():菜单列表按钮

 paintProgressBar():绘制进度条

 paintSliderTrack():绘制滑动条(slider)

 paintSliderThumb():绘制Slider的首部

 paintSearchField():绘制搜查域

 paintSearchFieldCancelButton

 paintSearchFieldDecoration

 paintSearchFieldResultsDecoration

 paintMediaBackground

 paintMediaFullscreenButton

 paintMediaMuteButton

 paintMediaSeekBackButton

 paintCheckbox

 paintRadiobox


6)StylePainter介绍(QWidget、QPainter、QStyle的枢纽带)

#构造:

>>explicit StylePainter(RenderThemeQt*, const PaintInfo&);

#绘制操作:

 void drawPrimitive(QStyle::PrimitiveElement pe, const QStyleOption& opt);

 void drawControl(QStyle::ControlElement ce, const QStyleOption& opt);

 void drawComplexControl(QStyle::ComplexControl cc, const QStyleOptionComplex& opt);


7)Event

#路径:WebCore/dom/Event.h


8)WebCore/generated/HTMLNames.h

#属性、标签


9)HTMLAnchorElement

#基本属性:

>>name、target、path、host、port、href、protecol、search、text


10)parseMappedAttribute

#负责解析标签中的属性,层层调用的关系逻辑,全面解析属性。

#解析之后,然后对外提供判断的接口( isURLAttribute() )


11)网络加载端的API

ResourceHandle::prepareForURL(document()->completeURL(parsedURL))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值