2009-11-12
■ [ruby] CSSのような概念を取り入れたJRuby用GUIライブラリ、Limelight
LimelightはJRuby上で動くクロスプラットフォームなGUIライブラリだ。
詳細はチュートリアルを見て欲しいが、画面の定義(prop)と:
backdrop :background_color => "black", :width => "100%", :height => "100%" do sample :width => 100, :height => 100, :background_color => "red", :text => "red" selection :id => "the_selection", :width => 300, :height => 300, :background_color => "gray" end
見た目の定義(style) を分けるのが面白い。(属性の一覧)
backdrop { background_color "black" width "100%" height "100%" } sample { width 100 height 100 } selection { width 300 height 300 background_color "gray" }
prop/style共に、RubyのDSLで表現される。
イベントハンドラは、以下のように書く。(イベントの一覧)
module Sample def mouse_clicked(e) selection = scene.find('the_selection') selection.style.background_color = self.style.background_color end end
Ruby Shoesの影響がありそうだけど、ShoesよりもGUI寄り・ライブラリ寄り。