FTK移植指南(初稿)
By 李先静 1,828 views
1.内存分配
要求:实现malloc/realloc/free三个函数,函数原型和标准C一致。或者实现FtkAllocator接口。
参考:ftk_allocator_default.c
2.文件操作
要求:实现FtkMmap接口。libpng和libjpeg还要求实现标准C的FILE(也可以用自己的解码器)。
参考:os/linux/ftk_mmap_linux.c
FTK-0.4 发布
By 李先静 1,382 views
经过大家一个月的努力,在FTK诞生6个月之际,FTK-0.4如期发布,其主要修改有:
1. 修改了一些BUG。
2. 完整的支持LUA绑定。
3. 完善交叉编译脚本。
4. 增加FTK配置文件。
5. 优化显示速度。
6. 增加缩放动画效果。
7. UCOSII支持(Windows模拟环境)。
特别感谢minpengli,Riwen Huang,zhangalion,tao yu,yapo su, phil song, ZhiHua Huang, hua song, Richard Sharpe和其他参与FTK开发和讨论的朋友们。欢迎大家加入邮件列表讨论。
嵌入式GUI FTK设计与实现-主循环
By 李先静 1,428 views
带图形用户界面(GUI)的应用程序和传统的批处理程序是不同的:
* 批处理程序是一步一步的执行,直到完成任务为止,完成任务后程序立即退出。
* 图形用户界面应用程序则是事件驱动的,它等待事件发生,然后处理事件,如此循环,直到用户要求退出为止。
FTK在ben上运行起来了
By 李先静 903 views
Qi Hardware是由一帮出色的hacker组成的团队,和他们老大Wolfgang Spraul 有过一面之缘,对他们也是很佩服的。呵,帮他们打个广告吧。另外,FTK已经在ben上运行起来了。
嵌入式GUI FTK设计与实现-三项基本原则
By 李先静 1,065 views
记得X Window在设计初期就提出了七项基本指导原则,在后面X Window几十年的演变过程中,都以这些基本原则作为指导思想。其中给我印象比较深的一条就是:提供机制而不是策略。X Window一直都遵循这条原则,它只提供实现某些功能的机制,而把实现的策略留给ToolKit或其它辅助软件。为了让FTK在以后的演化过程中不至于迷失方向,我们也给FTK定了三项基本原则:
FTK google group开通,欢迎加入交流。
By 李先静 918 views
FTK google group开通,欢迎加入交流。
| Homepage: | https://groups.google.com/group/funnytoolkit | |
| Group email: | funnytoolkit@googlegroups.com |
如果你不会翻墙,请用gmail发邮件给我。谢谢。
嵌入式GUI ftk-0.3发布
By 李先静 807 views
嵌入式GUI FTK支持输入法
By 李先静 579 views
春节期间给FTK增加输入法支持,目前支持拼音输入法,五笔输入法和手写输入法。手写输入法只是实现了框架,识别引擎才开个头,这是今年FTK开发的重点任务。拼音输入法,五笔输入法的基本功能都可以用了吧,易用性方面还需要进一步完善。
嵌入式GUI ftk-0.2发布
By 李先静 1,096 views
经过一个月的努力,FTK-0.2如期发布,其主要修改有:
- 修改了一些BUG,对代码做了一些优化。考虑到RTOS不支持select,所以去掉了main loop对pipe的依赖,提高FTK的可移植性。
- 移植到Windows平台,加了VS2008 Express Edition的工程文件。
- 增加了MessageBox和Tips的支持。
- 增加了弹出菜单的支持。
- 增加了ComboBox的支持。
- 增加了窗口从中间向四周扩展的效果。
- 增加窗口淡入效果。
- 对话框支持模态和非模态两种。
- 增加了C++调用的支持。
- 增加了Cursor的支持,由–enable-cursor命令行参数决定。
有兴趣的朋友请到FTK下载源代码。
附:
A gui library for embedded system. FTK equals funny tool kit, write it just for fun.

嵌入式GUI FTK介绍(11)-交叉编译
By 李先静 1,071 views
考虑到交叉编译只是个浪费时间的体力活,FTK提供了一个Makefile来交叉编译FTK本身和其依赖的软件包,在tools/cross-build/README里说明:
嵌入式GUI FTK介绍(9)-在Android模拟器上运行FTK
By 李先静 1,423 views
在Android模拟器是用QEMU实现ARM虚拟机,在很大程度上可以模拟真实的运行环境。FTK可以在Android模拟器上运行,其方法如下:

嵌入式GUI FTK介绍(7)-主题
By 李先静 560 views
FTK的主题非常直观,包括一个XML文件和一些图片。具体用法请参考doc/theme.txt
<theme name="default"> <button bg_image[normal]="btn_default_normal.png" bg_image[focused]="btn_default_selected.png" bg_image[active]="btn_default_pressed.png" bg_image[disable]="btn_default_normal_disable.png"/> <progress_bar bg[normal]="ff9d9e9d" fg[normal]="ffffd300" bg[focused]="ff9d9e9d" fg[focused]="ffffd300" bg[active]="ff9d9e9d" fg[active]="ffffd300" bg[disable]="ff9d9e9d" fg[disable]="ffffd300"/> <entry bg[normal]="ffffffff" fg[normal]="ff000000" bd[normal]="ffd0d0d0" bg[focused]="ffffffff" fg[focused]="ff000000" bd[focused]="ffffbb00" bg[active]="ffffffff" fg[active]="ff000000" bd[active]="ffe2ceee" bg[disable]="ffffffff" fg[disable]="ffaca899" bd[disable]="ffe2ceee"/> <text_view bg[normal]="ffffffff" fg[normal]="ff000000" bd[normal]="ffd0d0d0" bg[focused]="ffffffff" fg[focused]="ff000000" bd[focused]="ffffbb00" bg[active]="ffffffff" fg[active]="ff000000" bd[active]="ffe2ceee" bg[disable]="ffffffff" fg[disable]="ffaca899" bd[disable]="ffe2ceee"/> <check_button fg[normal]="ff000000" fg[focused]="ffffbb00" fg[active]="ffffbb00" fg[disable]="ffaca899"/> <radio_button fg[normal]="ff000000" fg[focused]="ffffbb00" fg[active]="ffffbb00" fg[disable]="ffaca899"/> <icon_view bg_image[normal]="icon_view_bg.png" bg_image[focused]="icon_view_bg.png" bg_image[active]="icon_view_bg.png" bg_image[disable]="icon_view_bg.png"/> <menu_panel bg[normal]="ffffffff" fg[normal]="ffccc9b8" bd[normal]="ffb0a080"/> <menu_item bg_image[focused]="menuitem_background_focus.png" bg_image[active]="menuitem_background_ pressed.png" /> </theme>
每种控件四种状态,你可以为每种控件的每种状态,设置背景颜色/图片,前景颜色/图片和边界颜色,如果不设置则使用默认的。
嵌入式GUI FTK介绍(6)-特性
By 李先静 701 views
基本特性:
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)-在多平台上运行
By 李先静 800 views
可移植性是FTK的设计目标之一,以后FTK将会在Linux、Windows和各种RTOS等不同平台上运行。目前FTK还只能在Linux上运行,不过它可以在framebuffer、DirectFB和X11(模拟)上运行。
基于framebuffer(jz4740开发板)

嵌入式GUI FTK介绍(4)-脚本语言绑定
By 李先静 737 views
用XML来描述界面,C/C++写内部逻辑,用脚本语言来胶合界面和内部逻辑。FTK正是基于这种思想来设计的,所以它自然会提供脚本语言绑定,最早我是想绑定javascript的,这样可以用类似写网页的方式来写程序。但是我又希望FTK能在MTK和展讯那样的手机平台上运行,而javascript引擎可执行代码太大了。所以最后选择了lua绑定,lua的可执行只有100多K,加上FTK,总共大约在300K左右,这样的大小放在MTK和展讯的手机平台应该是可行的。FTK+Lua的方式对SP非常有用(虽然我不太喜欢SP),不但可以隔离各种手机平台的差异,而且可以把程序放在服务器上,而不用全部内置到手机中了。
嵌入式GUI FTK介绍(3)-XML界面描述语言
By 李先静 2,437 views
用XML来描述界面,C/C++写内部逻辑,用脚本语言来胶合界面和内部逻辑。FTK正是基于这种思想来设计的,所以它自然会提供XML界面描述功能,在这里把它称为XUL,但它和mozilla里的XUL没有什么关系。FTK里的XUL非常小巧(XML解析器都是自己写的),使用起来也非常简单,比如:

嵌入式GUI FTK介绍(2)-两个小应用程序
By 李先静 1,173 views
为了从使用者的角度感受FTK,我用FTK写了两个小应用程序:
桌面
仿一个android的桌面出来倒是不难,不过没有时间去玩,呵,下面这个有点四不像。

嵌入式GUI FTK介绍(1)-基本组件
By 李先静 1,431 views
FTK支持主题,利用主题配置和图片,可以模仿各种不同的GUI风格。FTK的默认界面风格很大程度上仿照了android的界面风格:
嵌入式GUI ftk-0.1发布
By 李先静 2,010 views
FTK最初是《系统程序员成长计划》的综合练习项目,在一些热心朋友的帮助下,从国庆到元旦,经过三个月的开发和完善,终于实现基本功能,初具现代嵌入式GUI的轮廓了。新年新气象,先发布第一个版本ftk-0.1吧。



April 7th, 2010