Skip to content

LCUI 2.0.0

Compare
Choose a tag to compare
@lc-soft lc-soft released this 02 Mar 14:59
· 282 commits to develop since this release

Changelog

Bug Fixes

  • builder: comment node should be ignore (460ee00)
  • css: conditional jump or move depends on uninitialised value(s) (44486f1)
  • font: fix to get the correct file path (#187) (6d54685)
  • font: FontBitmap_Free() memory leak (c47a6c0)
  • gui: root widget is missing hover and active status (02c03c7)
  • gui: segmentation fault on resize empty window (#199) (56ce0b5)
  • gui: TextCaret did not remove the timer after destruction (a58b12d)
  • linux: InitLinuxKeybord() memory leak bug (61cadc8)
  • timer: the callback will still run after the timer is removed (43233b3)
  • correct the use of variables (513b3b9)
  • windows: touch support is not enabled by default (bc7710a)
  • cursor position should be updated before handle widget events (83fc949)
  • util: the preset dict types are not exported correctly (20abb19)

Code Refactoring

  • gui: add widget_background.h (d69fbb0)
  • gui: add widget_border.h (843232e)
  • gui: add widget_shadow.h (08ed51c)
  • gui: improve widget update processing (1a50aec)

Features

  • builder: output details when an error occurs (f7ed3b8)
  • css: add flexbox property parser (07d2911)
  • display: add LCUIDisplay_EnablePaintFlashing() (298ffa4)
  • display: flashing rendered rects (#180) (#190) (5ad4fec)
  • display: set the minimum screen size to 320x240 (317df70)
  • gui: add CSSFontStyle_IsEquals() (80d4149)
  • gui: add flexible box layout (3cbb246)
  • gui: change the call timing and parameter list for the runtask() (f058916)
  • gui: rewrite widget layout system (24e89aa)
  • gui: ScrollBar widget will reset when the container is destroyed (61e0f2c)
  • gui: set the container padding when the ScrollBar is visible (a436f41)
  • gui: unwrap() will fire the link and unlink events for each child (48344bc)
  • gui: update the sizing rules for the TextView widget (ea7e9d2)
  • util: use inline functions instead of global variables (0991d14)

Performance Improvements

  • display: no need to add dirty rectangles after resizing (b0985a2)
  • display: OpenMP is enabled only when the render area is large (1e57d9d)
  • gui: improve invalid area collection (e9ea262)
  • gui: improve textedit update processing (bbb7cbc)
  • gui: improve textview update processing (6824735)
  • add OpenMP support for widget rendering (#118) (#189) (d858333)
  • improve dirty rectangle collection (c81da29)

BREAKING CHANGES

  • util: DictType_StringKey and DictType_StringCopyKey have been replaced by inline functions
  • display: LCUIDisplay_ShowRectBorder() LCUIDisplay_HideRectBorder() have been removed.
  • gui: The widget shadow operation interface has been changed to private
  • gui: The widget background operation interface has been changed to private
  • gui: The widget border operation interface has been changed to private
  • gui: The textview widget must operate in the UI thread.
  • gui: The runtask() method takes two arguments and is called before each task is processed.
  • gui: Some widget operation functions have been renamed or removed.

更新日志

问题修复

  • builder: 注释结点应该被忽略 (460ee00)
  • css: 使用了未初始化的值 (44486f1)
  • font: 字体路径获取错误 (#187) (6d54685)
  • font: FontBitmap_Free() 内存泄露 (c47a6c0)
  • gui: 根部件缺少 hover 和 active 状态 (02c03c7)
  • gui: 调整空窗口的尺寸时出现段错误 (#199) (56ce0b5)
  • gui: TextCaret 应该在销毁后移除定时器 (a58b12d)
  • linux: InitLinuxKeybord() 内存泄漏 (61cadc8)
  • timer: 在移除定时器后,其回调依然会被执行 (43233b3)
  • util: dict 类型未正确导出 (20abb19)
  • windows: 未默认启用触控支持 (bc7710a)
  • 纠正变量的使用 (513b3b9)
  • 光标的位置应该在处理部件事件之前更新 (83fc949)

代码重构

  • gui: 添加 widget_background.h (d69fbb0)
  • gui: 添加 widget_border.h (843232e)
  • gui: 添加 widget_shadow.h (08ed51c)
  • gui: 改进部件更新流程 (1a50aec)

新功能

  • builder: 在出错时输出详细内容 (f7ed3b8)
  • css: 添加 flexbox 相关属性解析器 (07d2911)
  • display: 添加 LCUIDisplay_EnablePaintFlashing() (298ffa4)
  • display: 闪烁已渲染的矩形区域 (#180) (#190) (5ad4fec)
  • display: 设置最小屏幕尺寸为 320x240 (317df70)
  • gui: 添加 CSSFontStyle_IsEquals() (80d4149)
  • gui: 添加弹性盒子布局 (3cbb246)
  • gui: 更改部件原型上的 runtask() 方法的参数和调用时机 (f058916)
  • gui: 重写部件布局系统 (24e89aa)
  • gui: 滚动条部件将会在容器销毁后重置 (61e0f2c)
  • gui: 在滚动条可见时设置容器的内间距 (a436f41)
  • gui: unwrap() 将会为没给子部件触发 link 和 unlink 事件 (48344bc)
  • gui: 更新TextView 尺寸变动规则 (ea7e9d2)
  • util: 使用内联函数代替全局变量 (0991d14)

性能改进

  • display: 主窗口尺寸改变后无需添加无效区域 (b0985a2)
  • display: OpenMP 将只在渲染区域较大时启用 (1e57d9d)
  • gui: 改进部件的无效区域收集方式 (e9ea262)
  • gui: 改进 TextEdit 部件的更新流程 (bbb7cbc)
  • gui: 改进 TextView 部件的更新流程 (6824735)
  • 为部件渲染添加 OpenMP 支持 (#118) (#189) (d858333)
  • 改进表面 (Surface) 的无效区域的收集方式 (c81da29)

不兼容变动

  • util: DictType_StringKey and DictType_StringCopyKey 已改用内联函数代替
  • display: 已移除 LCUIDisplay_ShowRectBorder()LCUIDisplay_HideRectBorder()
  • gui: 部件的阴影操作接口已改为私有
  • gui: 部件的背景操作接口已改为私有
  • gui: 部件的边框操作接口已改为私有
  • gui: TextView 部件必须在 UI 线程中操作
  • gui: 部件原型上的 runtask() 方法接受两个参数,并且会在每个任务被处理后调用
  • gui: 一些部件操作接口已重命名或已移除