def initialize
super('Stock Icons and Items')
set_default_size(-1, 500)
self.border_width = 8
hbox = Gtk::HBox.new(false, 8)
add(hbox)
sw = Gtk::ScrolledWindow.new
sw.set_policy(Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC)
hbox.pack_start(sw, false, false, 0)
model = create_model
treeview = Gtk::TreeView.new(model)
sw.add(treeview)
column = Gtk::TreeViewColumn.new
column.title = 'Const'
cell_renderer = Gtk::CellRendererPixbuf.new
column.pack_start(cell_renderer, false)
column.set_attributes(cell_renderer, "stock_id" => 1)
cell_renderer = Gtk::CellRendererText.new
column.pack_start(cell_renderer, true)
column.set_cell_data_func(cell_renderer) do |column, cell, model, iter|
cell.text = iter[0].const
end
treeview.append_column(column)
cell_renderer = Gtk::CellRendererText.new
treeview.insert_column(-1, 'Label', cell_renderer) do |col, cell, model, iter|
info = iter[0]
cell.text = info.item.label if info
end
cell_renderer = Gtk::CellRendererText.new
treeview.insert_column(-1, 'Accel', cell_renderer) do |col, cell, model, iter|
info = iter[0]
cell.text = info.accel_str if info
end
cell_renderer = Gtk::CellRendererText.new
treeview.insert_column(-1, 'ID', cell_renderer) do |col, cell, model, iter|
info = iter[0]
cell.text = info.id if info
end
align = Gtk::Alignment.new(0.5, 0.0, 0.0, 0.0)
hbox.pack_end(align, false, false, 0)
frame = Gtk::Frame.new('Selected Item')
align.add(frame)
vbox = Gtk::VBox.new(false, 8)
vbox.border_width = 4
frame.add(vbox)
display = ItemDisplay.new
class << treeview
@display = nil
attr_accessor :display
end
treeview.display = display
display.type_label = Gtk::Label.new
display.const_label = Gtk::Label.new
display.id_label = Gtk::Label.new
display.label_accel_label = Gtk::Label.new
display.icon_image = Gtk::Image.new
vbox.pack_start(display.type_label, false, false, 0)
vbox.pack_start(display.icon_image, false, false, 0)
vbox.pack_start(display.label_accel_label, false, false, 0)
vbox.pack_start(display.const_label, false, false, 0)
vbox.pack_start(display.id_label, false, false, 0)
selection = treeview.selection
selection.mode = Gtk::SELECTION_SINGLE
selection.signal_connect('changed') do |s|
selection_changed(s)
end
end