SWT Win32 Extension寫到現(xiàn)在的狀況,在win32 natvie上面已經(jīng)沒有太多花樣了,常用的一些功能我都已經(jīng)做得差不多了,現(xiàn)在主要是做一些自定義的控件,就目前的進度,還只是完成了Shell,Menu,ToolBar 3個部分,還有很多內(nèi)容可以慢慢完善。不過自從發(fā)布了自定義的菜單以后,SWT Win32 Extension的用戶群大增,也對我提出了更高的要求。不過現(xiàn)在的主要任務(wù)是實現(xiàn)功能,因此代碼的質(zhì)量上肯定是差了點。現(xiàn)有的接口都是我自己通過Example的需求來加的,以后等功能做的完善上,再將現(xiàn)有的架構(gòu)進行較大的重構(gòu),我想應(yīng)該是一個不錯的步驟。畢竟就我一個人做這個東西,還要兼職寫Example,Document,測試,網(wǎng)站維護,雖然每天都在加班加點,但還是感覺時間不夠用。每天都有用戶發(fā)郵件來催進度,所以維護這個項目現(xiàn)在真的是讓我廢寢忘食了,但總體來說還是物有所值,畢竟辛辛苦苦的努力,還是有所回報的。開源嘛,本來就是一種奉獻精神,回饋社會,讓所有人都來分享自己的成果。
這些天一直忙著寫新的Feature,今天寫的差不多了,于是回過頭來整理Example。本來上個版本我就想接管Eclipse Native的菜單,不過沒能如愿,因為Eclipse的菜單都是LazyLoad的。今天又嘗試了一下,終于成功的實現(xiàn)了這個功能。做完了才知道其實很簡單,所遇到的重重障礙只不過是因為自己的框架老是蹦出新的bug。唉,自己測試自己開發(fā)的東西總是有盲點存在,實在是無能為力呀。
從本質(zhì)上來說,我自定義的菜單和標(biāo)準(zhǔn)菜單控件的代碼及事件上的實現(xiàn)基本一致,所以接管Eclipse原生的菜單并不是一件很難的事情,當(dāng)自定義的菜單接收到一個事件的時候,只需將這個事件轉(zhuǎn)發(fā)給Eclipse的原生菜單就好了,一切就是這么簡單。重點就是Notify SWT.Selected 和 SWT.Show 事件,前者用來觸發(fā)Action的行為,后者用來觸發(fā)Eclipse原生菜單的LazyLoad。
截圖如下:
這些天一直忙著寫新的Feature,今天寫的差不多了,于是回過頭來整理Example。本來上個版本我就想接管Eclipse Native的菜單,不過沒能如愿,因為Eclipse的菜單都是LazyLoad的。今天又嘗試了一下,終于成功的實現(xiàn)了這個功能。做完了才知道其實很簡單,所遇到的重重障礙只不過是因為自己的框架老是蹦出新的bug。唉,自己測試自己開發(fā)的東西總是有盲點存在,實在是無能為力呀。
從本質(zhì)上來說,我自定義的菜單和標(biāo)準(zhǔn)菜單控件的代碼及事件上的實現(xiàn)基本一致,所以接管Eclipse原生的菜單并不是一件很難的事情,當(dāng)自定義的菜單接收到一個事件的時候,只需將這個事件轉(zhuǎn)發(fā)給Eclipse的原生菜單就好了,一切就是這么簡單。重點就是Notify SWT.Selected 和 SWT.Show 事件,前者用來觸發(fā)Action的行為,后者用來觸發(fā)Eclipse原生菜單的LazyLoad。
截圖如下: