问题3:如何建立Javascript对象与结点树上结点的对应? 内容来自www.paper51.com
解决: Javascript对象与结点树是同时生成的,它们的共同性质是结点具有相同属性,Javascript对象根据ID属性查找树,找到要操作的对应结点。 内容来自www.paper51.com 3.4 浏览器消息响应 内容来自论文无忧网 www.paper51.com
在主消息循环中调用TDWidgetProcessMsg,处理与widget有关消息。 paper51.com
首先:取得当前焦点所在的widget 内容来自www.paper51.com pWidget=TDWidgetGetAtPoint(pThis->baseDoc.base.mWidget,pt,&index); copyright paper51.com 处理该widget对该消息的响应。 paper51.com 最后一般为调用JavaScript执行,实现实际响应。 内容来自www.paper51.com TDVOID TDWidgetDoAction(TDPWidgetAction pAnchor) 内容来自www.paper51.com { paper51.com
jsvaljval; http://www.paper51.com if(pAnchor) copyright paper51.com
TD_EvaluateScript(JS_GetGlobalContext(),js_GetGlobalObject(), http://www.paper51.com
pAnchor->mAction.mStr,pAnchor->mAction.mLength,TDNULL,0,&jval); 内容来自论文无忧网 www.paper51.com
} 内容来自www.paper51.com 其中pAnchor->mAction.mStr即为界面对象(widget)对应的JavaScript源码,解释执行的结果就是调用为该对象注册的函数来重画该widget,从而实现动态效果。 copyright paper51.com 第四章 Linux程序开发技术及 GTK图形程序开发 http://www.paper51.com
4.1 Linux下的程序开发环境 copyright paper51.com 4.1.1基本知识 内容来自www.paper51.com
(1)标准 (ANSIC, POSIX, SVID, XPG, ...) 内容来自论文无忧网 www.paper51.com ANSI C:这一标准是 ANSI(美国国家标准局)于 1989 年制定的 C 语言标准。 后来被 ISO(国际标准化组织)接受为标准,因此也称为 ISO C。 内容来自www.paper51.com POSIX:该标准最初由 IEEE 开发的标准族,部分已经被 ISO 接受为国际标准。 内容来自论文无忧网 www.paper51.com SVID:System V 的接口描述。System V 接口描述(SVID)是描述 AT&T Unix System V 操作 系统的文档,是对 POSIX 标准的扩展超集。 http://www.paper51.com XPG:X/Open 可移植性指南。X/Open 可移植性指南(由 X/Open Company, Ltd.出版), 是比 POSIX 更为一般的标准。 copyright paper51.com
(2)函数库和系统调用 paper51.com glibc:众所周知,C 语言并没有为常见的操作,例如输入/输出、内存管理,字符串操作等提供内置的支持。相反,这些功能一般由标准的“函数库”来提供。GNU 的 C 函数库,即 glibc,是 Linux 上最重要的函数库,它定义了 ISO C 标准指定的所有的库函数,以及由 POSIX 或其他 UNIX 操作系统变种指定的附加特色,还包括有与 GNU 系统相关的扩展。目前,流行的 Linux 系统使用 glibc 2.0 以上的版本。glibc 基于如下标准:ISO C: C 编程语言的国际标准,即 ANSI C,POSIX,Berkeley Unix,SVID,XPG。 copyright paper51.com 其他重要函数库:除 glibc 之外,流行的 Linux 发行版中还包含有一些其他的函数库,这些函数库具有重要地位,例如:GNULibtool,CrackLib,LibGTop。图形文件操作函数库包括: libungif、libtiff、libpng、Imlib, libjpeg 等,可分别用来操作 GIF、TIFF、PNG、JPEG 以及其他一些格式图形文件。 内容来自论文无忧网 www.paper51.com
(3)系统调用 内容来自论文无忧网 www.paper51.com 系统调用是操作系统提供给外部程序的接口。在 C 语言中,操作系统的系统调用通常通过函数调用的形式完成,在 Linux 系统中,系统调用函数定义在 glibc 中。 内容来自www.paper51.com
谈到系统调用时,需要注意如下几点:系统调用函数通常在成功时返回 0 值,不成功时返回非零值。errno 中包含有错误代码。系统调用是一个非常耗时 的过程。 paper51.com
(4) C 语言编程风格 paper51.com 良好的编程风格可以在许多方面帮助开发人员,可以增加代码的可读性,并帮助你理清头绪。编程风格最能体现一个程序员的综合素质。 http://www.paper51.com
在 Linux 中,我们经常看到的是定义非常简单的函数接口和变量名称。C 语言最初来自 UNIX 操作系统,与UNIX 的设计原则一样,C 语言被广泛认可和使用的一个重要原因是它的灵活性以及简洁性。在利用 C 语言编写程序时,应当符合其简洁的设计原则,而不应当使用非常复杂的变量命名方法。Linus为 Linux 内核定义的 C 语言编码风格要点如下: copyright paper51.com 缩进时,使用长度为 8 个字符宽的 Tab 键。如果程序的缩进超过 3 级,则应考虑重新设计程序。 copyright paper51.com 大括号的位置。除函数的定义体外,应当将左大括号放在行尾,而将右大括号放在行首。函数的定义体应将左右大括号放在行首。如下所示: 内容来自论文无忧网 www.paper51.com int function(int x, int y) 内容来自www.paper51.com
{ 内容来自论文无忧网 www.paper51.com if(x == y) { 内容来自www.paper51.com
... http://www.paper51.com
} http://www.paper51.com
else { 内容来自论文无忧网 www.paper51.com ... 内容来自论文无忧网 www.paper51.com
} paper51.com return 0; copyright paper51.com } 内容来自www.paper51.com |