从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日

全开源C++ DirectUI 界面库SOUI 3.0更新的更多相关文章

  1. 开源的DirectUI界面库

    1. duilib简介 duilib是一个开源的DirectUI界面库,简洁但是功能强大.而且还是BSD的license,所以即便是在商业上,大家也可以安心使用.现在大家可以从这个网站获取到他们所有的 ...

  2. 几款国产开源的Windows界面库

    上次介绍的几款图形界面库http://blog.okbase.net/vchelp/archive/23.html都是国外的开源项目,今天介绍的几款都是国人的开源项目,大部分是采用DirectUI设计 ...

  3. DuiLib DirectUI 界面库

    国内首个开源 的directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 .Window CE.Mobile等平台. Duilib 是一款强 ...

  4. delphi for DirectUI界面库

    下面是form代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Cont ...

  5. 开源低代码开发平台entfrm2.1.0更新

    开源低代码开发平台entfrm2.1.0更新 新功能 代码生成支持主子表,支持预览: 新增多应用顶部菜单与左侧菜单联动: element-ui升级到2.15.1: 新增表单管理,集成avue-from ...

  6. 开源的DirectUI界面开发库DUILIB试用demo (Win32程序)

    Demo 第三版源码VC2005工程(附全部.h,ansi/unicode lib,dll),下载地址:http://goo.gl/c0L7Q   开源项目地址:http://code.google. ...

  7. 开源一套DirectUI界面库

    http://www.cppblog.com/weiym/archive/2012/07/03/181307.html

  8. 几款开源的图形界面库(GUI Libraries)

    SmartWin++ 遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows ...

  9. UILite-MFC/WTL/DirectUI界面库

    之前写了UILite库介绍: http://blog.csdn.net/zhangzq86/article/details/9093945 如今UILite库能够使用git訪问了: https://g ...

随机推荐

  1. Flutter学习笔记(4)--Dart函数

    如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...

  2. C# 6 新语法

    1. using 声明的静态用法 2. 表达式体方法 3. 表达式体属性 4. 自动实现的属性初始化器 5. 只读的自动属性 6. nameof 运算符 7. 空值传播运算符 8. 字符串插值 9. ...

  3. redis 发布和订阅实现

    参考文献 15天玩转redis -- 第九篇 发布/订阅模式 <Redis设计与实现> 命令简介 在redis用户手册中,跟发布订阅相关的命令有如下的六个: PSUBSCRIBE PUBL ...

  4. springboot配置文件外置处理

    前言: 在springboot项目中,一般的配置文件都在resource/config下面,它可以以两种方式存在,一种是yml,一种是properties方式. 当运维和开发分开的时候,比如连接mys ...

  5. Oracle数据库常用脚本命令(二)

    --创建学生信息表create table student( sid number(8,0), name varchar2(20), sex char(2), birthday date, addre ...

  6. python3+pyQt5+QtDesignner实现窗口化猜数字游戏

    描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...

  7. 2017普及组D1T3 洛谷P3956 棋盘

    2017普及组D1T3 洛谷P3956 棋盘 原题 题目描述 有一个m×m的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在 ...

  8. C++学习书籍推荐《Exceptional C++》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <Exceptional C++:47个C++工程难题.编程问题和解决方案(中文版)>中的每个问题都给出了难度系数,在这些问题中阐释一些微妙的编程 ...

  9. 百度小程序自定义通用toast组件

    百度小程序Toast组件 author: @TiffanysBear 百度小程序自定义通用toast组件 BdToast百度小程序自定义通用组件-github地址 需求 手百小程序的toast仅支持在 ...

  10. TCP/IP协议-网络编程

    本文转载自公众号“呆呆熊一点通”,作者:呆呆 开篇语 前两年, 就买了<TCP/IP网络编程>这本书, 由于自身基础薄弱, 只是走马观花翻阅了几张. 后来工作了这些年, 越来越感到瓶颈期已 ...