ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/UI/MessageWindow.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/UI/MessageWindow.pm (file contents):
Revision 1.8 by elmex, Fri Jul 27 17:24:29 2007 UTC vs.
Revision 1.9 by elmex, Tue Jul 31 06:49:38 2007 UTC

11our %channel_info; 11our %channel_info;
12 12
13sub add_channel_info { 13sub add_channel_info {
14 my ($info) = @_; 14 my ($info) = @_;
15} 15}
16
17
18sub clr_def($) { "<span foreground=\"#777777\">$_[0]</span>" }
19sub clr_act($) { "<span foreground=\"#ffffff\">$_[0]</span>" }
20sub clr_hlt($) { "<span foreground=\"#aaaaff\">$_[0]</span>" }
21sub clr_hlt2($) { "<span foreground=\"#9999ff\">$_[0]</span>" }
16 22
17sub new { 23sub new {
18 my $class = shift; 24 my $class = shift;
19 25
20 my $self = $class->SUPER::new ( 26 my $self = $class->SUPER::new (
71 77
72 $bb->add (my $vb = CFPlus::UI::Box->new); 78 $bb->add (my $vb = CFPlus::UI::Box->new);
73 $bb->connect (activate => sub { $self->unhighlight_channel ($id); 0 }); 79 $bb->connect (activate => sub { $self->unhighlight_channel ($id); 0 });
74 $vb->add ( 80 $vb->add (
75 my $b = CFPlus::UI::Label->new ( 81 my $b = CFPlus::UI::Label->new (
76 expand => 1, markup => $chaninfo->{title}, valign => 0, align => 0 82 expand => 1, markup => clr_def ($chaninfo->{title}), valign => 0, align => 0
77 ) 83 )
78 ); 84 );
79 85
80 $cv->{_chat_id} = $id; 86 $cv->{_chat_id} = $id;
81 $cv->{_tab_button} = $b; 87 $cv->{_tab_button} = $b;
122 my ($self, $id) = @_; 128 my ($self, $id) = @_;
123 my $cv = $self->{chatviews}->{$id}; 129 my $cv = $self->{chatviews}->{$id};
124 $cv->{_channel_highlighted} = 1; 130 $cv->{_channel_highlighted} = 1;
125 my $tab = $cv->{_tab_button}; 131 my $tab = $cv->{_tab_button};
126 $tab->set_markup ( 132 $tab->set_markup (
127 "<span foreground='#ff0000'>" 133 clr_hlt (defined $id ? $self->{channel_info}->{$id}->{title} : "Log")
128 .$self->{channel_info}->{$id}->{title}
129 ."</span>"
130 ); 134 );
131} 135}
132 136
133sub unhighlight_channel { 137sub unhighlight_channel {
134 my ($self, $id) = @_; 138 my ($self, $id) = @_;
135 139
136 my $cv = $self->{chatviews}->{$id}; 140 my $cv = $self->{chatviews}->{$id};
137 $cv->{_channel_highlighted} = 0; 141 $cv->{_channel_highlighted} = 0;
138 my $tab = $cv->{_tab_button}; 142 my $tab = $cv->{_tab_button};
139 $tab->set_markup ( 143
140 "<span foreground='#ffff00'><b>" 144 $tab->set_markup (clr_act (defined $id ? $self->{channel_info}->{$id}->{title} : "Log"));
141 .$self->{channel_info}->{$id}->{title}
142 ."</b></span>"
143 );
144} 145}
145 146
146sub update_current_tab { 147sub update_current_tab {
147 my ($self, $page) = @_; 148 my ($self, $page) = @_;
148 my $tab = $page->{_tab_button}; 149 my $tab = $page->{_tab_button};
150 my $label;
151 if (defined $page->{_chat_id}) {
149 my $label = $self->{channel_info}->{$page->{_chat_id}}->{title}; 152 $label = $self->{channel_info}->{$page->{_chat_id}}->{title};
153 }
150 $label = "Log" unless defined $label; 154 $label = "Log" unless defined $label;
151 $tab->set_markup ( 155
152 "<span foreground='#ffff00'><b>" 156 $tab->set_markup (clr_act ($label));
153 .$label
154 ."</b></span>"
155 );
156 157
157 for ($self->{nb}->pages) { 158 for ($self->{nb}->pages) {
158 next if $_ eq $page; 159 next if $_ eq $page;
159 my $tab = $_->{_tab_button}; 160 my $tab = $_->{_tab_button};
160 next if $_->{_channel_highlighted}; 161 next if $_->{_channel_highlighted};
161 next unless $tab; 162 next unless $tab;
162 163
164 my $label;
165 if (defined $_->{_chat_id}) {
163 my $label = $self->{channel_info}->{$_->{_chat_id}}->{title}; 166 $label = $self->{channel_info}->{$_->{_chat_id}}->{title};
167 }
164 $label = "Log" unless defined $label; 168 $label = "Log" unless defined $label;
165 169
166 $tab->set_markup ( 170 $tab->set_markup (clr_def ($label));
167 "<span foreground='#ffffff'>"
168 .$label
169 ."</span>"
170 );
171 } 171 }
172} 172}
173 173
174sub add_channel { 174sub add_channel {
175 my ($self, $info) = @_; 175 my ($self, $info) = @_;
179 179
180sub message { 180sub message {
181 my ($self, $para) = @_; 181 my ($self, $para) = @_;
182 my $id = $para->{type}; 182 my $id = $para->{type};
183 183
184 if ($self->{channel_info}->{$id}) { 184 if (exists $self->{channel_info}->{$id}) {
185 $self->touch_channel ($id); 185 $self->touch_channel ($id);
186 $self->{chatviews}->{$id}->message ($para); 186 $self->{chatviews}->{$id}->message ($para);
187 } else { 187 } else {
188 $self->{main_log}->message ($para); 188 $self->{main_log}->message ($para);
189 } 189 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines