svn: https://x-framework.googlecode.com/svn/trunk 建議重新下載代碼
很久沒有在svn上更新這套庫里,但自己有時(shí)間的時(shí)候都在開發(fā)增加功能。這次的更新主要是在對(duì)activex的支持,一個(gè)界面庫若想成為框架,必須具備這種包容性,至少flash /webbrowser等主流的控件還是會(huì)經(jīng)常用到的。這一次主要是實(shí)現(xiàn)了無窗口的flash、mediaplay和sl插件,實(shí)現(xiàn)了mshtml和webbrowser的容納,參考有vc的sdk和國外對(duì)無窗口activex的研究,目前操縱接口僅僅供run,沒有深度的wrapper。
還有一件事情就是糾正了之前的錯(cuò)誤思想,對(duì)chrome的基礎(chǔ)庫私自做了大量修改導(dǎo)致維護(hù)更新很麻煩,目前基本上保持了對(duì)應(yīng),至少我自己跟蹤代碼的變更還是比較方便。這個(gè)過程中自己學(xué)到了很多非技術(shù)的東西,技術(shù)上也看到了google工程師對(duì)設(shè)計(jì)的精益求精。Chrome對(duì)頂層窗口的改造部分,我一直有一些說不出的感覺,代碼中說了一堆理由闡述為何在下面預(yù)留1px的nc區(qū),但是我在之前沒有預(yù)留的時(shí)候反而更好。
整個(gè)工程的結(jié)構(gòu)如下:
x-framework
|
--bin(可執(zhí)行程序)
|
--examples(示例源碼)
|
--demos(基礎(chǔ)控件展示)
|
--desktop(chrome桌面,不知道有何意圖)
|
--igantt(一個(gè)計(jì)劃的圖形產(chǎn)品)
|
--net_base_test(暫時(shí)無用)
|
--status_tray(應(yīng)用層托盤庫,很小)
|
--wanui_res(庫依賴的資源)
|
--lib(框架庫)
|
--library(庫源碼)
|
--base(基礎(chǔ)庫,標(biāo)準(zhǔn)算法、字符串、內(nèi)存工具、統(tǒng)計(jì)工具、多線程編程工具、窗口API封裝、消息泵等)
|
--net_base(暫時(shí)無用)
|
--skia(skia在windows平臺(tái)使用的基本封裝,主要是設(shè)備和位圖的轉(zhuǎn)換,支持32位位圖)
|
--third_party(第三方庫)
|
--ui_base(作為view庫的基礎(chǔ),對(duì)windows的消息事件等做了一層封裝和擴(kuò)展)
|
--ui_gfx(為view庫提供更好地圖形封裝,點(diǎn)線面路徑圖像支持、坐標(biāo)轉(zhuǎn)換支持)
|
--view(基于windows的頂層窗口對(duì)窗口世界的chrome化,兼容無窗口和有窗口的界面引擎,我增加了一些擴(kuò)展)
一些demo截圖:

這些示例盡管一眼看上去并不是那么震撼,局限因素不是技術(shù),目前的問題就是控件數(shù)量不夠豐富,chrome里面無窗口的控件繪制采用了native主題,當(dāng)然這或許不是我目前非常看重的,它能給開發(fā)者提供的便利性才是我追求的。早期版本我也在正式的項(xiàng)目中采用,使用的過程中,掌握了很多技巧,也走了彎路。對(duì)于一個(gè)強(qiáng)大的庫,如果使用的不好可能反而覺得別扭。
posted on 2011-08-24 19:49
萬連文 閱讀(6239)
評(píng)論(19) 編輯 收藏 引用 所屬分類:
小作品