module Util # generates a random set of choices def Util.rand_model s = Gtk::ListStore.new(String) r = s.append r[0] = rand(1000).to_s r = s.append r[0] = rand(1000).to_s r = s.append r[0] = rand(1000).to_s return s end end class ListViewDemo #(change name) include GladeGUI PIX = 0 CHECK = 1 SAL = 2 FIRST_NAME = 3 LAST_NAME = 4 ID = 5 EMAIL = 6 AGE =7 def test show return load_glade(__FILE__) @v = Gtk::TreeView.new() @v.model = Gtk::ListStore.new(VR_Combo) r = @v.model.append r[0] = VR_Combo.new("Helcfglo", ["There", "You"]) r = @v.model.append r[0] = VR_Combo.new("Second", ["My", "Friend"]) r = @v.model.append r[0] = VR_Combo.new("Helo", ["Thre", "Yu"]) ren = Gtk::CellRendererCombo.new #ren.model = s #ren.text_column = 0 ren.editable = true ren.signal_connect('edited') do |ren, path, text| # iter for #VR_Dialog.message_box(text.class.name + text + path) i = @v.model.get_iter(path) # #VR_Dialog.message_box(i[ren.model_col].selected) # # iter[ren.model_col].selected = iter[0] #if (i) i[0].selected = text end col = Gtk::TreeViewColumn.new col.pack_start( ren, false ) #col.add_attribute( ren, :text, 0) col.set_cell_data_func(ren) do |col, r, model, iter| puts iter[0].model.to_s # ren.model = iter[ren.model_col] # ren.text_column = 0 r.text = iter[0].selected # ren.text = iter[ren.model_col].selected end @v.append_column(col) @v.signal_connect("row_activated") do |view, path, col| #VR_Dialog.message_box(path.to_s) i = view.selection.selected # i = view.model.get_iter(path) rend = col.cell_renderers[0] # puts i[0].class.name rend.text_column = 0 rend.model = get_model(i[0]) return false end @builder["scrolledwindow1"].add_child(@builder, @v) @builder["window1"].resize 600, 500 @builder["window1"].show_all Gtk.main end def show() load_glade(__FILE__) #loads file, glade/MyClass.glade into @builder @pix = Gdk::Pixbuf.new(File.dirname(__FILE__) + "/close.png") @tree = VR_ListView.new(Gdk::Pixbuf, TrueClass, VR_Combo, String, String, Integer, String, Gtk::Adjustment, Float, Fixnum) @tree.set_titles("", "", "Name", "Last Name", "ID", "Email", "Age") # @tree.col(2).cell_renderers[0].model = VR_ComboStore.new("Mr.", "Mr.", "Mrs", "Dr.") # @tree.set_col_sortable("Name", LAST_NAME , Gtk::SORT_DESCENDING) # @tree.selection.mode = Gtk::SELECTION_MULTIPLE # @tree.set_invisible(4) # @tree.signal_connect("row_activated") { |view, path, col| buttonOpen_clicked } @tree.set_width(100, SAL) @builder["scrolledwindow1"].add_child(@builder, @tree) @builder["window1"].resize 600, 500 refresh() @builder["window1"].show_all Gtk.main end def refresh() combo = VR_Combo.new("Mr.", "Mr.", "Mrs", "Dr.") @tree.add_row(@pix, false , combo, "Eric Cunningham", "Cunningham", rand(1000), "beagle4321_2000@yahoo.com", Gtk::Adjustment.new(45,0,100,1,10,0)) combo = VR_Combo.new("Sr.", "Sr.", "Jr", "Tr.") @tree.add_row(@pix, false , combo, "Kerry Smith", "Smith", rand(1000), "kerry10203hotmail.com", Gtk::Adjustment.new(32,0,100,1,10,0)) # @tree.add_row(@pix, false , combo, "Augustine Blonkowski", "Blonkowski", rand(1000), "reqardsforu@gimmemail.com", Gtk::Adjustment.new(57,0,100,1,10,0)) # @tree.add_row(@pix, false , combo, "Betty Yu", "Yu", rand(1000), "bettywilliams@mywork.com", Gtk::Adjustment.new(22,0,100,1,10,0)) # @tree.add_row(@pix, false , combo, "Jerome Oquandi", "Oquandi", rand(1000), "service@btwtransmissions.com", Gtk::Adjustment.new(33,0,100,1,10,0)) # @tree.add_row(@pix, false , combo, "Alexandria Williams", "Williams", rand(1000), "inxsfan@hotmail.com", Gtk::Adjustment.new(43,0,100,1,10,0)) end def invisible_toggled @tree.set_visible(!@builder["invisible"].active?, "Last Name") end def radio_clicked @tree.set_radio(true, CHECK) @tree.set_edit_save(true, *(0..9)) end end