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

categoriaFTK(嵌入式GUI) commento7 Comments dataApril 7th, 2010
Read All

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开发和讨论的朋友们。欢迎大家加入邮件列表讨论。

categoriaFTK(嵌入式GUI) commento6 Comments dataApril 5th, 2010
Read All

嵌入式GUI FTK设计与实现-主循环

By 李先静 1,428 views

带图形用户界面(GUI)的应用程序和传统的批处理程序是不同的:

* 批处理程序是一步一步的执行,直到完成任务为止,完成任务后程序立即退出。
* 图形用户界面应用程序则是事件驱动的,它等待事件发生,然后处理事件,如此循环,直到用户要求退出为止。

categoriaFTK(嵌入式GUI) commento4 Comments dataMarch 28th, 2010
Read All

嵌入式GUI FTK设计与实现-分层视图

By 李先静 897 views

为了从整体上把握FTK的架构,我们先看看FTK的分层视图:

ftk_layer_view

categoriaFTK(嵌入式GUI) commentoNo Comments dataMarch 22nd, 2010
Read All

FTK在ben上运行起来了

By 李先静 903 views

Qi Hardware是由一帮出色的hacker组成的团队,和他们老大Wolfgang Spraul 有过一面之缘,对他们也是很佩服的。呵,帮他们打个广告吧。另外,FTK已经在ben上运行起来了。

categoriaFTK(嵌入式GUI) commentoNo Comments dataMarch 20th, 2010
Read All

FTK编程风格

By 李先静 783 views

命名规则

名称要表达出对象的意义。

1.文件名

  • 以ftk开头(demo和测试程序除外)。
  • 单词小写。
  • 多个单词用下划线分隔。

示例:

categoriaFTK(嵌入式GUI) commento2 Comments dataMarch 18th, 2010
Read All

嵌入式GUI FTK设计与实现-三项基本原则

By 李先静 1,065 views

记得X Window在设计初期就提出了七项基本指导原则,在后面X Window几十年的演变过程中,都以这些基本原则作为指导思想。其中给我印象比较深的一条就是:提供机制而不是策略。X Window一直都遵循这条原则,它只提供实现某些功能的机制,而把实现的策略留给ToolKit或其它辅助软件。为了让FTK在以后的演化过程中不至于迷失方向,我们也给FTK定了三项基本原则:

categoriaFTK(嵌入式GUI) commentoNo Comments dataMarch 14th, 2010
Read All

嵌入式GUI FTK设计与实现-目录

By 李先静 1,552 views

总体介绍
    1.FTK的三项基本原则
    2.GUI的几种常见模型
    3.FTK的分层视图

categoriaFTK(嵌入式GUI) commento6 Comments dataMarch 6th, 2010
Read All

FTK google group开通,欢迎加入交流。

By 李先静 918 views

FTK google group开通,欢迎加入交流。

Homepage: https://groups.google.com/group/funnytoolkit
Group email: funnytoolkit@googlegroups.com

如果你不会翻墙,请用gmail发邮件给我。谢谢。

categoriaFTK(嵌入式GUI) commento3 Comments dataFebruary 28th, 2010
Read All

嵌入式GUI ftk-0.3发布

By 李先静 807 views

经过春节长假的努力,FTK-0.3如期发布,其主要修改有:

  • 引入FtkAllocator接口,用于内存使用情况统计分析。
  • 支持非压缩的BMP图像的解码。
  • 支持拼音输入法。
  • 支持五笔输入法。
  • 实现手写输入法框架。
  • 支持长按事件。
  • 修改了编译脚本的一些小问题。
  • 做了其它一些优化和完善。

特别感谢Huang Riwen兄和Feng HuaJun兄,Riwen兄发现并修改了BMP图像解码中的BUG。HuaJun同意我在FTK使用fitx输入法中的词库。

有兴趣的朋友请到FTK下载源代码。

categoriaFTK(嵌入式GUI) commento1 Comment dataFebruary 27th, 2010
Read All

嵌入式GUI FTK支持输入法

By 李先静 579 views

春节期间给FTK增加输入法支持,目前支持拼音输入法,五笔输入法和手写输入法。手写输入法只是实现了框架,识别引擎才开个头,这是今年FTK开发的重点任务。拼音输入法,五笔输入法的基本功能都可以用了吧,易用性方面还需要进一步完善。

categoriaFTK(嵌入式GUI) commentoNo Comments dataFebruary 21st, 2010
Read All

嵌入式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.

ftk

categoriaFTK(嵌入式GUI) commento2 Comments dataJanuary 31st, 2010
Read All

嵌入式GUI FTK介绍(11)-交叉编译

By 李先静 1,071 views

考虑到交叉编译只是个浪费时间的体力活,FTK提供了一个Makefile来交叉编译FTK本身和其依赖的软件包,在tools/cross-build/README里说明:

categoriaFTK(嵌入式GUI) commento1 Comment dataJanuary 24th, 2010
Read All

嵌入式GUI FTK介绍(10)-编译选项

By 李先静 942 views

作为嵌入式GUI, FTK必须要能适应不同的环境,在Linux下,这可以通过编译选项来配置。

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 24th, 2010
Read All

嵌入式GUI FTK介绍(9)-在Android模拟器上运行FTK

By 李先静 1,423 views

在Android模拟器是用QEMU实现ARM虚拟机,在很大程度上可以模拟真实的运行环境。FTK可以在Android模拟器上运行,其方法如下:

categoriaFTK(嵌入式GUI) commento3 Comments dataJanuary 14th, 2010
Read All

嵌入式GUI FTK介绍(8)-编译/运行PC模拟版本

By 李先静 1,192 views

FTK可以在X Window下模拟运行。

categoriaFTK(嵌入式GUI) commento5 Comments dataJanuary 11th, 2010
Read All

嵌入式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>

每种控件四种状态,你可以为每种控件的每种状态,设置背景颜色/图片,前景颜色/图片和边界颜色,如果不设置则使用默认的。

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 4th, 2010
Read All

嵌入式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底能实现这些目标。

categoriaFTK(嵌入式GUI) commento1 Comment dataJanuary 4th, 2010
Read All

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

By 李先静 800 views

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

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

categoriaFTK(嵌入式GUI) commento1 Comment dataJanuary 4th, 2010
Read All

嵌入式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),不但可以隔离各种手机平台的差异,而且可以把程序放在服务器上,而不用全部内置到手机中了。

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 4th, 2010
Read All

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

By 李先静 2,437 views

用XML来描述界面,C/C++写内部逻辑,用脚本语言来胶合界面和内部逻辑。FTK正是基于这种思想来设计的,所以它自然会提供XML界面描述功能,在这里把它称为XUL,但它和mozilla里的XUL没有什么关系。FTK里的XUL非常小巧(XML解析器都是自己写的),使用起来也非常简单,比如:

xul

categoriaFTK(嵌入式GUI) commento3 Comments dataJanuary 4th, 2010
Read All

嵌入式GUI FTK介绍(2)-两个小应用程序

By 李先静 1,173 views

为了从使用者的角度感受FTK,我用FTK写了两个小应用程序:

桌面

仿一个android的桌面出来倒是不难,不过没有时间去玩,呵,下面这个有点四不像。
desktop

categoriaFTK(嵌入式GUI) commentoNo Comments dataJanuary 4th, 2010
Read All

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

By 李先静 1,431 views

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

categoriaFTK(嵌入式GUI) commento2 Comments dataJanuary 4th, 2010
Read All

嵌入式GUI ftk-0.1发布

By 李先静 2,010 views

FTK最初是《系统程序员成长计划》的综合练习项目,在一些热心朋友的帮助下,从国庆到元旦,经过三个月的开发和完善,终于实现基本功能,初具现代嵌入式GUI的轮廓了。新年新气象,先发布第一个版本ftk-0.1吧。

categoriaFTK(嵌入式GUI) commento18 Comments dataJanuary 4th, 2010
Read All