--- kgsueme/kgsueme/game.pl 2003/06/01 16:51:38 1.29
+++ kgsueme/kgsueme/game.pl 2003/06/01 20:12:13 1.30
@@ -211,14 +211,14 @@
$vbox->pack_start((my $frame = new Gtk2::Frame), 0, 1, 0);
{
- # grrr...
$frame->add(my $vbox = new Gtk2::VBox);
$vbox->add($self->{title} = new Gtk2::Label $title);
- $self->{moveadj} = new Gtk2::Adjustment 1, 0, 1, 0.001, 0.05, 0;
+ $self->{moveadj} = new Gtk2::Adjustment 0, 0, 0, 1, 1, 0;
$vbox->add(my $scale = new Gtk2::HScale $self->{moveadj});
$scale->set_draw_value (0);
+ $scale->set_digits (0);
$self->{moveadj}->signal_connect (value_changed => sub { $self->update_board });
}
@@ -250,10 +250,7 @@
$hbox->add (($self->{userpanel}[WHITE] = new game::userpanel colour => WHITE)->widget);
$hbox->add (($self->{userpanel}[BLACK] = new game::userpanel colour => BLACK)->widget);
- $vbox->pack_start((my $sw = new Gtk2::ScrolledWindow), 1, 1, 0);
- $sw->set_policy("never", "always");
-
- $sw->add(($self->{text} = new gtk::text)->widget);
+ $vbox->pack_start(($self->{text} = new gtk::text)->widget, 1, 1, 0);
$vbox->pack_start(($self->{entry} = new Gtk2::Entry), 0, 1, 0);
$self->{entry}->signal_connect(activate => sub {
@@ -635,7 +632,7 @@
my ($self) = @_;
return unless $self->{path};
- my $move = int (@{$self->{path}} * $self->{moveadj}->get_value);
+ my $move = int $self->{moveadj}->get_value;
my $running = $move == @{$self->{path}};
@@ -658,20 +655,43 @@
my ($self) = @_;
$self->{path} = $self->get_path;
+
$self->{userpanel}[WHITE]->set_rules ($self->{path}[0]); # should be onload only
$self->{userpanel}[BLACK]->set_rules ($self->{path}[0]); # should be onload only
- $self->{moveadj}->value_changed if $self->{moveadj};
+ if ($self->{moveadj}) {
+ my $upper = $self->{moveadj}->upper;
+ my $pos = $self->{moveadj}->get_value;
+
+ $self->{moveadj}->upper (scalar @{$self->{path}});
+
+ $self->{moveadj}->changed;
+ if ($pos == $upper) {
+ $self->{moveadj}->set_value (scalar @{$self->{path}});
+ } else {
+ $self->{moveadj}->value_changed;
+ }
+ }
}
sub event_update_comments {
my ($self, $node, $comment, $newnode) = @_;
$self->SUPER::event_update_comments($node, $comment, $newnode);
- $self->{text}->append_text ("\nMove $node->{move}, ")
+ my $text;
+
+ $text .= "\nMove $node->{move}, "
if $newnode;
- $self->{text}->append_text ("\n" . util::toxml $comment);
+ for (split /\n/, $comment) {
+ $text .= "\n";
+ if ($_ =~ s/^([0-9a-zA-Z]+ \[[0-9dkp\?\-]+\])://) {
+ $text .= "" . (util::toxml $1) . ":";
+ }
+ $text .= $_;
+ }
+
+ $self->{text}->append_text ($text);
}
sub event_part {