LCUI 1.3.0 发布,C 的图形界面开发库

LCUI 1.3.0 发布了,LCUI 是一个使用 C 语言编写的图形界面开发库。

更新日志

问题修复:

  • C++ “operator” 关键字冲突 (5a5ba8c)
  • css: 设置字体样式解析器的 style_handler 后未起作用 (6869683)
  • display: X11Surface_SetCaptionW() 内存泄漏 (484c3d7)
  • font: 当 font_size > 18 时字体位图获取失败 (d6315c5)
  • gui: 部件的默认边框颜色应为透明 (transparent) (5164955)
  • gui: 当部件 pointer-events 为 none 时的事件目标选择问题 (0f26c8b)
  • gui: TextEdit 占位符未起作用 (d827767)
  • gui: mousemove 事件应在 mouseout 事件前触发 (5020b91)
  • gui: 部件属性值应始终有效 (4b0a2ed)
  • ime: 输入法候选词窗口定位问题 (#36#175) (1107f91)
  • renderer: 部件内容区渲染不正确 (f8b0f8b)
  • util: Object_Operate() 中的对象类型判断不正确 (a326e8c)
  • util: ParseUrl() 解析结果不正确 (3f9450c)

新功能:

  • 添加 LCUI_GetVersion() (de40c7c)
  • 添加圆角边框渲染,改进盒阴影渲染 (#174) (f36d071)
  • 添加 include/LCUI.h 文件 (#173) (113af6a)
  • builder: 标签名称可以是一个已存在的部件类型名称 (4f6a01c)
  • css: 将 CSSFontStyle_* 系列函数改为公共函数 (568c915)
  • graph: 添加 LCUI_OverPixel() (d8075d9)
  • gui: 添加 canvas 部件 (e246843)
  • gui: 添加 Widget_CollectReferences() (811585b)
  • gui: 添加 Widget_Each() (2d7d1ee)
  • logger: 支持设置日志等级 (173b92f)
  • scrollbar: 从容器捕获 touch 和 mousewheel 事件 (f2f9162)

新的体验方式

想体验 LCUI 但又觉得编译太麻烦?试试下面这几种新的方式:

  1. 使用 LCUI 的标准开发工具 lcui-cli

    # 安装 lcui-cli
    npm install -g @lcui/cli
    
    # 创建一个名为 myapp 的 LCUI 项目
    lcui create myapp
    
    # 进入项目目录
    cd myapp
    
    # 运行这个项目
    npm run start
    
  2. 克隆并运行示例项目 lc-ui/lcui-quick-start

    # 克隆示例代码库
    git clone https://gitee.com/lc-ui/lcui-quick-start
    
    # 进入代码库
    cd lcui-quick-start
    
    # 安装 NodeJS 依赖包
    npm install
    
    # 安装适用于 x64 CPU 架构的 C/C++ 依赖库
    lcpkg install --arch x64
    
    # 以调试模式运行应用程序
    lcpkg run start --mode debug
    
  3. 使用 lckg 包管理工具:

    # 初始化 lcpkg 配置文件,告诉 lcpkg 你的项目相关信息
    lcpkg init
    
    # 从 GitHub 下载安装已编译好的 LCUI 库
    lcpkg install github.com/lc-soft/LCUI
    

注意: 这些工具是使用 JavaScript 语言编写的,在使用前请先安装 Node.js

圆角边框

在这之前,由于复杂度和时间成本的关系一直没有实现圆角边框,但这么搁置下去也不是办法,一个图形界面开发库连个圆角边框都无法实现的话那也太水了。直到最近,组件库的新组件需要圆角效果才决定把这个功能列入开发计划。以下是现在的测试效果图:

现在的绘制算法还不是最优解,但作者已经被这个功能折腾得不想再继续改进下去了,感兴趣的可以试试优化它,让作者感受一下图形绘制算法的真正魅力。

Canvas 部件

Canvas 部件用于简化自定义图形的绘制流程,具体用法可参考 LC Design 的 Spinner 组件。现在只能当作帧缓存使用,所有绘制操作都需要手动编码实现,如果你希望有丰富的图形 API,可以等待熟悉 cario、skia、OpenGL 等图形库的贡献者贡献相关代码,简单的做法是将图形库的绘制对象转换成 LCUI 使用的图形对象,而复杂点的方法是参考 HTML 5 Canvas API 文档,基于某个图形库封装一套 C 语言版本的 API。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/110432/lcui-1-3-0-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。