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,18rect.inactive=90,95,30,18gird=9,8,12,2margin=4,3,-4,-5rectround=4cycaption=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,26max.normal=0,26,31,26max.hover=32,26,31,26max.down=64,26,31,26;以下为还原按钮restore.size=0,0,28,26restore.normal=89,78,28,26restore.hover=121,78,28,26restore.down=153,78,28,26;以下为最小化按钮min.size=0,0,28,26min.normal=0,52,25,26min.hover=26,52,25,26min.down=52,52,25,26;以下为菜单按钮menu.size=0,0,28,26menu.normal=0,78,28,26menu.hover=29,78,28,26menu.down=58,78,28,26;以下为皮肤按钮skn.size=0,0,28,26skn.normal=185,78,13,26skn.hover=199,78,13,26skn.down=213,78,13,26;以下为帮助按钮help.size=0,0,28,26help.normal=289,78,17,26help.hover=310,78,17,26help.down=331,78,17,26;以下为设置按钮set.size=0,0,28,26set.normal=230,78,16,26set.hover=250,78,16,26set.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,17hover=22,151,17,17down=22,151,17,17check.normal=42,151,17,17check.hover=42,151,17,17check.down=42,151,17,17margin=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,10Horz.bkg.gird=4,4,26,2Horz.Thumb.normal=285,52,32,10Horz.Thumb.hover=285,62,32,10Horz.Thumb.down=285,72,32,10Horz.Thumb.gird=4,4,26,2Horz.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 的使用方法如下:
工具都没开始写, 哪来的使用方法, 自己脑补吧→_→
