LCUI 1.1.0 Beta 发布,C 的图形界面库

  

LCUI 是一个图形界面开发库,主要使用 C 语言编写,可借助 CSS 和 XML 来构建简单的桌面应用程序。

本次的更新,针对渲染含有上万部件的界面做了一些优化,解决界面长时间未响应和内存占用过多的问题。详细更新日志如下:

问题修复

  • builder: 在追加部件前应该将其初始化 (f12e00b)
  • gui: focus 事件和 "focusable" 属性解析问题 (d9a39a5)
  • gui: 当 pointer-events 为 none 时应该忽略鼠标事件 (fc54a64)
  • gui: TextEdit 应该在失去焦点后重置光标的位置 (8de4e71)
  • gui: TextEdit_SetTextW() 未清空之前的内容 (51eef68)
  • gui: Button 的高度与 TextEdit 不一致 (5a918da)
  • gui: 设置部件外边距时会导致宽度计算错误 (#167) (d14023e)
  • thread: LCUIThread_Join() 未等待线程退出 (4ddb833)
  • util: 解码后的字符串长度不应将结束符计算在内 (93f3d77)
  • worker: 运行任务时不应阻塞任务队列 (2b41f54)

新功能

  • gui: 添加支持自定义部件更新规则 (bdd1d1c)
  • gui: 添加支持限制最大的子部件渲染数量 (ec5e0d6)
  • gui: 添加 only_on_visible 规则,用于允许仅在部件可见时更新它 (93049c4)
  • gui: 添加 cache_children_style 规则,用于缓存子部件样式,提高样式计算效率 (50cc6b2)
  • gui: 添加 first_update_visible_children 规则,用于优先更新可见的子部件 (4cd6fdc)
  • gui: 添加部件边框样式相关操作接口 (e8d52df)
  • gui: 添加 Widget_GetClosest() (e740138)
  • gui: 添加 Widget_SetHashList() (f466dee)
  • gui: 自动为事件名生成 id (fee31b0)
  • gui: Widget_SetAttribute() 将会调用 proto->setattr() (19992d1)
  • textview: 添加 TextView_SetColor() (3a7b53f)
  • util: 为 LCUIRect_ValidateArea() 添加返回值 (2fa6cf3)
  • util: 添加 strhash() (ebf843f)
  • util: 添加 strpool (c843df1)
  • util: 添加 strreplace() (409395d)
  • util: 在 Windows 上默认使用 OutputDebugString() 输出日志 (79ec21b)

性能改进

  • css: 更改样式表存储结构以减少内存占用 (9cc2957)
  • css: 减少重复的 DictType 内存分配 (01fd3f6)
  • gui: 改进部件销毁性能 (87aff87)
  • gui: 改进 Widget_Empty() 性能 (1654963)
  • gui: 减少部件的样式表的内存占用 (3790fbd)
  • gui: 移除 TextView 部件中的互斥锁 (6340d60)
  • gui: 使用 strlist 保存 classes 和 status (f611936)
  • gui: 更新部件列表的排序方法 (e9dbcea)
  • gui: 改用 LCUI_STYPE_INT 代替 LCUI_STYPE_VALUE (23090eb)
  • renderer: 改进渲染目标的选择方法 (1df08b6)

猜你喜欢

转载自www.oschina.net/news/105077/lcui-1-1-0-beta-released