#!/usr/bin/ruby require 'gtk2' class ListBox < Gtk::TreeView def initialize super() @renderer=Gtk::CellRendererText.new @renderer.set_property( 'background', 'lavender' ) @renderer.set_property( 'foreground', 'black' ) @list_store = Gtk::ListStore.new(String) self.model = @list_store col_hdr = 'Ad Groups' @tree_view_col1 = Gtk::TreeViewColumn.new(col_hdr, @renderer, {:text => 0}) @tree_view_col1.alignment = 0.5 # center self.append_column(@tree_view_col1) # Example Data: iter = @list_store.append iter.set_value(0, 'ulkomaanpuhelut') iter = @list_store.append iter.set_value(0, 'kaukopuhelut') iter = @list_store.append iter.set_value(0, 'suuntanumerot') self.signal_connect('button_release_event') do |widget,event| path, column, cell_x, cell_y = self.get_path_at_pos(event.x, event.y) puts widget.selection.selected[self.columns.index(column)] end self.signal_connect('key-release-event') do |widget,event| column = self.get_column(0) puts widget.selection.selected[self.columns.index(column)] end end end Gtk.init @main_window = Gtk::Window.new @main_window.set_size_request 255,255 lb = ListBox.new @main_window.add(lb) @main_window.show_all @main_window.signal_connect("destroy") { Gtk.main_quit } Gtk.main