svn: https://x-framework.googlecode.com/svn/trunk 建议重新下载代码
很久没有在svn上更新这套库里,但自己有时间的时候都在开发增加功能。这次的更新主要是在对activex的支持,一个界面库若想成为框架,必须具备这种包容性,至少flash /webbrowser等主流的控件还是会经常用到的。这一次主要是实现了无窗口的flash、mediaplay和sl插件,实现了mshtml和webbrowser的容纳,参考有vc的sdk和国外对无窗口activex的研究,目前操纵接口仅仅供run,没有深度的wrapper。
还有一件事情就是纠正了之前的错误思想,对chrome的基础库私自做了大量修改导致维护更新很麻烦,目前基本上保持了对应,至少我自己跟踪代码的变更还是比较方便。这个过程中自己学到了很多非技术的东西,技术上也看到了google工程师对设计的精益求精。Chrome对顶层窗口的改造部分,我一直有一些说不出的感觉,代码中说了一堆理由阐述为何在下面预留1px的nc区,但是我在之前没有预留的时候反而更好。
整个工程的结构如下:
x-framework
|
--bin(可执行程序)
|
--examples(示例源码)
|
--demos(基础控件展示)
|
--desktop(chrome桌面,不知道有何意图)
|
--igantt(一个计划的图形产品)
|
--net_base_test(暂时无用)
|
--status_tray(应用层托盘库,很小)
|
--wanui_res(库依赖的资源)
|
--lib(框架库)
|
--library(库源码)
|
--base(基础库,标准算法、字符串、内存工具、统计工具、多线程编程工具、窗口API封装、消息泵等)
|
--net_base(暂时无用)
|
--skia(skia在windows平台使用的基本封装,主要是设备和位图的转换,支持32位位图)
|
--third_party(第三方库)
|
--ui_base(作为view库的基础,对windows的消息事件等做了一层封装和扩展)
|
--ui_gfx(为view库提供更好地图形封装,点线面路径图像支持、坐标转换支持)
|
--view(基于windows的顶层窗口对窗口世界的chrome化,兼容无窗口和有窗口的界面引擎,我增加了一些扩展)
一些demo截图:
这些示例尽管一眼看上去并不是那么震撼,局限因素不是技术,目前的问题就是控件数量不够丰富,chrome里面无窗口的控件绘制采用了native主题,当然这或许不是我目前非常看重的,它能给开发者提供的便利性才是我追求的。早期版本我也在正式的项目中采用,使用的过程中,掌握了很多技巧,也走了弯路。对于一个强大的库,如果使用的不好可能反而觉得别扭。