… | |
… | |
223 | |
223 | |
224 | $hpane->pack1((my $vbox = new Gtk2::VBox), 1, 1); |
224 | $hpane->pack1((my $vbox = new Gtk2::VBox), 1, 1); |
225 | |
225 | |
226 | # board box (aspect/canvas) |
226 | # board box (aspect/canvas) |
227 | |
227 | |
228 | $self->{boardbox}->pack_start((my $frame = new Gtk2::Frame), 0, 1, 0); |
228 | #$self->{boardbox}->pack_start((my $frame = new Gtk2::Frame), 0, 1, 0); |
|
|
229 | |
|
|
230 | # RIGHT PANE |
|
|
231 | |
|
|
232 | $hpane->pack2 ((my $vbox = new Gtk2::VBox), 1, 1); |
|
|
233 | $hpane->set (position_set => 1); |
|
|
234 | |
|
|
235 | $vbox->pack_start ((my $frame = new Gtk2::Frame), 0, 1, 0); |
229 | |
236 | |
230 | { |
237 | { |
231 | $frame->add (my $vbox = new Gtk2::VBox); |
238 | $frame->add (my $vbox = new Gtk2::VBox); |
232 | $vbox->add ($self->{title} = new Gtk2::Label $title); |
239 | $vbox->add ($self->{title} = new Gtk2::Label $title); |
233 | |
240 | |
… | |
… | |
241 | $scale->set_draw_value (0); |
248 | $scale->set_draw_value (0); |
242 | $scale->set_digits (0); |
249 | $scale->set_digits (0); |
243 | |
250 | |
244 | $self->{moveadj}->signal_connect (value_changed => sub { $self->update_board }); |
251 | $self->{moveadj}->signal_connect (value_changed => sub { $self->update_board }); |
245 | } |
252 | } |
246 | |
|
|
247 | $self->{boardbox}->add ($self->{board} = new Gtk2::GoBoard size => $self->{size}); |
|
|
248 | |
|
|
249 | # RIGHT PANE |
|
|
250 | |
|
|
251 | $hpane->pack2 (($self->{vpane} = new Gtk2::VPaned), 1, 1); |
|
|
252 | $hpane->set (position_set => 1); |
|
|
253 | gtk::state $self->{vpane}, "game::vpane", $self->{name}, position => 80; |
|
|
254 | |
|
|
255 | # $self->{vpane}->add (my $sw = new Gtk2::ScrolledWindow); |
|
|
256 | # $sw->set_policy ("automatic", "always"); |
|
|
257 | # $sw->add ($self->{userlist} = new userlist); |
|
|
258 | |
|
|
259 | $self->{vpane}->add (my $vbox = new Gtk2::VBox); |
|
|
260 | |
253 | |
261 | $vbox->pack_start ((my $hbox = new Gtk2::HBox 1), 0, 1, 0); |
254 | $vbox->pack_start ((my $hbox = new Gtk2::HBox 1), 0, 1, 0); |
262 | |
255 | |
263 | $hbox->add ($self->{userpanel}[$_] = new game::userpanel colour => $_) |
256 | $hbox->add ($self->{userpanel}[$_] = new game::userpanel colour => $_) |
264 | for COLOUR_WHITE, COLOUR_BLACK; |
257 | for COLOUR_WHITE, COLOUR_BLACK; |
… | |
… | |
427 | $self->{user}[COLOUR_BLACK] = $self->{user1}; |
420 | $self->{user}[COLOUR_BLACK] = $self->{user1}; |
428 | $self->{user}[COLOUR_WHITE] = $self->{user2}; |
421 | $self->{user}[COLOUR_WHITE] = $self->{user2}; |
429 | |
422 | |
430 | # show board |
423 | # show board |
431 | if ($self->is_inprogress) { |
424 | if ($self->is_inprogress) { |
432 | $self->{left}->add ($self->{boardbox}) unless $self->{boardbox}->parent; |
425 | if (!$self->{boardbox}->parent) { |
|
|
426 | $self->{boardbox}->add ($self->{board} = new Gtk2::GoBoard size => $self->{size}); |
|
|
427 | $self->{left}->add ($self->{boardbox}); |
|
|
428 | } |
433 | if (my $ch = delete $self->{challenge}) { |
429 | if (my $ch = delete $self->{challenge}) { |
434 | (delete $_->{inlay})->clear for values %$ch; |
430 | (delete $_->{inlay})->clear for values %$ch; |
435 | } |
431 | } |
436 | } |
432 | } |
437 | |
433 | |
… | |
… | |
439 | |
435 | |
440 | # view text |
436 | # view text |
441 | |
437 | |
442 | eval { #d# |
438 | eval { #d# |
443 | my @ga; |
439 | my @ga; |
444 | $ga[0] = "\nType: " . (util::toxml $gametype{$self->type}) |
440 | $ga[0] = "\nType: " . util::toxml $self->type_char; |
445 | . " (" . (util::toxml $gameopt{$self->option}) . ")"; |
|
|
446 | $ga[1] = "\nFlags:"; |
441 | $ga[1] = "\nFlags:"; |
447 | $ga[1] .= " started" if $self->is_inprogress; |
442 | $ga[1] .= " started" if $self->is_inprogress; |
448 | $ga[1] .= " adjourned" if $self->is_adjourned; |
443 | $ga[1] .= " adjourned" if $self->is_adjourned; |
449 | $ga[1] .= " scored" if $self->is_scored; |
444 | $ga[1] .= " scored" if $self->is_scored; |
450 | $ga[1] .= " saved" if $self->is_saved; |
445 | $ga[1] .= " saved" if $self->is_saved; |
… | |
… | |
517 | for COLOUR_BLACK, COLOUR_WHITE; |
512 | for COLOUR_BLACK, COLOUR_WHITE; |
518 | } |
513 | } |
519 | |
514 | |
520 | sound::play 3, "gamestart"; |
515 | sound::play 3, "gamestart"; |
521 | |
516 | |
522 | $self->draw_rules ($self->{rules_inlay}); |
517 | $self->{rules_inlay}->refresh; |
523 | } |
518 | } |
524 | |
519 | |
525 | sub inject_resign_game { |
520 | sub inject_resign_game { |
526 | my ($self, $msg) = @_; |
521 | my ($self, $msg) = @_; |
527 | |
522 | |
… | |
… | |
581 | |
576 | |
582 | sub draw_users { |
577 | sub draw_users { |
583 | my ($self, $inlay) = @_; |
578 | my ($self, $inlay) = @_; |
584 | |
579 | |
585 | for (sort keys %{$self->{users}}) { |
580 | for (sort keys %{$self->{users}}) { |
586 | $inlay->append_text (" <user>" . $self->{users}{$_}->as_string . "</user>"); |
581 | $inlay->append_text (" <user>" . $self->{users}{$_}->as_string . "</user>"); |
587 | } |
582 | } |
588 | } |
583 | } |
589 | |
584 | |
590 | sub event_challenge { |
585 | sub event_challenge { |
591 | my ($self, $challenge) = @_; |
586 | my ($self, $challenge) = @_; |