bones ui
来源:互联网 发布:中国民营企业调查数据 编辑:程序博客网 时间:2024/06/08 10:01
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文件如下:
需要注意的是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 ui
- HOJ 2773 Bones
- BUPT OJ189 Draw Bones
- POJ 2327 Dumb Bones
- UVa 10529 - Dumb Bones
- A Bare-Bones Printing Application
- OpenGL:Tutorials:Basic Bones System
- 骨骼动画(bones animation)
- Node.js Bones框架学习
- bones脚本篇 - 扩展标签
- 骨骼动画(bones animation)简介
- uva 10529 - Dumb Bones(概率dp)
- UVA 10529 - Dumb Bones(概率+区间dp)
- uva 10529 - Dumb Bones(概率+区间dp)
- bones脚本篇 - 内置标签root
- bones脚本篇 - 内置标签image
- bones脚本篇 - 模拟一个按钮
- bones脚本篇 - 内置标签scroller
- Insert Interval
- 使用Android Lint来改善你的代码
- 迷途指针
- 【FAQ】如何查找 git 某次 commit 中是否包含字符串 abc?
- 自定义tabbar切换视图
- bones ui
- 微软SqlServerHelper
- win7安装.Net Framework 4,出现错误码(1603,0x80070643)
- iOS 9 Spotlight简单使用
- iOS 9适配技巧(更新版)
- Table Layout
- jquery 实现可编辑的表格
- netbeans,界面组合框的点击刷新应用和从数据库提取数据添加到列表应用
- socket C#发送int整数delphi接收