もう、そんなんばっかり。
あきらめました。
うそうそ。
メモリ管理の泥沼に嵌りまくりだったんですが、wx.NETのwx-cでは不可能であることに気付きました。
onDisposeに引き数が有りません。えーと…誰が破壊されたのかどうやって知るんでしょう。
と思ったら.NETのメソッドデリゲートはちゃんとthisを渡してくれるらしい。えー、そんなの普通出来るわけないじゃん、と思ってmonoのソースを見たらCPU毎に動的にコード生成してるみたいでした。
ああ、そうね。そういうことやれば実現できるのは知ってたよ。 っていうかそれしか方法が無いのも知ってたよ。 でも、俺がそれやるわけにいかんわね。
で、あきらめかけたんですが、他にwxWidgetsのCラッパーが無いかと調べたらwxHaskellの物が良い感じ。wxEiffelもあるようだけどメンテナンス止まってるし、wxHaskellのはwxEiffelベースらしい。wxHaskellのwxcをベースにwxDなんてのを作ってる人も居るようなので比較的安心だ。
wxHaskell版のwxcを見てみると…あら。wx.NETのwx-cはこれを参考にしたのかな。そんな雰囲気。 うう。なんか遠回りしてあるべき所に辿り着いた気分だ。
ざっとコードを見たところ、rubyへのマップに大きな障害があるようには見られなかった。
__stdcallを使わずにわざわざ__cdeclにしてくれているのでldlなんて怪しいものを使わずにWindowsでも標準のruby/dlを使えるのがありがたい。
Windows版のバイナリはなぜか2.4系しか無いがまあいいだろう。もともと日本語通るから。Mac OSX版は2.5系なのでちゃんと日本語も通ることが期待できる。 どうしても気になるようだったら自分でバイナリを作ればいいだけだしな。
あと良いのがGLCanvasがサポートされてること。これが欲しかったんだよなー。
っつーわけで、こんどからwxcベースで進めることにしてみます。 ほんといろいろ遠回りだよなー。
あわわ。2.1なんて出たよ。 もうDelphi版は更新されないと思って油断してた。 まあ、これが最終更新になるらしいけど。
細かい変更が主だけどやっぱり最新にしておいた方が良いな。ヘルプ翻訳とか放置だったし。
さて、日本語版作るのってソースのマージがなかなか面倒なんだが、作業手順覚えてるかな? マージさえ上手くいけば後は簡単なんだけどなー。
それが終わったらwxWidgets版を作ってみよう。これの日本語化はpoファイルを書くだけだから簡単なはず。文字列リソースが分離されてると本家にコミットも出来るね。