ウィンドウシステムを考える

ちょこっと作ってみたのでGitHubにて公開中。
https://github.com/mirichi/DXRubyWS

GUIぽいものを作ってみようという試み。やりたいことは以下の2点で、どっちを重視するかと言うと悩むところではある。
・ゲーム向けGUIのベース
Rubyオブジェクトを目で見てマウスでつかんで書き換えられるようなプラットフォーム

さて、GitHubのほうにはあれこれ書いておいたのでここで書くこともあまりないのだが。とりあえず基本アーキテクチャレベルの部分はできたような気がする。コントロールとコンテナをベースにオブジェクトツリーを作れば、GUIの動作はできるだろう。
現状ではコントロールはほとんど作られていないのだが、実際のところ、ゲームで使うのであれば無機質なウィンドウやボタンなど使わないし、見た目だけ変えるという程度ではなく、もっといろいろ変えるのではないかと考えていて、いま実装されているコントロール類などは誰も使わないんじゃないかと思っている。
ゲームで使われそうなウィンドウの基本機能を実装してウィンドウの基本クラスにするということも考えたが、そもそもどのような機能があればウィンドウとして成り立つのかと考えてみると、タイトルバーは無くてもよくて、クローズボタンも無くてよく、移動ができる必要はなく、結局のところ、ある範囲の面積を持ち、好きな見た目にでき、コントロールを配置できればよいわけで、それはWSContainerクラスがすでにそうなので、ウィンドウの基本クラスを作る意味がないということになる。Spriteがベースになっているからやろうと思えば丸いウィンドウだって作れる。
であれば、ゲーム向けとして必要なのはコントロールをそろえることではなく、もっとはっきりとゲームに組み込んで見せるサンプルだろう。一通りのコントロールを作るのであれば、それはそのような動きをするためにこのようなコードを書く、というサンプル的な意味合いになる。

GitHubで公開したのは手軽だということもあったが、コントロールの機能追加やコントロールそのものの追加などを他の誰かに期待できるかもしれないという甘い考えである。サンプルとかも。まともなツールキットを目指すなら膨大なシグナルを作りこんでいかないといけないし、俺は必要なものしか作らないから、他に必要な人がいたら必要なぶんだけ作って提供してもらえれば充実していくかなーという感じである。見た目がしょぼしょぼなところとか、誰か直してくれないかなー。コードがひどいところとか・・・
まあ、もうちょっとまともに動くものが無いと興味を持ってくれる人もおらんか。