Soui属性列表一览

作者:智力糖

















提示:HOME键可以立即回到页面的头部,本属性列表仅支持 3.0版本

SOUI文件概论

soui包含了资源索引XML文件介绍(uires.idx)

属性 默认值 类型 说明
uires.idx < file name="webbtn_back" path="image\webbtn_back.png" / > STRING SOUI资源的入口,定义了程序中使用的各种资源,以"resource"为根节点。 在uires.idx中,可以定义了UIDEF,ICON,CURSOR,LAYOUT,IMGX,GIF,rtf,script,translator这些资源类型。
init.xml < font face="宋体" size="15"/ > < string src="values:string" / > < skin src="values:skin"/ > < color src="values:color"/ > STRING 定义SOUI中使用的全局UI定义。一般定义font,string,skins,style,objattr五个子节点
skins.xml < imglist name="skin_page_icons" src="imgx:png_page_icons" states="9"/ > STRING 定义SOUI中使用的全局窗口元素绘制对象,每一个对象都对应一个SOUI::ISkinObj的派生类。

uires.idx

属性 默认值 类型 说明
name gif_penguin STRING UI布局的XML文件引用该资源的标识
path image\penguin.gif STRING 该资源真实的文件存储路径。

init.xml

这个xml_init必须是以UIDEF为唯一根节点

1.font

范例: < font face="微软雅黑" size="18"/ >

属性 默认值 类型 说明
face 微软雅黑 STRING 字体的名称
size 18 INT 字体的大小
2.string

定义一个"name-字符串"映射,在布局的XML文件中可以通过引用字符串的name来获得字符串

范例:< string >< ver value="1.0"/ >< /string >

skins.xml

SOUI系统默认实现了SSkinImgList(imglist), SSkinImgFrame(imgframe), SSkinButton(button), SSkinGradation(gradation), SSkinScrollbar(scrollbar), SSkinMenuBorder(border)这几种绘图类型。SSkinImgList为SOUI中的C++类名,imglist为在skins节点中的元素类型名。

< !-- skin的通用属性-- >

属性 默认值 类型 说明
name skin_page_icons STRING 皮肤名字,同一窗口内必须唯一,如(skin_page_icons)
src imgx:btn_nex STRING skinObj引用的图片文件定义在uires.idx中的name属性。资源引用格式为type:name
colorizeEnable 0 INT 标识是否支持色调调节 0不支持 1支持
scale 0 INT 比例缩放
1、imglist

imglist是一个图片序列对象,可以包含一组小图片,常见的如按钮需要使用的4种状态图。

范例:< imglist name="skin_tree_icon" src="imgx:png_treeicon" states="3" / >

属性 默认值 类型 说明
tile 0 INT 定义图片在放大显示时平铺还是拉伸,0--位伸(默认)其它--平铺
vertical 0 INT 子图是否垂直排列,0--水平排列(默认), 其它--垂直排列
states 1 INT 子图数量,默认为1
autoFit 0 INT 自适应尺寸 窗口拉伸的时候,是不是变形充满 1 变形充满 0不变形
filterLevel high STRING 缩放级别 高图片缩放没锯齿 取值high、medium,none、low
2、imgframe

imgframe是一个提供九宫格显示的绘图对象,SSkinImgFrame派生自SSkinImgList,因此imgframe也拥有imglist的全部属性。

范例: < imgframe name="skin_tab_left" src="imgx:png_tab_left" states="3" margin="1,1,1,1" / >

属性 默认值 类型 说明
left 5 INT 九宫格左边距
top 5 INT 九宫格上边距
right 5 INT 九宫格右边距
bottom 5 INT 九宫格下边距
margin-x 5 INT 九宫格左右边距
margin-y 0 INT 九宫格上下边距
margin 10,10,10,10 RECT 外边距, 九宫格 4 周
3、button

button绘图对象是绘制按钮时使用的,它使用渐变实现绘制按钮的4种状态。

范例:< button name="win10btn" colorBorder="#ADADAD" colorUp="#E1E1E1" colorDown="#E1E1E1" colorBorderHover="#0078D7" colorUpHover="#E5F1FB" colorDownHover="#E5F1FB" colorBorderPush="#005499" colorUpPush="#CCE4F7" colorDownPush="#CCE4F7" cornerPercent="0.5" / >

属性 默认值 类型 说明
cornerPercent 0.5 DWORD 圆角百分比,数值范围0-1
colorBorder #cccccc COLOR 边框颜色,格式:#rgba
colorUp #cccccc COLOR 正常状态的渐变色上颜色,格式:#rgba
colorDown #cccccc COLOR 正常状态渐变终止颜色,格式:#rgba"
colorUpHover #cccccc COLOR 浮动状态渐变起始颜色
colorDownHover #cccccc COLOR 浮动状态渐变终止颜色
colorUpPush #cccccc COLOR 下压状态渐变起始颜色
colorDownPush #cccccc COLOR 下压状态渐变终止颜色
colorUpDisable #cccccc COLOR 禁用状态渐变起始颜色
colorDownDisable #cccccc COLOR 禁用状态渐变终止颜色
4、gradation

渐变绘图对象,提供3个属性

范例:< gradation name="skin_caption" colorFrom="#0000bb" colorTo="#0000ff" vertical="0" / >

属性 默认值 类型 说明
vertical 0 INT 渐变方向,0--水平(默认), 1--垂直
colorFrom #cccccc COLOR 渐变起始颜色,格式:#rgba
colorTo #cccccc COLOR 渐变终止颜色,格式:#rgba
5、scrollbar

动条皮肤,虽然它派生自imglist,实际上imglist中实现的属性在scrollbar中没有意义,只是为了省点代码 如果没有帮手也没有禁用状态,图片应该是8*3的正方形网格。 有帮手则X增加一个网格,有禁用状态则Y增加一个网格。

范例: < vscrollbar name="skin_vscrollbar" src="imgx:png_vscroll" states="3" margin="4" / >

属性 默认值 类型 说明
margin 0 INT 边缘拉伸大小
hasGripper 0 INT 滑块上是否有帮手(gripper)
hasInactive 0 INT 是否有禁用态

style

在style节点中,定义UI布局中SOUI窗口对象的属性集合,它们是SWindow对象的属性,所有SWindow对象都可以通过class属性来引用style节点中定义的属性集合。

范例: < class name="cls_btn_weblink" cursor="hand" colorText="#1e78d5" colorTextHover="#1e78d5" font="italic:1" fontHover="underline:1,italic:1" / >

属性 默认值 类型 说明
name cls_edit STRING 风格样式名称
ncSkin INT 窗口绘制非客户区边框时引用的ISkinObj对象名称 属性值为BUILDIN_SKIN_NAMES
margin-x 0 INT 非客户区left及right宽度
margin-y 0 INT 非客户区top及bottom宽度
textMode 1 INT 文本对齐 0--对齐(默认)1--不对齐
align left STRING 文字横向对齐方式,取值left、center、right 在没有指定textMode时有效
valign center STRING 文字纵向对齐方式,取值top、center、bottom 在没有指定textMode时有效
colorBkgnd #0000ff COLOR 背景颜色 与skin属性冲突,优先使用skin对象绘制背景
colorBorder #0000ff COLOR 边框颜色 与skin属性冲突,优先使用skin对象绘制背景
font adding:5,bold:1 STRING 默认字体 字体属性可以分解为5个子属性 adding:5,bold:1 solid,blurRadius:3 underline:1 bold 加粗 adding 相对默认字号加大 solid 实线 blurRadius 模糊半径 skia渲染支持字体模糊 underline下划线
fontHover left STRING 悬停时字体 参照Font属性
fontPush left STRING 按下时字体 参照Font属性
fontDisable left STRING 失效时字体 参照Font属性
colorText #0000ff COLOR 默认字体颜色
colorTextHover #0000ff COLOR 悬停时字体颜色
colorTextPush #0000ff COLOR 按下时字体颜色
colorTextDisable #0000ff COLOR 失效时字体颜色
dotted 0 INT 在文件绘制长度超出客户区时是否使用'...', 0--不使用(默认) 1--使用
cursor hand STRING 鼠标移入时的样式 指定光标资源名称 如 hand ANI_ARROW

SOUI

soui界面的主节点。定义了主界面的真窗口的各种属性

属性 默认值 类型 说明
trCtx STRING 在语言翻译时作为context使用 xml名称
title SOUI-DEMO STRING 窗口标题 只能在STabCtrl中使用
maxInset 0,0,0,0 RECT 窗口最大化时超出屏幕的边缘大小。经测试,WS_OVERLAPPED style的窗口该属性无效
margin 0,0,0,0 RECT 拉伸窗口感应区大小
minsize 0,0,0,0 RECT 窗口最小值
wndStyle 0 DWORD 窗口样式,参考windows的窗口属性WS_BORDER WS_CAPTION
wndStyleEx 0 DWORD 窗口扩展样式
resizable 0 INT 窗口是否可以改变大小 1 可以改变 0不可以改变
translucent 0 INT 窗口透明,此属性子窗口不能使用真窗口 0不透明 1透明
sendWheel2Hover 0 INT 发送鼠标滚轮消息发送到 hover 窗口 1发送 0不发送
appWnd 0 INT 窗口是否为主窗口(主窗口关闭程序会退出),在任务栏上显示按钮 窗口对应 WS_EX_APPWINDOW
toolwindow 0 INT 设置WS_ES_TOOLWINDOW属性
smallIcon ICON_LOGO:16 STRING 题栏小图标 格式:iconname:size
bigIcon ICON_LOGO:32 STRING 标题栏大图标 格式:iconname:size
alpha 255 INT 窗口的alpha值(0-255),0为完全透明
allowSpy 1 INT 是否允许 SouiSpy 探测窗口
wndType undefine STRING 窗口类型傎为 appMain 为主窗口 undefine 未定义 normal常规窗口 主窗口标志,有该标志的窗口关闭时自动发送WM_QUIT
width 666 INT 窗口预设的宽度,如(666) 自动计算就设置为-1
height 400 INT 窗口预设的高度,如(666) 自动计算就设置为-1
size 0,0 SIZE 窗口的初始化大小,如(800,500) 自动计算就设置为-1,1

Window

一般窗口控件 支持对style中的属性定制

范例: < window id="9527" pos="1,1,-1,-1" skin="demoskinbk" cache="1" colorBkgnd="#ffffff" alpha="100" >/p>

属性 默认值 类型 说明
class STRING style名称,style是一组属性的集合)
id 0 INT 窗口ID SWindow的FindChildByID根据本属性来查找子窗口。
name STRING 窗口名称 SWindow的FindChildByName根据本属性来查找子窗口。
cache 0 INT 绘制缓存 0--无绘制缓存(默认) 1--有绘制缓存 无缓存时每次刷新时发送WM_PAINT消息重绘;有缓存时为窗口创建一个绘制缓存,只有自己窗口更新后重绘,否则在绘制链中直接调用缓存绘制。
skin STRING 定义皮肤样式 skin名称
ncSkin STRING 窗口绘制非客户区边框时引用的ISkinObj对象名称
data data STRING 可以在XML中指定一个对象的附加数据,通过GetUserData访问。
enable 1 INT 控件是否可用 0--不可用 1--可用
visible 1 INT 控件是否可见 0--隐藏 1--可见
pos 0,0,0,0 RECT 控件位置 如(0,0,100,100)
display 1 INT 显示 0--隐藏不占位 1--隐藏占位(默认)
tip this is tip STRING 提示框
msgTransparent 0 INT 鼠标消息穿透 决定是否可以收到鼠标消息 0--窗口接收鼠标键盘消息(默认) 1--不接收消息
sep 0 INT 窗口默认间距 在下一个窗口没有指定pos属性时,自动横向布局时与本窗口的间距
maxwidth 9999 INT 窗口最大宽度,根据内容自适应窗口大小时窗口的最大宽度 如(100)
maxheight 9999 INT 窗口最大高度,如(30)
clipClient 0 INT 是否在绘制窗口时限制内容只绘制在客户区, 如果窗口内容绘制时可能超出窗口,则将该属性设置为1 0--不剪裁(默认) 1--剪裁
focusable 0 INT 窗口是否接受焦点,0--不接受 1--接受(默认)
float 0 INT 是否使用绝对定位 ,0--不接受(默认) 1--接受
alpha 255 INT 窗口的alpha值(0-255),如(100)
dotted 0 INT 在文件绘制长度超出客户区时是否使用'...', 0--不使用(默认) 1--使用
cursor hand STRING 光标 指定光标资源名称 如 hand ANI_ARROW
offset 0,0 STRING pos 属性完成坐标定位后再将坐标进行偏移的属性
layeredWindow 0 INT 指示是否是一个分层窗口
trackMouseEvent 0 INT 鼠标事件跟踪,捕获子窗口鼠标消息
text 测试文本 STRING 从text属性中获取显示文本,如(测试文本)
drawFocusRect 1 INT 绘制默认的焦点虚框 0--不绘制 1--绘制(默认)
layout soui STRING 布局样式,支持4种布局:soui(相对布局),gridLayout(网格布局), vbox(垂直线性布局), hbox(水平线性布局)

button

按钮控件类 通过属性ID绑定click事件 Use id attribute to process click event

范例:< button pos="10,5,@150,@25" name="btn_test" tip="click the button to see how to writing the response function" >btn< /button >

属性 默认值 类型 说明
accel ctrl+alt+f11 STRING 键盘快捷键 如:ctrl+alt+f11
animate 0 INT 动画效果 0--关闭(默认) 1--启用
animateStep 0 INT 动画的组成帧数 alpha for an animate step
disableAccelIfInvisible 0 INT 当控件不可见的时候禁止快捷键disable accel if invisible 0--关闭(默认) 1--启用