從2019.5.22開始,SOUI版本號更新到2.9.0.2,後面開始準備3.0的開發,歷時近3個月,如今3.0的主要工做基本完成。html
爲了便於你們區別2.x,3.0啓用了新的代碼倉庫:https://github.com/soui3/souigit
3.0相比2.x有如下代碼的更新:github
一、規範代碼中使用的類名,2.x中因爲歷史緣由有一些類名一直是Cxxx這樣的以C開頭的類名,新版本統一調整爲S開頭,好比CAutoRefPtr=>SAutoRefPtr, CSimpleWnd=>SNativeWnd等。web
二、刪除原來的 CSize SWindow::GetDesiredSize(LPCRECT)重載方法,只保留CSize SWindow::GetDesiredSize(int wid, int hei)這個方法。若是有息定義控件重載了這個方法須要注意。ide
三、將原來指定主窗口大小的屬性從XML的SOUI結點調整到root結點。soui結點不和swindow對象對應,而root結點是一個SWindow對象,把屬性遷移到root更合理。動畫
四、調整光標顯示的實現代碼。在uidef.xml裏增長了caret元素,用來描述支持光標行爲。支持動畫光標,支持改變光標顏色。ui
<caret color="rgb(255,0,0)" animate="true" speed="30" interpolator="Accelerate"/>
五、支持滾動條動畫特效,配置後滾動條只在有鼠標操做才顯示,不然就隱藏,採用漸顯漸隱過渡。在XML中配置fadeInterpolator屬性來指定插值動畫類型,再配置一個fadeSpeed屬性(整數,默認30)就能夠控制動畫。spa
六、徹底的矩陣變換支持。增長SWindow::SetMatrix來實現窗口顯示的旋轉,平移,綻開等矩陣支持的操做。code
七、從Android移植了Animation模塊,之前一個與Android的數值動畫對應的ValueAnimation模塊。能夠基本上實現Android的所有動畫效果。經過實現AnimationSet的repeatCount屬性,還能夠實現Android不方便實現的動畫效果。xml
總之,3.0一個任務就是隻須要簡單的配置XML主能夠把界面效果作得更加炫酷。
此外,2.8中也引入了兩個重大的更新,這裏也一便介紹一下:
一、調整style的命名支持,若是style以window.style的形式命名,那前面的window就是控件類型,而window.style仍是一個常規的style。
假定用戶已經在style中定義了一個<button.web xxxx/>這樣的style, 經過支持這們的命名規則,2.8以上的SOUI,XML能夠直接使用"button.web"來建立一個button控件,該控件自動使用button.web這個style。
二、增長界面模板支持。
若是一個界面中有不少元素是重複的,可是內容是變化的,常規的作法多是使用列表來作。可是用列表可能表明着用戶須要增長代碼來寫Adapter等。
有了模板支持,就能夠經過模板來直接插入一組新的元素,而不須要使用列表控件。
詳細說明參見:http://www.javashuo.com/article/p-csaucbmp-ea.html
啓程軟件 2019年8月4日