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寄り・ライブラリ寄り。
[ツッコミを入れる]