class ComboboxDemo
Constants
- ICON_NAME_COL
- TEXT_COL
Public Class Methods
new(main_window)
click to toggle source
# File gtk3/sample/gtk-demo/combobox.rb, line 21 def initialize(main_window) @window = Gtk::Window.new(:toplevel) @window.screen = main_window.screen @window.title = "Combo Boxes" vbox = Gtk::Box.new(:vertical, 2) vbox.margin = 10 @window.add(vbox) # A combobox demonstrating cell renderers, separators and # insensitive rows. frame = Gtk::Frame.new("Items with icons") vbox.pack_start(frame, :expand => false, :fill => false, :padding => 0) box = Gtk::Box.new(:vertical, 0) box.margin = 5 frame.add(box) store = create_icon_store combo = Gtk::ComboBox.new(:model => store) box.add(combo) renderer = Gtk::CellRendererPixbuf.new combo.pack_start(renderer, false) combo.set_attributes(renderer, "icon-name" => ICON_NAME_COL) combo.set_cell_data_func(renderer) do |_layout, cell_renderer, model, iter| set_sensitive(cell_renderer, model, iter) end renderer = Gtk::CellRendererText.new combo.pack_start(renderer, true) combo.set_attributes(renderer, "text" => TEXT_COL) combo.set_cell_data_func(renderer) do |_layout, cell_renderer, model, iter| set_sensitive(cell_renderer, model, iter) end combo.set_row_separator_func do |model, iter| separator?(model, iter) end combo.active = 0 # A combobox demonstrating trees frame = Gtk::Frame.new("Where are we?") vbox.pack_start(frame, :expand => false, :fill => false, :padding => 0) box = Gtk::Box.new(:vertical, 0) box.margin = 5 frame.add(box) store = create_capital_store combo = Gtk::ComboBox.new(:model => store) box.add(combo) renderer = Gtk::CellRendererText.new combo.pack_start(renderer, true) combo.set_attributes(renderer, "text" => 0) combo.set_cell_data_func(renderer) do |_layout, cell_renderer, model, iter| capital_sensitive?(cell_renderer, model, iter) end path = Gtk::TreePath.new([0, 8, -1]) iter = store.get_iter(path) combo.set_active_iter(iter) # A GtkComboBoxEntry with validation frame = Gtk::Frame.new("Editable") vbox.pack_start(frame, :expand => true, :fill => true, :padding => 0) box = Gtk::Box.new(:vertical, 0) box.margin = 5 frame.add(box) combo = Gtk::ComboBoxText.new(:entry => true) fill_combo_entry(combo) box.add(combo) entry = MaskEntry.new entry.mask = "^([0-9]*|One|Two|2\302\275|Three)$" combo.remove_child(combo.child) combo.add_child(entry) # A combobox with string IDs frame = Gtk::Frame.new("String IDs") vbox.pack_start(frame, :expand => false, :fill => false, :padding => 0) box = Gtk::Box.new(:vertical, 0) box.margin = 5 frame.add(box) combo = Gtk::ComboBoxText.new combo.append("never", "Not visible") combo.append("when-active", "Visible") combo.append("always", "Always visible") box.add(combo) entry = Gtk::Entry.new combo.bind_property("active-id", entry, "text", :bidirectional) box.add(entry) end
Public Instance Methods
run()
click to toggle source
# File gtk3/sample/gtk-demo/combobox.rb, line 124 def run if !@window.visible? @window.show_all else @window.destroy end @window end