海月玲二
2014-11-19(水)

無題

どうもアレだ,GUIプログラムを書くときは,つまりそのツールキットというかライブラリの機能にあることしかできないね.当然といえば当然だけど.

最近wxHaskellを使ってhowmもどきを作ってみたところ,まあなんとかwxHaskellの使いかたがいちおうわかってきて,多少それっぽく動くようになってきた.でも,どうやらwxWidgetsのテキストボックスには「文字列の中の特定の場所をクリックした」というイベントを取る方法がないような気がする.そうすると,howmmみたいにクリックしてリンクが発動するようにできないのではないだろうか.カーソルキーとEnterで操作するようにしたら,できないこともないかしらん.

どうでもいいが,GUIを作っているのにインターフェースビルダーの類を使わずに普通にコードでコントロールを並べて作っている.正直,よっぽど複雑なインターフェースでなければ,WYSIWYGである必要ってあまりないように思うんだけどなあ.実はAndroidのアプリを作るときも,GUIの構成は普通にxmlを手で書いてるし.

2014-11-27(木)

無題

甚だ中途半端なものではあるけど,せっかく作ったので,wxHaskell版howmmも製作物のページに置いてみた.なにしろリンク関係の機能が動かないので,正直howmと言うには無理がある.urlをクリックしてブラウザ起動すらできない有様だ.

いろいろ調べてはみたのだが,やはり「文字列の一部がクリックされたときに何か処理をする」というのがどうやっても実現できなかった.wxHaskellでのevent関係の構造がさっぱり理解できないので,そもそも可能なのかどうなのかすらわからない.テキストウィジェットにURLを自動認識させることだけはできたけど,「クリックした」というイベントが取れないのである.マウスオーバーしたイベントだけは取れるのに.

それに,「どの」URLにマウスオーバーしたかもわからない.どうも,wxWidgetsでURLを処理するためにはTextURLEventという専用のイベントクラスがあるようなのだが,これに対応するものがwxHaskellには実装されていないようである.どうやったら作れるのかさっぱりわからん.

まあ,wxHaskellで書いた,単なるサンプルではないプログラムの例として,置いてみた次第である.興味がある人がいるのかわからないが.