-
Notifications
You must be signed in to change notification settings - Fork 0
Home
aotak edited this page Aug 10, 2016
·
4 revisions
quincite という名前の由来は同名の赤い鉱石にあり、「"quick user interface construction" の頭字語に接尾辞 "-ite" をつけたもの」という Bacronym になるように選定されました。
名前のとおり、手早くユーザインタフェースを組み上げることを目的にしています。
quincite はライブラリというよりはフレームワークであり、quincite 単体で UI を構築することは目標にしておらず、このフレームワーク上に構築された他のライブラリによって手早く UI を記述することを目指しています。
小さなコンポーネント定義の例を示します。
require 'quincite'
include Quincite
class Node
include UI::Component
def initialize(id)
init_component
self.id = id
end
end
class Nodeset < Node
include UI::Container
def initialize
super
init_container
end
end
ui = UI.build(UI::Nodeset) do
Node {
x 0
y 0
}
end
ui.layout
これは Document
の中に Node
が一つだけいるというだけのコードです。描画が定義されていないので描画を行うことはできませんが、抽象的な UI のモデルを構築してデータとして保持することがこれだけでできます。UI のモデルが存在すれば、そのパラメータを元に実際の UI の描画を行うことが可能であり、実際に quincite の UI モデルを利用して DXRuby や Gosu 上で UI の描画を行うことができています。