$w->{window}->add(gtkpack_(0, Gtk2::VBox->new(0, 0), 0, $menubar, 1, create_hpaned(gtkadd(new Gtk2::Frame(N("Detected hardware")), create_scrolled_window(gtkset_size_request(my $tree = Gtk2::TreeView->new_with_model($tree_model), 350, -1))), gtkpack_(0, Gtk2::VBox->new(0, 0), 1, gtkadd(gtkset_size_request(new Gtk2::Frame(N("Information")), 300, 450), create_scrolled_window(my $text = Gtk2::TextView->new)), 0, my $module_cfg_button = gtksignal_connect(new Gtk2::Button(N("Configure module")), clicked => sub { require modules::interactive; modules::interactive::config_window($in, $current_device); gtkset_mousecursor_normal(); }), 0, my $config_button = gtksignal_connect(new Gtk2::Button(N("Run config tool")), # we've a configurator, let's add a button for it and show it clicked => sub { return 1 if defined $pid; if ($pid = fork()) { $sig_id = $statusbar->push($statusbar->get_context_id("id"), N("Running \"%s\" ...", $current_configurator)); } else { exec($current_configurator) or die "$current_configurator missing\n"; } }) ), ), 0, $statusbar = new Gtk2::Statusbar, ) );