全开源C++ DirectUI 界面库SOUI 3.0更新
从2019.5.22开始,SOUI版本号更新到2.9.0.2,后面开始准备3.0的开发,历时近3个月,现在3.0的主要工作基本完成。
为了便于大家区别2.x,3.0启用了新的代码仓库:https://github.com/soui3/soui
3.0相比2.x有以下代码的更新:
1、规范代码中使用的类名,2.x中由于历史原因有一些类名一直是Cxxx这样的以C开头的类名,新版本统一调整为S开头,比如CAutoRefPtr=>SAutoRefPtr, CSimpleWnd=>SNativeWnd等。
2、删除原来的 CSize SWindow::GetDesiredSize(LPCRECT)重载方法,只保留CSize SWindow::GetDesiredSize(int wid, int hei)这个方法。如果有息定义控件重载了这个方法需要注意。
3、将原来指定主窗口大小的属性从XML的SOUI结点调整到root结点。soui结点不和swindow对象对应,而root结点是一个SWindow对象,把属性迁移到root更合理。
4、调整光标显示的实现代码。在uidef.xml里增加了caret元素,用来描述支持光标行为。支持动画光标,支持改变光标颜色。
<caret color="rgb(255,0,0)" animate="true" speed="30" interpolator="Accelerate"/>
5、支持滚动条动画特效,配置后滚动条只在有鼠标操作才显示,否则就隐藏,采用渐显渐隐过渡。在XML中配置fadeInterpolator属性来指定插值动画类型,再配置一个fadeSpeed属性(整数,默认30)就可以控制动画。
6、完全的矩阵变换支持。增加SWindow::SetMatrix来实现窗口显示的旋转,平移,绽放等矩阵支持的操作。
7、从Android移植了Animation模块,以前一个与Android的数值动画对应的ValueAnimation模块。可以基本上实现Android的全部动画效果。通过实现AnimationSet的repeatCount属性,还可以实现Android不方便实现的动画效果。
总之,3.0一个任务就是只需要简单的配置XML主可以把界面效果做得更加炫酷。
此外,2.8中也引入了两个重大的更新,这里也一便介绍一下:
1、调整style的命名支持,如果style以window.style的形式命名,那前面的window就是控件类型,而window.style还是一个常规的style。
假定用户已经在style中定义了一个<button.web xxxx/>这样的style, 通过支持这们的命名规则,2.8以上的SOUI,XML可以直接使用"button.web"来创建一个button控件,该控件自动使用button.web这个style。
2、增加界面模板支持。
如果一个界面中有很多元素是重复的,但是内容是变化的,常规的做法可能是使用列表来做。但是用列表可能代表着用户需要增加代码来写Adapter等。
有了模板支持,就可以通过模板来直接插入一组新的元素,而不需要使用列表控件。
详细说明参见:https://www.cnblogs.com/setoutsoft/p/10528519.html
启程软件 2019年8月4日
最新文章
- 升级npm
- BI分析受阻?FineBI推出SPA螺旋式分析新功能!
- Javascript高性能编程-提高javascript加载速度
- Hibernate的save()和persist()的区别
- go语言循环语句 for
- 转 Flex MXML编译成AS类
- 一个DOM元素绑定多个事件时,先执行冒泡还是捕获
- Delphi经验总结(2)
- 第二百六十九天 how can I 坚持
- 【转】HTML5游戏开发经典视频教程、电子书汇总
- java_web学习(六) request对象中的get和post差异
- springMVC,spring,mybatis全注解搭建框架--第一步,让框架跑起来
- Java - day002 - 运算符,位运算,流程控制
- 《Java》第三周学习总结 20175301
- OAuth2认证和授权:ClientCredentials认证
- EBS获取code_combination_id(CCID)时段值自动被置为默认值的问题
- Node.js &; SSR
- DataTable学习笔记---排序细则、列隐藏
- 【Scipy】初步认识
- unity, water cube
热门文章
- selenium3+python3自动化测试学习之模拟事件处理
- Codeforces Gym101341K:Competitions(DP)
- 修改Windows10的host文件。
- STM32F0_HAL库驱动描述——基于F1的USART串口IT中断实现解析
- WinForm控件之【ListView】
- 【HDU - 3533】Escape(bfs)
- js方法总结,不断更新...
- 个人永久性免费-Excel催化剂功能第42波-任意字符指定长度随机函数
- C#5.0新增功能01 异步编程
- [leetcode] 406. Queue Reconstruction by Height (medium)