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のソースを探索しながらめぼしい関数を試行錯誤しつつ使ってみたのでセオリー通りじゃなかったり間違ってる可能性も。