ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/kgsueme/game.pl
(Generate patch)

Comparing kgsueme/kgsueme/game.pl (file contents):
Revision 1.121 by root, Wed Jun 2 04:39:07 2004 UTC vs.
Revision 1.127 by root, Thu Jun 3 03:46:21 2004 UTC

223 223
224 $self = $self->Glib::Object::new; 224 $self = $self->Glib::Object::new;
225 $self->{$_} = delete $arg{$_} for keys %arg; 225 $self->{$_} = delete $arg{$_} for keys %arg;
226 226
227 gtk::state $self, "game::window", undef, window_size => [620, 460]; 227 gtk::state $self, "game::window", undef, window_size => [620, 460];
228 $self->set (allow_shrink => 1);
228 229
229 $self->signal_connect (destroy => sub { 230 $self->signal_connect (destroy => sub {
230 $self->unlisten; 231 $self->unlisten;
231 delete $self->{app}{game}{$self->{channel}}; 232 delete $self->{app}{game}{$self->{channel}};
232 %{$_[0]} = (); 233 %{$_[0]} = ();
335 return if $self->{joined}; 336 return if $self->{joined};
336 337
337 $self->SUPER::join; 338 $self->SUPER::join;
338} 339}
339 340
341sub part {
342 my ($self) = @_;
343
344 $self->hide;
345 $self->SUPER::part;
346}
347
340sub event_join { 348sub event_join {
341 my ($self) = @_; 349 my ($self) = @_;
342 350
343 $self->SUPER::event_join (@_); 351 $self->SUPER::event_join (@_);
344 $self->init_tree; 352 $self->init_tree;
383 $important{$self->{black}{name}}++; 391 $important{$self->{black}{name}}++;
384 $important{$self->{white}{name}}++; 392 $important{$self->{white}{name}}++;
385 $important{$self->{owner}{name}}++; 393 $important{$self->{owner}{name}}++;
386 394
387 if (my @users = grep $important{$_->{name}}, @$add) { 395 if (my @users = grep $important{$_->{name}}, @$add) {
388 $self->{chat}->append_text ("\n<header>Joins:</header>"); 396 $self->{chat}->append_text ("\n<leader>Joins:</leader>");
389 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users; 397 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users;
390 } 398 }
391 if (my @users = grep $important{$_->{name}}, @$remove) { 399 if (my @users = grep $important{$_->{name}}, @$remove) {
392 $self->{chat}->append_text ("\n<header>Parts:</header>"); 400 $self->{chat}->append_text ("\n<leader>Parts:</leader>");
393 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users; 401 $self->{chat}->append_text (" <user>" . $_->as_string . "</user>") for @users;
394 } 402 }
395} 403}
396 404
397### GAME INFO ############################################################### 405### GAME INFO ###############################################################
560 568
561 delete $self->{board_click}; 569 delete $self->{board_click};
562 570
563 if ($self->{teacher} eq $self->{app}{conn}) { 571 if ($self->{teacher} eq $self->{app}{conn}) {
564 #TODO# # teaching mode not implemented 572 #TODO# # teaching mode not implemented
565 $self->{button_pass}->set (label => "Pass", visible => 1, sensitive => 1); 573 $self->{button_pass}->set (label => "Pass", sensitive => 1);
574 $self->{button_pass}->show;
566 $self->{button_undo}->hide; 575 $self->{button_undo}->hide;
567 $self->{button_resign}->hide; 576 $self->{button_resign}->hide;
568 $self->{board}->set (cursor => undef); 577 $self->{board}->set (cursor => undef);
569 578
570 } elsif ($running && $self->{colour} != COLOUR_NONE) { 579 } elsif ($running && $self->{colour} != COLOUR_NONE) {
572 $self->{button_undo}->show; 581 $self->{button_undo}->show;
573 $self->{button_resign}->show; 582 $self->{button_resign}->show;
574 583
575 if ($self->{cur_board}{score}) { 584 if ($self->{cur_board}{score}) {
576 # during scoring 585 # during scoring
577 $self->{button_pass}->set (label => "Done", visible => 1, sensitive => 1); 586 $self->{button_pass}->set (label => "Done", sensitive => 1);
587 $self->{button_pass}->show;
578 $self->{board}->set (cursor => sub { 588 $self->{board}->set (cursor => sub {
579 $_[0] & (MARK_B | MARK_W) 589 $_[0] & (MARK_B | MARK_W)
580 ? $_[0] ^ MARK_GRAYED 590 ? $_[0] ^ MARK_GRAYED
581 : $_[0]; 591 : $_[0];
582 }); 592 });
594 } 604 }
595 }; 605 };
596 606
597 } elsif ($self->{colour} == $self->{whosemove}) { 607 } elsif ($self->{colour} == $self->{whosemove}) {
598 # normal move 608 # normal move
599 $self->{button_pass}->set (label => "Pass", visible => 1, sensitive => 1); 609 $self->{button_pass}->set (label => "Pass", sensitive => 1);
610 $self->{button_pass}->show;
600 $self->{board}->set (cursor => sub { 611 $self->{board}->set (cursor => sub {
601 $self->{cur_board} 612 $self->{cur_board}
602 && $self->{cur_board}->is_valid_move ($self->{colour}, $_[1], $_[2], 613 && $self->{cur_board}->is_valid_move ($self->{colour}, $_[1], $_[2],
603 $self->{rules}{ruleset} == RULESET_NEW_ZEALAND) 614 $self->{rules}{ruleset} == RULESET_NEW_ZEALAND)
604 ? $_[0] | MARK_GRAYED | ($self->{colour} == COLOUR_WHITE ? MARK_W : MARK_B) 615 ? $_[0] | MARK_GRAYED | ($self->{colour} == COLOUR_WHITE ? MARK_W : MARK_B)
612 $self->{board}->set (cursor => undef); 623 $self->{board}->set (cursor => undef);
613 delete $self->{board_click}; 624 delete $self->{board_click};
614 $self->{button_pass}->sensitive (0); 625 $self->{button_pass}->sensitive (0);
615 }; 626 };
616 } else { 627 } else {
617 $self->{button_pass}->set (label => "Pass", sensitive => 0, visible => 1); 628 $self->{button_pass}->set (label => "Pass", sensitive => 0);
629 $self->{button_pass}->show;
618 $self->{board}->set (cursor => undef); 630 $self->{board}->set (cursor => undef);
619 } 631 }
620 } else { 632 } else {
621 $self->{button_undo}->hide; 633 $self->{button_undo}->hide;
622 $self->{button_resign}->hide; 634 $self->{button_resign}->hide;
878 890
879 my ($size, $time, $interval, $count, $type); 891 my ($size, $time, $interval, $count, $type);
880 892
881 if (!$self->{channel}) { 893 if (!$self->{channel}) {
882 $inlay->append_text ("\nNotes: "); 894 $inlay->append_text ("\nNotes: ");
883 $inlay->append_entry (\$info->{notes}, 20, ""); 895 $inlay->append_widget (gtk::textentry \$info->{notes}, 20, "");
884 $inlay->append_text ("\nGlobal Offer: "); 896 $inlay->append_text ("\nGlobal Offer: ");
885 $inlay->append_optionmenu (\$info->{flags}, 897 $inlay->append_optionmenu (\$info->{flags},
886 0 => "No", 898 0 => "No",
887 2 => "Yes", 899 2 => "Yes",
888 ); 900 );
941 if ($self->{channel}) { 953 if ($self->{channel}) {
942 $inlay->append_text ("\nHandicap: "); 954 $inlay->append_text ("\nHandicap: ");
943 $inlay->append_optionmenu (\$info->{rules}{handicap}, map +($_, $_), 0..9); 955 $inlay->append_optionmenu (\$info->{rules}{handicap}, map +($_, $_), 0..9);
944 956
945 $inlay->append_text ("\nKomi: "); 957 $inlay->append_text ("\nKomi: ");
946 $inlay->append_entry (\$info->{rules}{komi}, 5); 958 $inlay->append_widget (gtk::numentry \$info->{rules}{komi}, 5);
947 } 959 }
948 960
949 $inlay->append_text ("\nTimesys: "); 961 $inlay->append_text ("\nTimesys: ");
950 $inlay->append_optionmenu ( 962 $inlay->append_optionmenu (
951 \$info->{rules}{timesys}, 963 \$info->{rules}{timesys},
980 } 992 }
981 } 993 }
982 ); 994 );
983 995
984 $inlay->append_text ("\nMain Time: "); 996 $inlay->append_text ("\nMain Time: ");
985 $time = $inlay->append_entry (\$info->{rules}{time}, 5); 997 $time = $inlay->append_widget (gtk::timeentry \$info->{rules}{time}, 5);
986 $inlay->append_text ("\nInterval: "); 998 $inlay->append_text ("\nInterval: ");
987 $interval = $inlay->append_entry (\$info->{rules}{interval}, 3); 999 $interval = $inlay->append_widget (gtk::timeentry \$info->{rules}{interval}, 5);
988 $inlay->append_text ("\nPeriods/Stones: "); 1000 $inlay->append_text ("\nPeriods/Stones: ");
989 $count = $inlay->append_entry (\$info->{rules}{count}, 2); 1001 $count = $inlay->append_widget (gtk::numentry \$info->{rules}{count}, 5);
990 1002
991 $inlay->append_text ("\n"); 1003 $inlay->append_text ("\n");
992 1004
993 if (!$self->{channel}) { 1005 if (!$self->{channel}) {
994 $inlay->append_button ("Create Challenge", sub { 1006 $inlay->append_button ("Create Challenge", sub {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines