ExDirectUI Theme


关于EXT

EXT是ExDirectUI主题文件(ExDirectUI Theme)的后缀名, 主题文件是ExDirectUI中最核心的组成部分之一, 它是用于存储窗口、控件外观和用户体验的核心文件 ExDUI主题包文件内含两个子文件, 分别是一张PNG格式的主题贴图文件和一个INI格式的主题描述文件, 这两个文件互相配合完成对UI中所有界面的外观进行管理的功能

文件结构

主题包文件的结构分为两部分:

  • 主题贴图文件 该文件格式为PNG, 可以通过PS、FW进行设计, 要求贴图之间不得重叠
  • 贴图描述文件 该文件格式为INI, 可以通过ExDUIThemeMaker生成, 也可通过记事本进行配置

一个主题包可以包含所有控件, 也可包含部分控件

贴图文件

完整的主题包贴图应包含以下部分:

  • 主窗口阴影图
  • 子窗口阴影图
  • 信息框背景图
  • 信息框 信息、错误、警告、询问、确认 五个图标
  • 菜单背景图
  • 菜单选中项背景图
  • 勾选、单选菜单项图标
  • 子菜单箭头图标
  • 系统菜单项 关闭、最小化、还原、最大化 四个图标
  • 关闭、最大化、还原、最小化、菜单、皮* 肤、设置、帮助 八个系统按钮的三态贴图
  • 按钮背景贴图
  • 单选框 未选中、选中 三态贴图
  • 选择框 未选中、半选中、选中 三态贴图
  • 下拉按钮背景三态贴图
  • 编辑框 正常、点燃、焦点 背景贴图
  • 水平、垂直 滚动条 滑条背景贴图
  • 水平、垂直 滚动条 两侧按钮、滑块 三态贴图

描述文件

描述文件用于配置关于各个控件贴图位置、大小、颜色等相关属性

完整的主题包描述文件语法如下:

  1. ; 开头的表示注释, 注意区分大小写, 本段代码中, 相关注释一般标注于下方
  2. ; 该主题包文件配置内参数是有错误的, 不要尝试直接使用哦
  3. [Info]
  4. ;主题包信息
  5. theme="Ex_DirectUI"
  6. ;主题名称
  7. author="YHan"
  8. ;主题作者
  9. url="Http://t.qq.com/Micro5oft"
  10. ;与作者相关的链接
  11. version="4.0"
  12. ;主题版本,尽量与引擎版本一致
  13. [Color]
  14. ;默认配色信息,对应值详见 Ex_ThemeGetColor 函数的相关参数
  15. ;支持的颜色表达式: 整数,#RRGGBBAA,rgb(r,g,b),rgba(r,g,b,a)
  16. 4=0
  17. ;菜单背景颜色
  18. 5=0
  19. ;窗口背景颜色
  20. 6=-872415232
  21. ;窗口边框颜色
  22. 7=-872415232
  23. ;菜单文本颜色
  24. 8=-872415232
  25. ;组件文本颜色
  26. 9=-872415232
  27. ;窗口标题颜色
  28. 13=0
  29. ;选中项目背景颜色
  30. 14=-1
  31. ;选中项目文本颜色
  32. 18=-872415232
  33. ;按钮文本颜色
  34. [Host]
  35. ;主窗口外观信息
  36. rect=60,95,30,18
  37. ;正常阴影矩形位置
  38. rect.inactive=90,95,30,18
  39. ;失去焦点时阴影矩形位置
  40. ;注意:九宫矩形是不变的,一般复制正常的阴影调低透明度即可.
  41. gird=9,8,12,2
  42. ;阴影贴图九宫矩形
  43. margin=4,3,-4,-5
  44. ;边距偏移像素,即:客户区偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
  45. rectround=4
  46. ;默认客户区圆角度
  47. cycaption=26
  48. ;标题栏区域的高度
  49. [Child]
  50. ;子窗口外观信息, 参数同主窗口同名参数一致, 这里省略
  51. rect=75,95,30,18
  52. rect.inactive=90,95,30,18
  53. gird=9,8,12,2
  54. margin=4,3,-4,-5
  55. rectround=4
  56. cycaption=26
  57. [MessageBox]
  58. rect=400,0,2,170
  59. ;信息框背景贴图矩形, 信息框阴影同主窗口一致.
  60. gird=0,0,0,42
  61. ;设置不被拉伸的尺寸.如果设置0,则被拉伸.
  62. size=0,0,48,48
  63. ;信息框图标尺寸
  64. 16=309,115,48,48
  65. ;错误图标
  66. 32=199,115,48,48
  67. ;询问图标
  68. 48=144,115,48,48
  69. ;警告图标
  70. 64=89,115,48,48
  71. ;信息图标
  72. 128=254,115,48,48
  73. ;确认图标
  74. [Menu] 菜单信息
  75. rect=190,0,30,25
  76. ;菜单背景的矩形区域
  77. gird=12,13,1,1
  78. ;菜单背景九宫矩形
  79. margin=5,4,-9,-9
  80. ;边距偏移像素,即:客户区偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
  81. margin.line=2,0,-2,0
  82. ;分割线偏移像素,该参数矩形值分别为 左边、顶边、右边、底边
  83. margin.icon=0,0,0,0
  84. ;菜单图标偏移像素
  85. margin.text=28,0,0,0
  86. ;菜单文本偏移像素
  87. rect.check=85,64,12,9
  88. ;菜单项选中图标矩形
  89. rect.radio=65,154,11,11
  90. ;菜单项单选图标矩形
  91. item=16,104,15,26
  92. ;选中菜单项背景贴图,不增加则使用纯色绘制
  93. item.gird=6,6,3,14
  94. ;选中菜单项背景贴图九宫矩形
  95. rect.sub=80,154,8,11
  96. ;子菜单箭头图标矩形
  97. offset=5,0,0,0
  98. ;子菜单的窗口偏移量(此值不可以设置过大)
  99. sys.close=6,12,12,12
  100. ;系统菜单 关闭图标矩形
  101. sys.max=7,38,14,12
  102. ;系统菜单 最大化图标矩形
  103. sys.restore=96,88,14,14
  104. ;系统菜单 还原图标矩形
  105. sys.min=6,62,12,11
  106. ;系统菜单 最小化图标矩形
  107. [SysButton]
  108. ;系统控制按钮
  109. margin=0,0,0,0
  110. ;控制按钮偏移像素,相对于客户区: 左边,顶边,右边,备用
  111. close.size=0,0,33,26
  112. ;关闭按钮尺寸
  113. close.normal=0,0,33,26
  114. ;关闭按钮正常状态贴图
  115. close.hover=34,0,33,26
  116. ;关闭按钮点燃状态贴图
  117. close.down=68,0,33,26
  118. ;关闭按钮按下状态贴图
  119. ;下面的配置类似
  120. ;以下为最大化按钮
  121. max.size=0,0,28,26
  122. max.normal=0,26,31,26
  123. max.hover=32,26,31,26
  124. max.down=64,26,31,26
  125. ;以下为还原按钮
  126. restore.size=0,0,28,26
  127. restore.normal=89,78,28,26
  128. restore.hover=121,78,28,26
  129. restore.down=153,78,28,26
  130. ;以下为最小化按钮
  131. min.size=0,0,28,26
  132. min.normal=0,52,25,26
  133. min.hover=26,52,25,26
  134. min.down=52,52,25,26
  135. ;以下为菜单按钮
  136. menu.size=0,0,28,26
  137. menu.normal=0,78,28,26
  138. menu.hover=29,78,28,26
  139. menu.down=58,78,28,26
  140. ;以下为皮肤按钮
  141. skn.size=0,0,28,26
  142. skn.normal=185,78,13,26
  143. skn.hover=199,78,13,26
  144. skn.down=213,78,13,26
  145. ;以下为帮助按钮
  146. help.size=0,0,28,26
  147. help.normal=289,78,17,26
  148. help.hover=310,78,17,26
  149. help.down=331,78,17,26
  150. ;以下为设置按钮
  151. set.size=0,0,28,26
  152. set.normal=230,78,16,26
  153. set.hover=250,78,16,26
  154. set.down=270,78,16,26
  155. [Button]
  156. ;按钮控件配置
  157. normal=0,104,15,26
  158. ;默认状态背景贴图
  159. hover=16,104,15,26
  160. ;点燃状态背景贴图
  161. down=32,104,15,26
  162. ;按下状态背景贴图
  163. focus=0,104,15,26
  164. ;焦点状态背景贴图
  165. gird=6,6,3,14
  166. ;背景贴图九宫矩形(四个按钮状态均使用该九宫)
  167. margin=3,3,-3,-3
  168. ;文本偏移矩形,该参数矩形值分别为 左边、顶边、右边、底边
  169. [SplitButton]
  170. ;下拉按钮配置
  171. size=0,0,20,0
  172. ;宽度强制为20像素,高度根据填充方式(居中)绘制.
  173. normal=40,89,10,6
  174. ;默认状态背景贴图
  175. hover=40,96,10,6
  176. ;点燃状态背景贴图
  177. down=40,96,10,6
  178. ;按下状态背景贴图
  179. filltype=3
  180. ;填充状态,详见 Ex_ThemeDrawEx 相关参数
  181. [CheckButton]
  182. ;复选按钮配置
  183. normal=2,132,17,17
  184. ;未选中状态下默认状态贴图
  185. hover=22,132,17,17
  186. ;未选中状态下点燃状态贴图
  187. down=22,132,17,17
  188. ;未选中状态下按下状态贴图
  189. check.normal=42,132,17,17
  190. ;选中状态下默认状态贴图
  191. check.hover=42,132,17,17
  192. ;选中状态下点燃状态贴图
  193. check.down=42,132,17,17
  194. ;选中状态下按下状态贴图
  195. half.normal=62,132,17,17
  196. ;半选中状态下默认状态贴图
  197. half.hover=62,132,17,17
  198. ;半选中状态下点燃状态贴图
  199. half.down=62,132,17,17
  200. ;半选中状态下按下状态贴图
  201. margin=2,0,2,0
  202. ;设置图标左右间距像素,该参数矩形值分别为 左边、备用、右边、备用
  203. [RadioButton]
  204. ;单选按钮配置,同复选按钮同名参数一致, 这里省略
  205. normal=2,151,17,17
  206. hover=22,151,17,17
  207. down=22,151,17,17
  208. check.normal=42,151,17,17
  209. check.hover=42,151,17,17
  210. check.down=42,151,17,17
  211. margin=2,0,2,0
  212. [ScrollBar]
  213. ;滚动条配置
  214. size=0,0,10,10
  215. ;定义滚动条尺寸,水平滚动条高度为10,垂直滚动条宽度为10.
  216. ;以下为垂直滚动条
  217. Vert.bkg=324,43,10,60
  218. ;滚动条背景贴图
  219. Vert.bkg.gird=4,4,2,54
  220. ;滚动条背景贴图九宫矩形
  221. Vert.Thumb.normal=334,63,10,40
  222. ;滚动条滑块正常状态贴图
  223. Vert.Thumb.hover=344,63,10,40
  224. ;滚动条滑块点燃状态贴图
  225. Vert.Thumb.down=354,63,10,40
  226. ;滚动条滑块按下状态贴图
  227. Vert.Thumb.gird=4,4,2,34
  228. ;滚动条滑块贴图九宫矩形
  229. Vert.Top.normal=339,40,10,9
  230. ;滚动条顶部按钮正常状态贴图
  231. Vert.Top.hover=351,40,10,9
  232. ;滚动条顶部按钮点燃状态贴图
  233. Vert.Top.down=363,40,10,9
  234. ;滚动条顶部按钮按下状态贴图
  235. Vert.Bottom.normal=339,50,10,9
  236. ;滚动条底部按钮正常状态贴图
  237. Vert.Bottom.hover=351,50,10,9
  238. ;滚动条底部按钮点燃状态贴图
  239. Vert.Bottom.down=363,50,10,9
  240. ;滚动条底部按钮按下状态贴图
  241. ;以下为水平滚动条,与垂直滚动条类似,这里省略
  242. Horz.bkg=285,42,32,10
  243. Horz.bkg.gird=4,4,26,2
  244. Horz.Thumb.normal=285,52,32,10
  245. Horz.Thumb.hover=285,62,32,10
  246. Horz.Thumb.down=285,72,32,10
  247. Horz.Thumb.gird=4,4,26,2
  248. Horz.Left.normal=286,86,9,10
  249. ;滚动条左侧按钮正常状态贴图
  250. Horz.Left.hover=295,86,9,10
  251. ;滚动条左侧按钮点燃状态贴图
  252. Horz.Left.down=305,86,9,10
  253. ;滚动条左侧按钮按下状态贴图
  254. Horz.Right.normal=285,100,9,10
  255. ;滚动条右侧按钮正常状态贴图
  256. Horz.Right.hover=295,100,9,10
  257. ;滚动条右侧按钮点燃状态贴图
  258. Horz.Right.down=305,100,9,10
  259. ;滚动条右侧按钮按下状态贴图
  260. [Edit]
  261. ;编辑框配置
  262. normal=220,70,20,26
  263. ;正常状态背景
  264. hover=240,70,20,26
  265. ;点燃状态背景
  266. focus=240,70,20,26
  267. ;焦点状态背景
  268. gird=3,4,13,19
  269. ;编辑框背景九宫矩形
  270. margin=3,3,-3,-3
  271. ;编辑框内容偏移量,该参数矩形值分别为 左边、顶边、右边、底边
  272. filltype=3
  273. ;背景填充方式

制作主题

ExDirectUI 4.1 的主题包可以通过官方的界面设计器ExDirectUIBuilder中附带的工具 ExDUIThemeMaker 制作

制作主题需要提供相关控件的PNG贴图文件, 通过ExDUIThemeMaker的配置, 即可生成EXT主题包文件

ExDUIThemeMaker 的使用方法如下:

工具都没开始写, 哪来的使用方法, 自己脑补吧→_→