Skip to content

XiaofengCode/Duilib

Repository files navigation

本项目是由本人基于原始Duilib维护而来,和当前他人使用的Duilib可能不兼容

一些较大的改动(目前整理出来这些,后续可能还会补充):

1、支持StringTable,但是不支持动态切换
	StringTable的格式为:
	<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
	<String default="en_us">
		<en_us>
			<IDS_XXX>123</IDS_XXX>
			<IDS_XXX2>#IDS_XXX#456</IDS_XXX2>
			<!-- IDS_XXX2 对应的字符串为123456,两个#之间可以引用其他ID-->
		</en_us>
	</String>
	或
	<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
	<String>
		<IDS_XXX>XXX</IDS_XXX>
	</String>
	
	皮肤文件里可以使用Window的StringTable属性指定StringTable的文件名,默认为String.xml
	引用方法:
	<Label text="#IDS_XXX"/>
	注意:所有字符串ID必须以“IDS_”开头,这是为了方便区分普通字符串还是字符串ID
	
2、基于default扩展了style属性,支持嵌套Style
3、控件名和属性不区分大小写
4、属性限定符不区分先后顺序如hotbkcolor与bkhotcolor等同,即color的限定符顺序不区分
5、将XML改为pugixml,语法支持更标准,同时也更严格,比如之前属性之间手误没有空格也能解析通过,但是现在不行了
6、所有内置控件都基于Container,即所有控件内都可以嵌套其他控件
7、WindowImplBase新增一些常用函数GetDlgItem,SetDlgItemText等,GetDlgItem会从当前虚拟窗口内查找,没有虚拟窗口则从根查找
8、虚拟窗口可以嵌套,同时Option的Group会自动区分虚拟窗口,即不同的虚拟窗口引用同一个xml文件不再担心Option的Group重复的问题
9、Font改用字符串名称,不再使用声明顺序
10、预处理命令可以在任何使用之前声明,不需要必须紧跟在Window后声明
11、改善了TreeView的可用性

About

基于原始Duilib维护多年的界面库

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages