Class: Gtk::ComboBox

Inherits:
Object
  • Object
show all
Defined in:
lib/extensions/gtk/widgets/gtk_combo_box.rb

Instance Method Summary collapse

Instance Method Details

#bind(options) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/extensions/gtk/widgets/gtk_combo_box.rb', line 29

def bind(options)
  if options[:property].to_sym == :elements
    @path = options[:path]
    @text = options[:text] || "to_s"
    renderer = Gtk::CellRendererText.new
    self.pack_start(renderer, true)
    self.add_attribute(renderer,:text, 1)
  end
  super(options)
end

#elements=(enumerable) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/extensions/gtk/widgets/gtk_combo_box.rb', line 6

def elements=(enumerable)
  list_store = Gtk::ListStore.new(::Object, String)
  enumerable.each do |item|
    iterator = list_store.append        
    iterator[0] = item
    iterator[1] = item.send(@text)
  end
  self.model = list_store
end

#selectedObject



16
17
18
19
# File 'lib/extensions/gtk/widgets/gtk_combo_box.rb', line 16

def selected
  iter = self.active_iter
  return iter[0] if iter
end

#selected=(object) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/extensions/gtk/widgets/gtk_combo_box.rb', line 21

def selected=(object)
  if self.model
    self.model.each do |model, path, iter|
      self.active_iter = iter if iter[0] == object
    end
  end
end