#!/usr/bin/ruby require 'gtk2' class ListBox < Gtk::Widget def initialize @renderer=Gtk::CellRendererText.new @renderer.set_property( 'background', 'lavender' ) @renderer.set_property( 'foreground', 'black' ) @list_store = Gtk::ListStore.new(String) @tree_view = Gtk::TreeView.new(@list_store) col_hdr = 'Ad Groups' @tree_view_col1 = Gtk::TreeViewColumn.new(col_hdr, @renderer, {:text => 0}) @tree_view_col1.alignment = 0.5 # center @tree_view.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') @tree_view.signal_connect('button_release_event') do |widget,event| path, column, cell_x, cell_y = @tree_view.get_path_at_pos(event.x, event.y) puts widget.selection.selected[@tree_view.columns.index(column)] end @tree_view.signal_connect('key-release-event') do |widget,event| column = @tree_view.get_column(0) puts widget.selection.selected[@tree_view.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