Clutter Actor 的位置与尺寸约束

为了更好的解决 Actor 之间的相对定位问题,Clutter 提供了位置与尺寸约束的机制。例如对于 "stage" 和 "rectangle" 这两个 Actor 而言,可以通过位置约束,使得 "rectangle" 居于 "stage" 中心的位置,而无论 "stage" 的尺寸如何变化。Clutter 提供了 Align、Bind、Path 和 Snap 四种约束,也可以按照 [1] 自定义约束。文献 [2] 中已经给出了 Bind 约束与 Align 约束的示例,揭示了 Clutter 位置与尺寸约束功能的基本用法。本文主要讲述如何将 Clutter 的位置与尺寸约束通过 JSON 文本的形式记载于 Clutter 场景图中。

继续阅读

Clutter 的脚本

Clutter 提供了 JSON 格式的脚本机制,以便程序员或用户能够灵活定制场景图。本文通过对 [1] 中的的单一布局的示例基于 Clutter 脚本的形式进行改写,聊表 Clutter 脚本功能的基本用法。

继续阅读

gimp 2.7.3 算是有了单窗口

在之前的 gimp 2.7 版本中,单窗口模式是早已实现了的,但是以前一直是只能在 gimp 运行时手动切换到单窗口模式,这种状态无法保存,以致重启 gimp 时依然是多窗口。现在,这个问题在 gimp 2.7.3 中被解决了。

继续阅读

Clutter 布局管理

[1] 中的各个 Actor 在 Stage 中的定位都是硬编码的方式实现的,当 Stage 的尺寸发生变化时,这些 Actor 的位置通常难以进行适应调整。Clutter 提供了布局管理机制,用来实现 Actor 的尺寸与位置控制。

Clutter (1.7.4)提供了五种布局方式:

  1. 固定布局(ClutterFixedLayout):跟 Actor 硬编码定位没有太多区别,通常不使用它;
  2. 单一布局(ClutterBinLayout):将 Actor 叠放成一摞,通常可用于将多个 Actor 复合在一起;
  3. 流布局(ClutterFlowLayout):当你不知道有多少个 Actor 的时候,并且又想让它们按照水平方向或竖直方向均匀排列,那么就可以使用流布局;
  4. 盒子布局(ClutterBoxLayout):将 Actor 单行水平或竖直均匀排列;
  5. 表格布局(ClutterTableLayout):将 Actor 按表格的方式均匀排列。

本文只介绍单一布局与流布局,其他布局方式与这两种布局大同小异。

继续阅读

在 Clutter 场景中显示 PDF 页面

之所以开始学习 Clutter 主要是因为 Pinpoint [1] 引起了一些兴趣,用 Clutter 来制作 PDF 文档的演示工具,效果应该会很好。对 Clutter 的一些基本的 Actor 有所了解之后,发现要实现这个 PDF 演示工具不是很困难。按照 Clutter cookbook [2] 的提示,可以利用 Poppler 库轻易的载入 PDF 页面并将其渲染到 Cairo 环境中,继而使用 ClutterCairoTexture 将 PDF 页面显示在 Stage 中。

继续阅读

五个演员

这篇文章的标题并非暗示我要写一篇影视娱乐方面的文章,它只是表示我将“Actor”这个英文单词翻译成了中文。本文主要介绍 Clutter 库提供的五个基本的 Actor 的用法。

继续阅读

凌乱的舞台

这篇文章的标题并非暗示我要写一篇文学作品,它只是表示我将“Clutter”与“Stage”这两个英文单词翻译成了中文。本文主要介绍 Clutter Stage 的基本知识。

继续阅读

GObject 学习笔记汇总

开始学习 Clutter,需要回顾 GObject 的知识。以前写了一系列的 GObject 笔记,现在汇总一下以便查阅。

  1. 要相信 GObject 是有用而且简单的
  2. 使用 GObject 库模拟类的数据封装形式
  3. GObject 子类对象的私有属性模拟
  4. GObject 子类私有属性的外部访问
  5. 温故而知新
  6. GObject 的子类继承
  7. 继承与接口
  8. GObject 对接口的模拟
  9. 函数指针、回调函数与 GObject 闭包
  10. GObject 的信号机制——概览
  11. GObject 子类对象的析构过程
  12. GObject 信号机制——信号的注册
  13. GObject 信号机制——信号的 Accumulator
  14. GObject 信号机制——信号的连接
  15. GObject 信号机制——信号的发射(未完成)
  16. GObject Introspection 的简单示例

 

C 库的编写 [2]

这是有关 C 库编写经验的一系列文档的第二部分,讲述了事件处理、主循环、同步与异步 I/O 等功能的实现经验。原文见:http://davidz25.blogspot.com/2011/06/writing-c-library-part-2.html

本文只是对原文的不完全翻译及意译,对其中所有错误不负任何责任。

继续阅读

C 库的编写 [1]

这是有关 C 库编写经验的一系列文档的一部分,原文见:http://davidz25.blogspot.com/2011/06/writing-c-library-part-1.html

本文只是对原文的不完全翻译及意译,对其中所有错误不负任何责任。

继续阅读