Class: VR::TreeViewColumn

Inherits:
Gtk::TreeViewColumn
  • Object
show all
Defined in:
lib/treeview/columns/TreeViewColumn.rb

Instance Method Summary collapse

Constructor Details

#initialize(view, model_col, sym, type) ⇒ TreeViewColumn

Returns a new instance of TreeViewColumn.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/treeview/columns/TreeViewColumn.rb', line 5

def initialize(view, model_col, sym, type)
		super()
	self.title = sym.to_s.gsub("_", " ").split(' ').map {|w| w.capitalize }.join(' ') # My Title
		@view = view
		self.resizable = true
	cols = (type.is_a? Hash) ? type : {sym => type}
		cols.each_pair do |symb, type|
			a = [model_col, self, @view, symb]
			if type == Gdk::Pixbuf
				ren = VR::CellRendererPixbuf.new(*a)
				self.pack_start( ren, false )
				self.add_attribute( ren, :pixbuf,  model_col)
 			elsif type == TrueClass
				ren = VR::CellRendererToggle.new(*a)
				self.pack_start( ren, false )
				self.add_attribute( ren, :active,  model_col)
 			elsif type == VR::SpinCol
				ren = VR::CellRendererSpin.new(*a)
				self.pack_start( ren, false )
				self.add_attribute( ren, :adjustment,  model_col)
				self.set_cell_data_func(ren) do |col, renderer, model, iter|
					fmt = "%.#{renderer.digits}f"
					renderer.text = fmt % iter[renderer.model_col].value		
				end  
 			elsif type == VR::ComboCol 
				r = VR::CellRendererCombo.new(*a)
				self.pack_start( r, false )
				self.set_cell_data_func(r) do |col, ren, model, iter|
					ren.text = iter[ren.model_col].selected.to_s
				end 
 			elsif type == VR::ProgressCol 
				r = VR::CellRendererProgress.new(*a)
				self.pack_start( r, false )
				self.add_attribute( r, :value,  model_col)
 			elsif type == DateTime 
				r = VR::CellRendererDate.new(*a)
				self.pack_start( r, false )
				self.set_cell_data_func(r) do |col, ren, model, iter|
					ren.text = iter[ren.model_col].strftime(ren.date_format)
				end
 			elsif type == String or type == Float or type == Integer or type == Fixnum  
				r = VR::CellRendererText.new(*a)
				self.pack_start( r, false )
				self.add_attribute( r, :text,  model_col)
		else #user defined object
				r = VR::CellRendererObject.new(*a)
				self.pack_start( r, false )
				self.set_cell_data_func(r) do |col, ren, model, iter|
				ren.render_object(iter)
				end
   		end
			model_col = model_col + 1
		end
end

Instance Method Details

#sortable=(is_sortable) ⇒ Object



65
66
67
68
# File 'lib/treeview/columns/TreeViewColumn.rb', line 65

def sortable=(is_sortable) 
	self.sort_column_id = cell_renderers[0].model_col
    self.clickable = is_sortable 
end

#width=(w) ⇒ Object

pixels



60
61
62
63
# File 'lib/treeview/columns/TreeViewColumn.rb', line 60

def width=(w) #pixels
 	self.sizing = Gtk::TreeViewColumn::FIXED
 	self.fixed_width = w
end