Saturday, January 30, 2010

嵌入式GUI FTK介绍(6)-特性

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

基本特性:
1. Lightweght.
2. Beautiful look and feel.
3. High code quality: design pattern, good code style.
4. Stable: code review, unit test, stress test, valgrind checked.
5. Full gui features: window, dialog, panel, button, menu…
6. Good portability: Unix, Windows, RTOS…
7. Release under LGPL license

摩登特性:
1. Window animation.
2. Alpha channel to implement transparent/translucent window.
3. Guesture recognition(TODO).
4. XML UI description language.
5. Script binding.
6. InputMethod with Handwrite(TODO).
7. Screen rotation(TODO).
8. Theme.

呵,有点自吹自擂吧,欢迎有兴趣的朋友一起来玩,希望在2010底能实现这些目标。

嵌入式GUI FTK介绍(5)-在多平台上运行

转载时请注明出处和作者联系方式

文章出处:http://www.limodev.cn/blog
作者联系方式:李先静

可移植性是FTK的设计目标之一,以后FTK将会在Linux、Windows和各种RTOS等不同平台上运行。目前FTK还只能在Linux上运行,不过它可以在framebuffer、DirectFB和X11(模拟)上运行。

基于framebuffer(jz4740开发板)
framebuffer-jz4740

基于framebuffer(android模拟器)
framebuffer-android

基于DirectFB(下图是DirectFB基于X11模拟运行的)
directfb

基于X11(在单窗口上模拟运行)
x11

2010将陆续移植到Windows和其它RTOS上,欢迎参与。

嵌入式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语言写的,要绑定到其它脚本语言也是非常容易的,有兴趣的朋友可以试下。

嵌入式GUI FTK介绍(3)-XML界面描述语言

嵌入式GUI FTK介绍(3)-XML界面描述语言

嵌入式GUI FTK介绍(1)-基本组件

转载时请注明出处和作者联系方式

文章出处:http://www.limodev.cn/blog
作者联系方式:李先静

FTK支持主题,利用主题配置和图片,可以模仿各种不同的GUI风格。FTK的默认界面风格很大程度上仿照了android的界面风格:

已实现组件:

  • 窗口
  • window

  • 对话框
  • dialog
    transparent
    transparent

  • 按钮
  • button

  • 单选按钮
  • radio

  • 多选按钮
  • check

  • 文本
  • label

  • 单行编辑器
  • entry

  • 多行编辑器
  • textview

  • 进度条
  • progress

  • 菜单
  • menu

  • Icon View
  • icon view

  • List View
  • list view

  • 等待状态
  • wait

  • 图片
  • image

  • Cursor
  • cursor

  • Cairo
  • cairo
    cairo