ログ日記

作業ログと日記とメモ

Haskell + wxWigetsでXRCを使う

ひとまず、
http://0xcc.net/pub/uu-2004-08/
ここの通りにwxgladeを使ってウィンドウを作る。


そしてGenerate codeでXRCを選んで保存。


テストコードを書く。

import Graphics.UI.WX
import Graphics.UI.WXCore

main :: IO ()
main = start win

win :: IO ()
win = do
  f <- frameLoadRes "hello.xrc" "frame_1" []
  menuItemOnCommandRes f "Menu_File_Exit" (close f)
  b <- xmlResourceGetButton f "button_1"
  set b [on command := close f]
  _ <- windowShow f
  return ()

メニューのコマンドはmenuItemOnCommandResで設定するらしい。idに設定した文字列を引数に指定する。
ボタンの方は、nameの値が使われるらしい。CommonタブにId設定欄があるけどXMLでは関係ないみたい。あとEventsタブにハンドラを設定したものはXMLにも反映されているが、汎用的なイベントっぽいので今回は見送り。


これでメニューとボタンは動くが、WXとWXCoreのソースを探索しながらめぼしい関数を試行錯誤しつつ使ってみたのでセオリー通りじゃなかったり間違ってる可能性も。