HaskellでTwitterクライアント開発blog(仮)

今すぐに挫折するかもしれない程度のモチベーションによるTwitterクライアント開発記

DrawAreaにタイムラインを表示したい(Pangoで文字列描画)

ちょっと現状報告。

ずいぶん間が開いてしまいましたが、別にやめたわけではないです。
タイムラインにアイコンやらボタンやらを表示させたい関係で、タイムラインの表示方法をTextAreaからDrawAreaに変更することを目論んでコードを書き換えているのですが……

色々とわからない事だらけ。とりあえず以下のような文字列を表示する関数を書きました。
マジックナンバーは適当。暫定的なものなので後で書き換えます。)

しかし、これを単純に使っても、DrawAreaには何も描画されませんでした。
下の関数はタイムラインを描画する関数で、タイマで30秒ごとに起動します。

しかし、これを次のように変更するとちゃんと表示されます。

つまり、PangoLayoutを描画する関数をonExposeで起動するようにし、drawWindowの再描画はonExposeの外で行う(このdrawWindowClearAreaExposeアクションまでonExposeに結びつけてしまうとダメでした。)

ところが、これだとタイムラインが更新されません(再描画はされているらしいが内容が同じなので見た目が変わらない)

このへんいろいろ試しているのですが、未だに打開策を見いだせず。
Gtkについてもうちょっと勉強が必要なようです……