class Songlist def initialize(widget) @widget = widget @list = Gtk::ListStore.new(String) renderer = Gtk::CellRendererText.new column_songs = Gtk::TreeViewColumn::new("Songs", renderer, :text => 0) @widget.append_column(column_songs) @widget.model = @list @song = [] end def initialize_contactmenu menu = Gtk::Menu::new() item_info = Gtk::MenuItem::new('_Information') item_info.name = 'menu_contacts_information' item_info.signal_connect('activate') { |item| menu_handler(item) } menu.append(item_info) menu.show_all @menu = menu end def get_iter(path) return @list.get_iter(path) end def add(song) @song << song end def clear @list.clear end def display(name) clear if name[:album] && name[:album] != "[ALL]" @song.each { |song| @list.append[0] = song.title if name[:album] == song.album } elsif name[:artist] || name[:album] == "[ALL]" @song.each { |song| @list.append[0] = song.title if name[:artist] == song.artist || name[:artist] == "[ALL]" } end end @widget.signal_connect('button-press-event') { |widget, event| if(event.kind_of?(Gdk::EventButton)) @contact_menu.popup(nil, nil, event.button, event.time) if(event.button == 3) false end } end