我有一种感觉,我可能会错过 Pango 的一些东西。API 中的几乎所有内容似乎都旨在显示静态文本,但在特定位置绘制/移动光标的两个函数除外,这表明可能存在实现编辑文本的内置方法。
例如,要用鼠标标记一个文本块(即更改两点之间的背景颜色),我可以为每次鼠标移动重新生成带有更改标签的文本,或者在 Cairo 中绘制矩形,然后使用 Pango 绘制顶部有透明背景的文本。有没有办法在不重新生成或重绘整个屏幕的情况下将属性应用于范围?
同样,如果我让 Pango 自己绘制光标并处理按键事件,是否有替代重绘整个屏幕的方法?
GtkTextBuffer 不是一个选项 - 我在任何时候都没有所有文本,并且使用紧凑的二进制格式并使用一组不断变化的过滤器来计算需要动态显示的内容要高效得多。除了臃肿、多余和不优雅之外,它还非常缓慢。