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主題,當然這或許不是我目前非常看重的,它能給開發者提供的便利性才是我追求的。早期版本我也在正式的項目中采用,使用的過程中,掌握了很多技巧,也走了彎路。對于一個強大的庫,如果使用的不好可能反而覺得別扭。
posted on 2011-08-24 19:49
萬連文 閱讀(6240)
評論(19) 編輯 收藏 引用 所屬分類:
小作品