… | |
… | |
20 | my $title = $self->{channel} ? $self->owner->as_string." ".$self->opponent_string : "Game Window"; |
20 | my $title = $self->{channel} ? $self->owner->as_string." ".$self->opponent_string : "Game Window"; |
21 | $self->{window}->set_title("KGS Game $title"); |
21 | $self->{window}->set_title("KGS Game $title"); |
22 | gtk::state $self->{window}, "game::window", undef, window_size => [600, 500]; |
22 | gtk::state $self->{window}, "game::window", undef, window_size => [600, 500]; |
23 | |
23 | |
24 | $self->{window}->signal_connect(delete_event => sub { |
24 | $self->{window}->signal_connect(delete_event => sub { |
25 | if ($self->{joined}) { |
|
|
26 | $self->part; |
25 | $self->part; |
27 | } else { |
|
|
28 | $self->event_part; |
|
|
29 | } |
|
|
30 | 1; |
26 | 1; |
31 | }); |
27 | }); |
32 | |
28 | |
33 | $self->{window}->add($self->{hpane} = new Gtk2::HPaned); |
29 | $self->{window}->add($self->{hpane} = new Gtk2::HPaned); |
34 | gtk::state $self->{hpane}, "game::hpane", undef, position => 500; |
30 | gtk::state $self->{hpane}, "game::hpane", undef, position => 500; |
… | |
… | |
114 | $self->{window}->show_all; |
110 | $self->{window}->show_all; |
115 | } |
111 | } |
116 | |
112 | |
117 | sub part { |
113 | sub part { |
118 | my ($self) = @_; |
114 | my ($self) = @_; |
119 | return unless $self->{joined}; |
115 | |
120 | $self->SUPER::part; |
116 | $self->SUPER::part; |
121 | |
117 | $self->destroy; |
122 | $self->{window}->hide; |
|
|
123 | } |
118 | } |
124 | |
119 | |
125 | sub configure_event { |
120 | sub configure_event { |
126 | my ($widget, $event, $self) = @_; |
121 | my ($widget, $event, $self) = @_; |
127 | delete $self->{stack}; |
122 | delete $self->{stack}; |