トップ «前の日記(2009-11-10) 最新 次の日記(2009-11-13)» 編集

Route 477



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寄り・ライブラリ寄り。

公式サイト
http://limelight.8thlight.com/
ダウンロード・インストール
http://limelight.8thlight.com/main/download
チュートリアル
http://limelight.8thlight.com/main/tutorial_1
Wiki
Main Page - Limelight
rdoc
http://limelight.rubyforge.org/rdoc/index.html