Saturday, January 30, 2010

嵌入式GUI FTK介绍(4)-脚本语言绑定

转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静

用XML来描述界面,C/C++写内部逻辑,用脚本语言来胶合界面和内部逻辑。FTK正是基于这种思想来设计的,所以它自然会提供 脚本语言绑定,最早我是想绑定javascript的,这样可以用类似写网页的方式来写程序。但是我又希望FTK能在MTK和展讯那样的手机平台上运行, 而javascript引擎可执行代码太大了。所以最后选择了lua绑定,lua的可执行只有100多K,加上FTK,总共大约在300K左右,这样的大 小放在MTK和展讯的手机平台应该是可行的。FTK+Lua的方式对SP非常有用(虽然我不太喜欢SP),不但可以隔离各种手机平台的差异,而且可以把程 序放在服务器上,而不用全部内置到手机中了。

比如:
xul

实现代码如下:
XUL描述:

...  

lua代码

function button_quit_on_clicked(button)
ftk_quit()
print("button_quit_on_clicked")
return 0
end

function button_save_on_clicked(button)
print("button_save_on_clicked")
return 0
end

ftk_init()

win=ftk_xul_load(xml)
ftk_widget_show_all(win, 1)

quit=ftk_widget_lookup(win, 99)
ftk_button_set_clicked_listener(quit, "button_save_on_clicked")

quit=ftk_widget_lookup(win, 100)
ftk_button_set_clicked_listener(quit, "button_quit_on_clicked")

ftk_run()

因为FTK是用C语言写的,要绑定到其它脚本语言也是非常容易的,有兴趣的朋友可以试下。

No comments: