… | |
… | |
204 | $self->listen ($self->{conn}); |
204 | $self->listen ($self->{conn}); |
205 | |
205 | |
206 | gtk::state $self, "game::window", undef, window_size => [600, 500]; |
206 | gtk::state $self, "game::window", undef, window_size => [600, 500]; |
207 | |
207 | |
208 | $self->signal_connect (delete_event => sub { $self->part; 1 }); |
208 | $self->signal_connect (delete_event => sub { $self->part; 1 }); |
209 | $self->signal_connect (destroy => sub { %{$_[0]} = () }); |
209 | $self->signal_connect (destroy => sub { |
|
|
210 | $self->unlisten; |
|
|
211 | delete $self->{app}{game}{$self->{channel}}; |
|
|
212 | %{$_[0]} = (); |
|
|
213 | });#d# |
210 | |
214 | |
211 | $self->add (my $hpane = new Gtk2::HPaned); |
215 | $self->add (my $hpane = new Gtk2::HPaned); |
212 | gtk::state $hpane, "game::hpane", undef, position => 500; |
216 | gtk::state $hpane, "game::hpane", undef, position => 500; |
213 | |
217 | |
214 | # LEFT PANE |
218 | # LEFT PANE |
… | |
… | |
259 | |
263 | |
260 | $hbox->add ($self->{userpanel}[$_] = new game::userpanel colour => $_) |
264 | $hbox->add ($self->{userpanel}[$_] = new game::userpanel colour => $_) |
261 | for COLOUR_WHITE, COLOUR_BLACK; |
265 | for COLOUR_WHITE, COLOUR_BLACK; |
262 | |
266 | |
263 | $vbox->pack_start (($self->{chat} = new superchat), 1, 1, 0); |
267 | $vbox->pack_start (($self->{chat} = new superchat), 1, 1, 0); |
264 | weaken $self->{chat}; |
|
|
265 | |
268 | |
266 | $self->{rules_inlay} = $self->{chat}->new_switchable_inlay ("Game Rules", sub { $self->draw_rules (@_) }, 1); |
269 | $self->{rules_inlay} = $self->{chat}->new_switchable_inlay ("Game Rules", sub { $self->draw_rules (@_) }, 1); |
267 | |
270 | |
268 | $self->{chat}->signal_connect (command => sub { |
271 | $self->{chat}->signal_connect (command => sub { |
269 | my ($chat, $cmd, $arg) = @_; |
272 | my ($chat, $cmd, $arg) = @_; |
… | |
… | |
303 | sub join { |
306 | sub join { |
304 | my ($self) = @_; |
307 | my ($self) = @_; |
305 | return if $self->{joined}; |
308 | return if $self->{joined}; |
306 | |
309 | |
307 | $self->SUPER::join; |
310 | $self->SUPER::join; |
308 | |
|
|
309 | $self->show_all; |
|
|
310 | } |
311 | } |
311 | |
312 | |
312 | sub update_board { |
313 | sub update_board { |
313 | my ($self) = @_; |
314 | my ($self) = @_; |
314 | return unless $self->{path}; |
315 | return unless $self->{path}; |
… | |
… | |
394 | sub event_join { |
395 | sub event_join { |
395 | my ($self) = @_; |
396 | my ($self) = @_; |
396 | |
397 | |
397 | $self->SUPER::event_join (@_); |
398 | $self->SUPER::event_join (@_); |
398 | $self->event_update_game; |
399 | $self->event_update_game; |
|
|
400 | $self->show_all; |
399 | } |
401 | } |
400 | |
402 | |
401 | sub event_part { |
403 | sub event_part { |
402 | my ($self) = @_; |
404 | my ($self) = @_; |
403 | |
405 | |