summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/ChangeLog8
-rw-r--r--perl-install/interactive_gtk.pm18
2 files changed, 22 insertions, 4 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
index 7e178fc1c..91862a820 100644
--- a/perl-install/ChangeLog
+++ b/perl-install/ChangeLog
@@ -1,3 +1,11 @@
+2000-02-22 Pixel <pixel@mandrakesoft.com>
+
+ * install_steps_interactive.pm (timeConfig): use ask_from_treelist
+
+ * interactive_gtk.pm (ask_from_treelist): creation of
+ ask_from_treelist. Usage is just the same as ask_from_list with
+ one more argument (the separator eg: |, /)
+
2000-02-11 François Pons <fpons@mandrakesoft.com>
* diskdrake.pm: fixed deadlock while trying to create partition
diff --git a/perl-install/interactive_gtk.pm b/perl-install/interactive_gtk.pm
index 840dbdf95..62f0c3603 100644
--- a/perl-install/interactive_gtk.pm
+++ b/perl-install/interactive_gtk.pm
@@ -65,7 +65,7 @@ sub ask_from_treelist {
my $s;
foreach (split $sep, $_[0]) {
$wtree{"$s$_$separator"} ||=
- $tree->insert_node($s ? $parent->($s) : undef, undef, [$_], 2, (undef) x 4, 0, 0);
+ $tree->insert_node($s ? $parent->($s) : undef, undef, [$_], 5, (undef) x 4, 0, 0);
$s .= "$_$separator";
}
$wtree{$s};
@@ -73,7 +73,7 @@ sub ask_from_treelist {
my ($root, $leaf, $wdef, $ndef);
foreach (@$l) {
($root, $leaf) = /(.*)$sep(.+)/o or ($root, $leaf) = ('', $_);
- my $node = $tree->insert_node($parent->($root), undef, [$leaf], 2, (undef) x 4, 1, 0);
+ my $node = $tree->insert_node($parent->($root), undef, [$leaf], 5, (undef) x 4, 1, 0);
if ($def eq $_) {
$wdef = $node;
@@ -94,20 +94,30 @@ sub ask_from_treelist {
$w->{retval} = join $separator, @l;
Gtk->main_quit;
};
+
gtkadd($w->{window},
gtkpack_(new Gtk::VBox(0,0),
1, gtkset_usize(createScrolledWindow($tree), 200, 280),
0, $w->create_okcancel));
$tree->set_selection_mode('browse');
- $tree->signal_connect(tree_select_row => sub { $curr = $_[1] });
+ $tree->signal_connect(tree_select_row => sub { $curr = $_[1]; });
$tree->signal_connect(button_press_event => sub { &$leave if $_[1]{type} =~ /^2/ });
+ $tree->signal_connect(key_press_event => sub {
+ my ($w, $e) = @_;
+ my $c = chr $e->{keyval};
+
+ if ($e->{keyval} >= 0x100) {
+ &$leave if $c eq "\r" || $c eq "\x8d";
+ }
+ 1;
+ });
$tree->focus_row($ndef) if $ndef;
$tree->select($wdef) if $wdef;
$tree->node_moveto($wdef, 0, 0.5, 0) if $wdef;
$tree->grab_focus;
- $w->{window}->show_all;
+
$w->main or die "ask_from_list cancel";
}