XUL窗口创建和事件处理

作者: admin 分类: xul 发布时间: 2014-08-07 11:37 ė1,934 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

窗口创建

1.         对于提示窗口,像javascript中的alert/confirm等函数所打开的。其过程如下:nsPromptService::DoDialog->nsWindowWatcher::OpenWindow->nsXULWindow::ShowModal。如果想要定制提示窗口的行为,比如在命令行下提示,可以重新实现nsIPromptService2/nsPIPromptService接口。

2.         对于正常窗口,其创建过程如下:nsWindowWatcher::OpenWindow->WindowCreator::CreateChromeWindow2->nsWindowConstructor。

 

窗口关闭

1.         在javascript中调用close函数关闭窗口。

2.         经XPConnect调用nsGlobalWindow::Close。

3.         nsGlobalWindow::Close调用nsGlobalWindow::ReallyCloseWindow去关闭窗口。

 

事件注册

1.         在XUL文档解析完成之后,nsXULDocument::PrepareToWalk去创建所有的nsXULElement。

2.         nsXULElement::Create调用nsXULElement::AddScriptEventListener去注册事件处理函数。

3.         nsXULElement::AddScriptEventListener调用nsEventListenerManager:: AddScriptEventListener去注册事件处理函数。

4.         nsEventListenerManager::AddScriptEventListener经nsJSContext,最终调用NS_NewJSEventListener去把javascript事件处理函数包装成nsIDOMEventListener,并注册到nsEventListenerManager中。

 

事件分发

1.         nsWindow.cpp 中的xxx_event_cb之类的函数把GTK+的事件转发给nsWindow::OnXxxEvent函数。

2.         nsCommonWidget::DispatchEvent把事件转发View注册的回调函数HandleEvent。

3.         nsView.cpp: HandleEvent通过事件的Widget找到当前的View,再找到对应的ViewManager,然后通过nsViewManager::DispatchEvent分发消息。

4.         nsViewManager通过PresShell把消息转发到对应的nsXULElement。

5.         nsXULElement通过nsEventListenerManager把消息转发到nsJSEventListener。

6.         nsJSEventListener::HandleEvent再经javascript解释器调用javascript的事件处理函数。

 

 

 



只回答业务咨询点击这里给我发消息 点击这里给我发消息

学习日记,兼职软件设计,软件修改,毕业设计。

本文出自 学习日记,转载时请注明出处及相应链接。

本文永久链接: https://www.softwareace.cn/?p=891

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量