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

Comparing deliantra/Deliantra-Client/DC.pm (file contents):
Revision 1.62 by root, Thu May 25 16:24:43 2006 UTC vs.
Revision 1.69 by root, Thu May 25 23:06:05 2006 UTC

171 . $_[1]->content->present ($_[0]) 171 . $_[1]->content->present ($_[0])
172} 172}
173 173
174sub view_verbatim { 174sub view_verbatim {
175 (join "", 175 (join "",
176 map +("\t" x ($indent / 2)) . "$_\n", 176 map +("\t" x ($indent / 2)) . "<tt>$_</tt>\n",
177 split /\n/, CFClient::UI::Label::escape ($_[1])) 177 split /\n/, CFClient::UI::Label::escape ($_[1]))
178 . "\n" 178 . "\n"
179} 179}
180 180
181sub view_textblock { 181sub view_textblock {
182 ("\t" x ($indent / 2)) . "$_[1]\n\n" 182 ("\t" x ($indent / 2)) . "$_[1]\n\n"
183} 183}
184 184
185sub view_head1 { 185sub view_head1 {
186 "<span foreground='#ffff00' size='x-large'>" . $_[1]->title->present ($_[0]) . "</span>\n\n" 186 "\n\n<span foreground='#ffff00' size='x-large'>" . $_[1]->title->present ($_[0]) . "</span>\n\n"
187 . $_[1]->content->present ($_[0]) 187 . $_[1]->content->present ($_[0])
188}; 188};
189 189
190sub view_head2 { 190sub view_head2 {
191 "<span foreground='#ccccff' size='large'>" . $_[1]->title->present ($_[0]) . "</span>\n\n" 191 "\n<span foreground='#ccccff' size='large'>" . $_[1]->title->present ($_[0]) . "</span>\n\n"
192 . $_[1]->content->present ($_[0])
193};
194
195sub view_head3 {
196 "\n<span size='large'>" . $_[1]->title->present ($_[0]) . "</span>\n\n"
192 . $_[1]->content->present ($_[0]) 197 . $_[1]->content->present ($_[0])
193}; 198};
194 199
195sub view_over { 200sub view_over {
196 local $indent = $indent + $_[1]->indent; 201 local $indent = $indent + $_[1]->indent;
256} 261}
257 262
258sub update_widgets { 263sub update_widgets {
259 my ($self) = @_; 264 my ($self) = @_;
260 265
266 my $button_cb = sub {
267 my (undef, $ev, $x, $y) = @_;
268
269 if (($ev->{mod} & CFClient::KMOD_SHIFT) && $ev->{button} == 1) {
270 my $targ = $::CONN->{player}{tag};
271
272 if ($self->{container} == $::CONN->{player}{tag}) {
273 $targ = $::CONN->{open_container};
274 }
275
276 $::CONN->send ("move $targ $self->{tag} 0");
277 } elsif ($ev->{button} == 1) {
278 $::CONN->send ("examine $self->{tag}");
279 } elsif ($ev->{button} == 2) {
280 $::CONN->send ("apply $self->{tag}");
281 } elsif ($ev->{button} == 3) {
282 my @menu_items = (
283 ["examine", sub { $::CONN->send ("examine $self->{tag}") }],
284 ["mark", sub { $::CONN->send ("mark ". pack "N", $self->{tag}) }],
285 ["apply", sub { $::CONN->send ("apply $self->{tag}") }],
286 (
287 $self->{flags} & Crossfire::Protocol::F_LOCKED
288 ? (
289 ["unlock", sub { $::CONN->send ("lock " . pack "CN", 0, $self->{tag}) }],
290 )
291 : (
292 ["lock", sub { $::CONN->send ("lock " . pack "CN", 1, $self->{tag}) }],
293 ["drop", sub { $::CONN->send ("move $::CONN->{open_container} $self->{tag} 0") }],
294 )
295 ),
296 );
297
298 CFClient::UI::Menu->new (items => \@menu_items)->popup ($ev);
299 }
300
301 1
302 };
303
261 my $tooltip_std = "<small>" 304 my $tooltip_std = "<small>"
262 . "Left click - examine item\n" 305 . "Left click - examine item\n"
263 . "Shift-Left click - " . ($self->{container} ? "move or drop" : "take") . " item\n" 306 . "Shift-Left click - " . ($self->{container} ? "move or drop" : "take") . " item\n"
264 . "Middle click - apply\n" 307 . "Middle click - apply\n"
265 . "Right click - further options" 308 . "Right click - further options"
266 . "</small>\n"; 309 . "</small>\n";
267 310
268 $self->{face_widget} ||= new CFClient::UI::Face can_events => 1, can_hover => 1; 311 $self->{face_widget} ||= new CFClient::UI::Face
312 can_events => 1,
313 can_hover => 1,
314 anim => $self->{anim},
315 animspeed => $self->{animspeed}, # TODO# must be set at creation time
316 connect_button_down => $button_cb,
317 ;
269 $self->{face_widget}{face} = $self->{face}; 318 $self->{face_widget}{face} = $self->{face};
270 $self->{face_widget}{anim} = $self->{anim}; 319 $self->{face_widget}{anim} = $self->{anim};
271 $self->{face_widget}{animspeed} = $self->{animespeed}; 320 $self->{face_widget}{animspeed} = $self->{animspeed};
272 $self->{face_widget}->set_tooltip ( 321 $self->{face_widget}->set_tooltip (
273 "<b>Face/Animation.</b>\n" 322 "<b>Face/Animation.</b>\n"
274 . "Item uses face #$self->{face}. " 323 . "Item uses face #$self->{face}. "
275 . ($self->{animspeed} ? "Item uses animation #$self->{anim} at " . (1 / $self->{animspeed}) . "fps. " : "Item is not animated. ") 324 . ($self->{animspeed} ? "Item uses animation #$self->{anim} at " . (1 / $self->{animspeed}) . "fps. " : "Item is not animated. ")
276 . "\n\n$tooltip_std" 325 . "\n\n$tooltip_std"
277 ); 326 );
278 327
279 $self->{desc_widget} ||= new CFClient::UI::Label ellipsise => 2, can_events => 1, can_hover => 1; 328 $self->{desc_widget} ||= new CFClient::UI::Label
280 $self->{desc_widget}->set_text (CFClient::Item::desc_string $self); 329 can_events => 1,
330 can_hover => 1,
331 ellipsise => 2,
332 align => -1,
333 connect_button_down => $button_cb,
334 ;
335 my $desc = CFClient::Item::desc_string $self;
336 $self->{desc_widget}->set_text ($desc);
337 $self->{desc_widget}->set_tooltip ("<b>$desc</b>.\n$tooltip_std");
281 338
282 $self->{weight_widget} ||= new CFClient::UI::Label ellipsise => 0, can_events => 1, can_hover => 1, align => 0.5; 339 $self->{weight_widget} ||= new CFClient::UI::Label
340 can_events => 1,
341 can_hover => 1,
342 ellipsise => 0,
343 align => 0,
344 connect_button_down => $button_cb,
345 ;
283 $self->{weight_widget}->set_text (CFClient::Item::weight_string $self); 346 $self->{weight_widget}->set_text (CFClient::Item::weight_string $self);
284 347
285 $self->{weight_widget}->set_tooltip ( 348 $self->{weight_widget}->set_tooltip (
286 "<b>Weight</b>.\n" 349 "<b>Weight</b>.\n"
287 . ($self->{weight} >= 0 ? "One item weighs $self->{weight}g. " : "You have no idea how much this weighs. ") 350 . ($self->{weight} >= 0 ? "One item weighs $self->{weight}g. " : "You have no idea how much this weighs. ")

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines