ExDirectUI Theme
关于EXT
EXT是ExDirectUI主题文件(ExDirectUI Theme)的后缀名, 主题文件是ExDirectUI中最核心的组成部分之一, 它是用于存储窗口、控件外观和用户体验的核心文件 ExDUI主题包文件内含两个子文件, 分别是一张PNG格式的主题贴图文件和一个INI格式的主题描述文件, 这两个文件互相配合完成对UI中所有界面的外观进行管理的功能
文件结构
主题包文件的结构分为两部分:
- 主题贴图文件 该文件格式为PNG, 可以通过PS、FW进行设计, 要求贴图之间不得重叠
- 贴图描述文件 该文件格式为INI, 可以通过ExDUIThemeMaker生成, 也可通过记事本进行配置
一个主题包可以包含所有控件, 也可包含部分控件
贴图文件
完整的主题包贴图应包含以下部分:
- 主窗口阴影图
- 子窗口阴影图
- 信息框背景图
- 信息框 信息、错误、警告、询问、确认 五个图标
- 菜单背景图
- 菜单选中项背景图
- 勾选、单选菜单项图标
- 子菜单箭头图标
- 系统菜单项 关闭、最小化、还原、最大化 四个图标
- 关闭、最大化、还原、最小化、菜单、皮* 肤、设置、帮助 八个系统按钮的三态贴图
- 按钮背景贴图
- 单选框 未选中、选中 三态贴图
- 选择框 未选中、半选中、选中 三态贴图
- 下拉按钮背景三态贴图
- 编辑框 正常、点燃、焦点 背景贴图
- 水平、垂直 滚动条 滑条背景贴图
- 水平、垂直 滚动条 两侧按钮、滑块 三态贴图
描述文件
描述文件用于配置关于各个控件贴图位置、大小、颜色等相关属性
完整的主题包描述文件语法如下:
; 开头的表示注释, 注意区分大小写, 本段代码中, 相关注释一般标注于下方
; 该主题包文件配置内参数是有错误的, 不要尝试直接使用哦
[Info]
;主题包信息
theme="Ex_DirectUI"
;主题名称
author="YHan"
;主题作者
url="Http://t.qq.com/Micro5oft"
;与作者相关的链接
version="4.0"
;主题版本,尽量与引擎版本一致
[Color]
;默认配色信息,对应值详见 Ex_ThemeGetColor 函数的相关参数
;支持的颜色表达式: 整数,#RRGGBBAA,rgb(r,g,b),rgba(r,g,b,a)
4=0
;菜单背景颜色
5=0
;窗口背景颜色
6=-872415232
;窗口边框颜色
7=-872415232
;菜单文本颜色
8=-872415232
;组件文本颜色
9=-872415232
;窗口标题颜色
13=0
;选中项目背景颜色
14=-1
;选中项目文本颜色
18=-872415232
;按钮文本颜色
[Host]
;主窗口外观信息
rect=60,95,30,18
;正常阴影矩形位置
rect.inactive=90,95,30,18
;失去焦点时阴影矩形位置
;注意:九宫矩形是不变的,一般复制正常的阴影调低透明度即可.
gird=9,8,12,2
;阴影贴图九宫矩形
margin=4,3,-4,-5
;边距偏移像素,即:客户区偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
rectround=4
;默认客户区圆角度
cycaption=26
;标题栏区域的高度
[Child]
;子窗口外观信息, 参数同主窗口同名参数一致, 这里省略
rect=75,95,30,18
rect.inactive=90,95,30,18
gird=9,8,12,2
margin=4,3,-4,-5
rectround=4
cycaption=26
[MessageBox]
rect=400,0,2,170
;信息框背景贴图矩形, 信息框阴影同主窗口一致.
gird=0,0,0,42
;设置不被拉伸的尺寸.如果设置0,则被拉伸.
size=0,0,48,48
;信息框图标尺寸
16=309,115,48,48
;错误图标
32=199,115,48,48
;询问图标
48=144,115,48,48
;警告图标
64=89,115,48,48
;信息图标
128=254,115,48,48
;确认图标
[Menu] 菜单信息
rect=190,0,30,25
;菜单背景的矩形区域
gird=12,13,1,1
;菜单背景九宫矩形
margin=5,4,-9,-9
;边距偏移像素,即:客户区偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
margin.line=2,0,-2,0
;分割线偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
margin.icon=0,0,0,0
;菜单图标偏移像素
margin.text=28,0,0,0
;菜单文本偏移像素
rect.check=85,64,12,9
;菜单项选中图标矩形
rect.radio=65,154,11,11
;菜单项单选图标矩形
item=16,104,15,26
;选中菜单项背景贴图,不增加则使用纯色绘制
item.gird=6,6,3,14
;选中菜单项背景贴图九宫矩形
rect.sub=80,154,8,11
;子菜单箭头图标矩形
offset=5,0,0,0
;子菜单的窗口偏移量(此值不可以设置过大)
sys.close=6,12,12,12
;系统菜单 关闭图标矩形
sys.max=7,38,14,12
;系统菜单 最大化图标矩形
sys.restore=96,88,14,14
;系统菜单 还原图标矩形
sys.min=6,62,12,11
;系统菜单 最小化图标矩形
[SysButton]
;系统控制按钮
margin=0,0,0,0
;控制按钮偏移像素,相对于客户区: 左边,顶边,右边,备用
close.size=0,0,33,26
;关闭按钮尺寸
close.normal=0,0,33,26
;关闭按钮正常状态贴图
close.hover=34,0,33,26
;关闭按钮点燃状态贴图
close.down=68,0,33,26
;关闭按钮按下状态贴图
;下面的配置类似
;以下为最大化按钮
max.size=0,0,28,26
max.normal=0,26,31,26
max.hover=32,26,31,26
max.down=64,26,31,26
;以下为还原按钮
restore.size=0,0,28,26
restore.normal=89,78,28,26
restore.hover=121,78,28,26
restore.down=153,78,28,26
;以下为最小化按钮
min.size=0,0,28,26
min.normal=0,52,25,26
min.hover=26,52,25,26
min.down=52,52,25,26
;以下为菜单按钮
menu.size=0,0,28,26
menu.normal=0,78,28,26
menu.hover=29,78,28,26
menu.down=58,78,28,26
;以下为皮肤按钮
skn.size=0,0,28,26
skn.normal=185,78,13,26
skn.hover=199,78,13,26
skn.down=213,78,13,26
;以下为帮助按钮
help.size=0,0,28,26
help.normal=289,78,17,26
help.hover=310,78,17,26
help.down=331,78,17,26
;以下为设置按钮
set.size=0,0,28,26
set.normal=230,78,16,26
set.hover=250,78,16,26
set.down=270,78,16,26
[Button]
;按钮控件配置
normal=0,104,15,26
;默认状态背景贴图
hover=16,104,15,26
;点燃状态背景贴图
down=32,104,15,26
;按下状态背景贴图
focus=0,104,15,26
;焦点状态背景贴图
gird=6,6,3,14
;背景贴图九宫矩形(四个按钮状态均使用该九宫)
margin=3,3,-3,-3
;文本偏移矩形,该参数矩形值分别为 左边、顶边、右边、底边
[SplitButton]
;下拉按钮配置
size=0,0,20,0
;宽度强制为20像素,高度根据填充方式(居中)绘制.
normal=40,89,10,6
;默认状态背景贴图
hover=40,96,10,6
;点燃状态背景贴图
down=40,96,10,6
;按下状态背景贴图
filltype=3
;填充状态,详见 Ex_ThemeDrawEx 相关参数
[CheckButton]
;复选按钮配置
normal=2,132,17,17
;未选中状态下默认状态贴图
hover=22,132,17,17
;未选中状态下点燃状态贴图
down=22,132,17,17
;未选中状态下按下状态贴图
check.normal=42,132,17,17
;选中状态下默认状态贴图
check.hover=42,132,17,17
;选中状态下点燃状态贴图
check.down=42,132,17,17
;选中状态下按下状态贴图
half.normal=62,132,17,17
;半选中状态下默认状态贴图
half.hover=62,132,17,17
;半选中状态下点燃状态贴图
half.down=62,132,17,17
;半选中状态下按下状态贴图
margin=2,0,2,0
;设置图标左右间距像素,该参数矩形值分别为 左边、备用、右边、备用
[RadioButton]
;单选按钮配置,同复选按钮同名参数一致, 这里省略
normal=2,151,17,17
hover=22,151,17,17
down=22,151,17,17
check.normal=42,151,17,17
check.hover=42,151,17,17
check.down=42,151,17,17
margin=2,0,2,0
[ScrollBar]
;滚动条配置
size=0,0,10,10
;定义滚动条尺寸,水平滚动条高度为10,垂直滚动条宽度为10.
;以下为垂直滚动条
Vert.bkg=324,43,10,60
;滚动条背景贴图
Vert.bkg.gird=4,4,2,54
;滚动条背景贴图九宫矩形
Vert.Thumb.normal=334,63,10,40
;滚动条滑块正常状态贴图
Vert.Thumb.hover=344,63,10,40
;滚动条滑块点燃状态贴图
Vert.Thumb.down=354,63,10,40
;滚动条滑块按下状态贴图
Vert.Thumb.gird=4,4,2,34
;滚动条滑块贴图九宫矩形
Vert.Top.normal=339,40,10,9
;滚动条顶部按钮正常状态贴图
Vert.Top.hover=351,40,10,9
;滚动条顶部按钮点燃状态贴图
Vert.Top.down=363,40,10,9
;滚动条顶部按钮按下状态贴图
Vert.Bottom.normal=339,50,10,9
;滚动条底部按钮正常状态贴图
Vert.Bottom.hover=351,50,10,9
;滚动条底部按钮点燃状态贴图
Vert.Bottom.down=363,50,10,9
;滚动条底部按钮按下状态贴图
;以下为水平滚动条,与垂直滚动条类似,这里省略
Horz.bkg=285,42,32,10
Horz.bkg.gird=4,4,26,2
Horz.Thumb.normal=285,52,32,10
Horz.Thumb.hover=285,62,32,10
Horz.Thumb.down=285,72,32,10
Horz.Thumb.gird=4,4,26,2
Horz.Left.normal=286,86,9,10
;滚动条左侧按钮正常状态贴图
Horz.Left.hover=295,86,9,10
;滚动条左侧按钮点燃状态贴图
Horz.Left.down=305,86,9,10
;滚动条左侧按钮按下状态贴图
Horz.Right.normal=285,100,9,10
;滚动条右侧按钮正常状态贴图
Horz.Right.hover=295,100,9,10
;滚动条右侧按钮点燃状态贴图
Horz.Right.down=305,100,9,10
;滚动条右侧按钮按下状态贴图
[Edit]
;编辑框配置
normal=220,70,20,26
;正常状态背景
hover=240,70,20,26
;点燃状态背景
focus=240,70,20,26
;焦点状态背景
gird=3,4,13,19
;编辑框背景九宫矩形
margin=3,3,-3,-3
;编辑框内容偏移量,该参数矩形值分别为 左边、顶边、右边、底边
filltype=3
;背景填充方式
制作主题
ExDirectUI 4.1 的主题包可以通过官方的界面设计器ExDirectUIBuilder中附带的工具 ExDUIThemeMaker 制作
制作主题需要提供相关控件的PNG贴图文件, 通过ExDUIThemeMaker的配置, 即可生成EXT主题包文件
ExDUIThemeMaker 的使用方法如下:
工具都没开始写, 哪来的使用方法, 自己脑补吧→_→