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.68 by root, Thu May 25 21:48:22 2006 UTC

256} 256}
257 257
258sub update_widgets { 258sub update_widgets {
259 my ($self) = @_; 259 my ($self) = @_;
260 260
261 my $button_cb = sub {
262 my (undef, $ev, $x, $y) = @_;
263
264 if (($ev->{mod} & CFClient::KMOD_SHIFT) && $ev->{button} == 1) {
265 my $targ = $::CONN->{player}{tag};
266
267 if ($self->{container} == $::CONN->{player}{tag}) {
268 $targ = $::CONN->{open_container};
269 }
270
271 $::CONN->send ("move $targ $self->{tag} 0");
272 } elsif ($ev->{button} == 1) {
273 $::CONN->send ("examine $self->{tag}");
274 } elsif ($ev->{button} == 2) {
275 $::CONN->send ("apply $self->{tag}");
276 } elsif ($ev->{button} == 3) {
277 my @menu_items = (
278 ["examine", sub { $::CONN->send ("examine $self->{tag}") }],
279 ["mark", sub { $::CONN->send ("mark ". pack "N", $self->{tag}) }],
280 ["apply", sub { $::CONN->send ("apply $self->{tag}") }],
281 (
282 $self->{flags} & Crossfire::Protocol::F_LOCKED
283 ? (
284 ["unlock", sub { $::CONN->send ("lock " . pack "CN", 0, $self->{tag}) }],
285 )
286 : (
287 ["lock", sub { $::CONN->send ("lock " . pack "CN", 1, $self->{tag}) }],
288 ["drop", sub { $::CONN->send ("move $::CONN->{open_container} $self->{tag} 0") }],
289 )
290 ),
291 );
292
293 CFClient::UI::Menu->new (items => \@menu_items)->popup ($ev);
294 }
295
296 1
297 };
298
261 my $tooltip_std = "<small>" 299 my $tooltip_std = "<small>"
262 . "Left click - examine item\n" 300 . "Left click - examine item\n"
263 . "Shift-Left click - " . ($self->{container} ? "move or drop" : "take") . " item\n" 301 . "Shift-Left click - " . ($self->{container} ? "move or drop" : "take") . " item\n"
264 . "Middle click - apply\n" 302 . "Middle click - apply\n"
265 . "Right click - further options" 303 . "Right click - further options"
266 . "</small>\n"; 304 . "</small>\n";
267 305
268 $self->{face_widget} ||= new CFClient::UI::Face can_events => 1, can_hover => 1; 306 $self->{face_widget} ||= new CFClient::UI::Face
307 can_events => 1,
308 can_hover => 1,
309 anim => $self->{anim},
310 animspeed => $self->{animspeed}, # TODO# must be set at creation time
311 connect_button_down => $button_cb,
312 ;
269 $self->{face_widget}{face} = $self->{face}; 313 $self->{face_widget}{face} = $self->{face};
270 $self->{face_widget}{anim} = $self->{anim}; 314 $self->{face_widget}{anim} = $self->{anim};
271 $self->{face_widget}{animspeed} = $self->{animespeed}; 315 $self->{face_widget}{animspeed} = $self->{animspeed};
272 $self->{face_widget}->set_tooltip ( 316 $self->{face_widget}->set_tooltip (
273 "<b>Face/Animation.</b>\n" 317 "<b>Face/Animation.</b>\n"
274 . "Item uses face #$self->{face}. " 318 . "Item uses face #$self->{face}. "
275 . ($self->{animspeed} ? "Item uses animation #$self->{anim} at " . (1 / $self->{animspeed}) . "fps. " : "Item is not animated. ") 319 . ($self->{animspeed} ? "Item uses animation #$self->{anim} at " . (1 / $self->{animspeed}) . "fps. " : "Item is not animated. ")
276 . "\n\n$tooltip_std" 320 . "\n\n$tooltip_std"
277 ); 321 );
278 322
279 $self->{desc_widget} ||= new CFClient::UI::Label ellipsise => 2, can_events => 1, can_hover => 1; 323 $self->{desc_widget} ||= new CFClient::UI::Label
280 $self->{desc_widget}->set_text (CFClient::Item::desc_string $self); 324 can_events => 1,
325 can_hover => 1,
326 ellipsise => 2,
327 align => -1,
328 connect_button_down => $button_cb,
329 ;
330 my $desc = CFClient::Item::desc_string $self;
331 $self->{desc_widget}->set_text ($desc);
332 $self->{desc_widget}->set_tooltip ("<b>$desc</b>.\n$tooltip_std");
281 333
282 $self->{weight_widget} ||= new CFClient::UI::Label ellipsise => 0, can_events => 1, can_hover => 1, align => 0.5; 334 $self->{weight_widget} ||= new CFClient::UI::Label
335 can_events => 1,
336 can_hover => 1,
337 ellipsise => 0,
338 align => 0,
339 connect_button_down => $button_cb,
340 ;
283 $self->{weight_widget}->set_text (CFClient::Item::weight_string $self); 341 $self->{weight_widget}->set_text (CFClient::Item::weight_string $self);
284 342
285 $self->{weight_widget}->set_tooltip ( 343 $self->{weight_widget}->set_tooltip (
286 "<b>Weight</b>.\n" 344 "<b>Weight</b>.\n"
287 . ($self->{weight} >= 0 ? "One item weighs $self->{weight}g. " : "You have no idea how much this weighs. ") 345 . ($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