設定ダイアログを楽して作れないかな
例えばこういうオブジェクトを用意して……
Person = Struct.new :name, :age, :kawaii yukarin = Person.new 'Yukari', 17, true p yukarin #=> #<struct Person name="Yukari", age=17, kawaii=true>
どういう風に表示したいか表にして……
table = [[yukarin, :name, :string], [yukarin, :age, :spin], [yukarin, :kawaii, :toggle]]
ダイアログを走らせると……
dlg = GeneralSettingsDialog.new(nil, table: table) dlg.show_all dlg.run
データが変わる。
p yukarin
# => #<struct Person name="Yukari", age=38.0, kawaii=true>
データが Observable になっていればアプリケーションに設定をその場で波及させられる感じになったり(希望)。
数値の範囲とか、文字列のバリデーションとかを考えると複雑になってくるけど、ある程度枠組みがないと果てしなくごちゃごちゃ書いてしまいそうだ。