从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. eclipse中junit简单使用

    1.在工程中右击 Build Path,Add libraries 然后就可以运行对应的方法了,不需要main方法调用了

  2. docker相关使用

    安装docker 在CentOS 7上安装docker-ce,首先检查系统中是否已经安装过docker及相关依赖: $ sudo yum remove docker docker-client doc ...

  3. Ceph RGW Multisite 数据同步流程图

  4. MySQL sys Schema 简单介绍-2

    之前在<MySQL sys Schema 简单介绍-1>中简单的介绍了,sys Schema库中的表.那么这些表都可以查询些什么信息呢?接下来本文将做下介绍. 1. 表的情况 1.1 统计 ...

  5. ElasticStack学习(五):ElasticSearch索引与分词

    一.正排索引与倒排索引 1.什么是正排索引呢? 以一本书为例,一般在书的开始都会有书的目录,目录里面列举了一本书有哪些章节,大概有哪些内容,以及所对应的页码数.这样,我们在查找一些内容时,就可以通过目 ...

  6. C++中 / 和 % 在分离各位时的妙用

    在学习c++的过程中,我们一般用 / 和 % 来分解数字的各个位 取整 (/) 比如1234 / 10 等于 123.4,这相当于把前三位分解出来了 取余(%) 比如 12345 的分解方法 个位:1 ...

  7. Oracle数据库---PLSQL

    SET SERVEROUTPUT ONBEGIN --打印输出 DBMS_OUTPUT.PUT_LINE('hello everyone!');END; DECLARE v_name VARCHAR2 ...

  8. c++ 广度优先搜索(宽搜)

    c++ bfs基本应用 Knight Moves 题目描述 贝茜和她的表妹在玩一个简化版的国际象棋.棋盘如图所示: 贝茜和表妹各有一颗棋子.棋子每次移一步,且棋子只能往如图所示的八个方向移动.比赛的规 ...

  9. docker-compose一键部署redis一主二从三哨兵模式(含密码,数据持久化)

    本篇基于centos7服务器进行部署开发 一.拉取redis镜像,使用如下命令 docker pull redis 1.查看镜像是否拉取成功,使用如下命令 docker images 显示如下则证明拉 ...

  10. 使jira支持reopen率的统计

    jira本身并不能统计bug的reopen率,虽然bug工作流程中有reopen节点,只能借助第三方插件来处理. 插件名称:Enhancer Plugin for JIRA,此插件支持自定义字段.自定 ...