Pango で何かが足りない気がします。API のほとんどすべては、テキストを編集するための方法が組み込まれている可能性があることを示唆する、特定の位置でカーソルを描画/移動する 2 つの関数を除いて、静的テキストを表示するように調整されているようです。
たとえば、テキストのブロックをマウスでマークする (つまり、背景色を 2 点間で変更する) には、マウスを 1 回動かすたびにタグを変更してテキストを再生成するか、Cairo で四角形を描画してから、Pango を使用して上部に透明な背景を持つテキスト。画面全体を再生成または再描画せずに範囲に属性を適用する方法はありますか?
同様に、Pango にカーソルを描画させ、キー プレス イベントを自分で処理させる場合、画面全体を再描画する代わりに何か方法はありますか?
GtkTextBuffer はオプションではありません - 私はいつでもすべてのテキストを持っているわけではなく、コンパクトなバイナリ形式からオンザフライで表示する必要があるものを計算し、常に変化するフィルターのセットを使用する方がはるかに効率的です。肥大化し、冗長で洗練されていないだけでなく、非常に遅いです。