… | |
… | |
21 | $self->{hpane}->set(position_set => 1); |
21 | $self->{hpane}->set(position_set => 1); |
22 | gtk::state $self->{hpane}, "room::hpane", $self->{name}, position => 200; |
22 | gtk::state $self->{hpane}, "room::hpane", $self->{name}, position => 200; |
23 | |
23 | |
24 | $self->{hpane}->pack1((my $vbox = new Gtk2::VBox), 1, 1); |
24 | $self->{hpane}->pack1((my $vbox = new Gtk2::VBox), 1, 1); |
25 | |
25 | |
26 | $vbox->add(($self->{text} = new gtk::text)->widget); |
26 | $vbox->add($self->{chat} = new chat); |
27 | |
27 | |
28 | $vbox->pack_start(($self->{entry} = new Gtk2::Entry), 0, 1, 0); |
|
|
29 | $self->{entry}->signal_connect(activate => sub { |
28 | $self->{chat}->signal_connect(command => sub { |
30 | my $text = $self->{entry}->get_text; |
29 | my ($chat, $cmd, $arg) = @_; |
31 | $self->say($text) if $text =~ /\S/; |
30 | $self->{app}->do_command ($chat, $cmd, $arg, userlist => $self->{userlist}, game => $self); |
32 | $self->{entry}->set_text(""); |
|
|
33 | }); |
31 | }); |
34 | |
32 | |
35 | $self->{hpane}->pack2((my $sw = new Gtk2::ScrolledWindow), 0, 1); |
33 | $self->{hpane}->pack2((my $sw = new Gtk2::ScrolledWindow), 0, 1); |
36 | $sw->set_policy("automatic", "always"); |
34 | $sw->set_policy("automatic", "always"); |
37 | |
35 | |
… | |
… | |
56 | |
54 | |
57 | sub inject_msg_room { |
55 | sub inject_msg_room { |
58 | my ($self, $msg) = @_; |
56 | my ($self, $msg) = @_; |
59 | |
57 | |
60 | # secret typoe ;-) |
58 | # secret typoe ;-) |
61 | $self->{text}->append_text("\n<header><user>" . (util::toxml $msg->{name}) |
59 | $self->{chat}->append_text("\n<header><user>" . (util::toxml $msg->{name}) |
62 | . "</user>: </header>" . (util::toxml $msg->{message})); |
60 | . "</user>: </header>" . (util::toxml $msg->{message})); |
63 | } |
61 | } |
64 | |
62 | |
65 | sub event_update_users { |
63 | sub event_update_users { |
66 | my ($self, $add, $update, $remove) = @_; |
64 | my ($self, $add, $update, $remove) = @_; |
… | |
… | |
99 | } |
97 | } |
100 | |
98 | |
101 | sub event_update_roominfo { |
99 | sub event_update_roominfo { |
102 | my ($self) = @_; |
100 | my ($self) = @_; |
103 | |
101 | |
104 | $self->{text}->append_text("\n<user>" . (util::toxml $self->{owner}) . "</user>\n" |
102 | $self->{chat}->append_text("\n<user>" . (util::toxml $self->{owner}) . "</user>\n" |
105 | . "<description>" . (util::toxml $self->{description}) . "</description>\n"); |
103 | . "<description>" . (util::toxml $self->{description}) . "</description>\n"); |
106 | } |
104 | } |
107 | |
105 | |
108 | sub destroy { |
106 | sub destroy { |
109 | my ($self) = @_; |
107 | my ($self) = @_; |