bones ui

bones ui
一:简介
bones ui 是自己开发的一个direct ui开源框架,支持xml,lua 以及一个类似css的简单属性描述器
之所以取名叫bones,是希望这套框架提供类似骨头一样的基础元素来帮助UI程序员搭建出UI
整个UI的设计参考了网上找到的bolt 文档以及chrome ui

a: 控件可以完全使用C++编写 也可以 C++和lua混合编程,内部使用skia支持32位颜色ARGB
b: osr模式 提供了一副位图,只需要把位图绘制到窗口,并把窗口事件转发给框架即可,由于没有对窗口进行封装,理论上可以嵌入到任何框架中使用
c: 源码下载 https://github.com/bonescreater/bones 默认提供了dll编译 使用时只要包含bones.h即可。如需静态编译直接改工程配置就行了 目前编译还是很简单的。
由于时间关系 到今年年底为止不进行新功能的开发,接下来的几个月打算一边写教程来测试功能整理思路,一边搭建测试环境把该加的测试加上去,顺便修复下bug,目前还缺少的功能有自动排版 拖放 矩阵变换, 预计明年年初开始慢慢增加这些功能

二:基础知识
a:xml文件
bones支持使用xml文件来创建 ,一个框架能够解析的xml文件如下:
bones ui_第1张图片
需要注意的是xml文件必须是utf-8编码的。
Body下的每个节点支持3个属性:id,group,class ,其中group 暂时无用
具体的描述将在内置标签的讲解中穿插进行

b:lua脚本
Bones支持使用lua脚本编程,脚本编程的好处就是编写效率高,缺点就是调试不方便,不像C++有各种成熟的调试工具。 具体是使用C++还是lua 看个人的选择。不会lua的人可以自学下花1个小时了解下基本概念还有条件语句之类的就差不多了。
Lua的教程网络上多的是,而且非常简单易学,这里就不讲如何使用lua了,同样lua文件也必须是utf-8编码

c:样式表style
style 目前只支持以.开始的class名 不支持像css中以#开始的ID名等其他语法,在原先的设计中 xml lua style应该是跟html js css类似的:xml表述结构 lua 表示逻辑 style 表示外观,但style的支持目前还比较弱,当前只能使用style来描述节点的位置和大小(还支持少量属性)

d:教程
bones的教程打算从脚本开始,由于使用时必须先用C++创建出窗口而这部分交互将在教程的C++篇进行讲解,为了更快的从脚本入手,这里先提供编译好的exe和dll以及教程里需要用到的xml,lua和图片资源

http://download.csdn.net/detail/dalixux/9225851(已更新到list)

解压后将sample.exe bones.dll复制到 xml所在的目录下 点击sample.exe运行即可
你也可以下载源码,在sample目录下的 panel.cpp中有具体如何交互的代码。

脚本篇
一 内置标签root
http://blog.csdn.net/dalixux/article/details/48830879
二 内置标签image
http://blog.csdn.net/dalixux/article/details/48831007
三 模拟一个按钮
http://blog.csdn.net/dalixux/article/details/48831049
四 扩展标签
http://blog.csdn.net/dalixux/article/details/49019235
五 给按钮增加响应焦点的外观
http://blog.csdn.net/dalixux/article/details/49021777
六 内置标签shape
七 内置标签text
八 内置标签scroller
http://blog.csdn.net/dalixux/article/details/49361879
九 实现一个简单的滚动条
http://blog.csdn.net/dalixux/article/details/49362287
十 实现一个简单的列表
http://blog.csdn.net/dalixux/article/details/49507983
十一 内置标签richedit
十二 内置标签 webview

C++篇(未想好)
……….

你可能感兴趣的:(bones)