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

Comparing deliantra/Deliantra-Client/DC/Protocol.pm (file contents):
Revision 1.21 by root, Mon Jun 5 21:10:04 2006 UTC vs.
Revision 1.25 by root, Tue Jun 6 03:13:00 2006 UTC

347 my ($self, $flags, $prompt) = @_; 347 my ($self, $flags, $prompt) = @_;
348 348
349 $prompt = $LAST_QUERY unless length $prompt; 349 $prompt = $LAST_QUERY unless length $prompt;
350 $LAST_QUERY = $prompt; 350 $LAST_QUERY = $prompt;
351 351
352 my $dialog = new CFClient::UI::FancyFrame 352 $self->{query}-> ($self, $flags, $prompt);
353 x => "center",
354 y => "center",
355 title => "Query",
356 child => my $vbox = new CFClient::UI::VBox,
357 ;
358
359 $vbox->add (new CFClient::UI::Label
360 max_w => $::WIDTH * 0.4,
361 ellipsise => 0,
362 text => $prompt);
363
364 if ($flags & CS_QUERY_YESNO) {
365 $vbox->add (my $hbox = new CFClient::UI::HBox);
366 $hbox->add (new CFClient::UI::Button
367 text => "No",
368 on_activate => sub {
369 $self->send ("reply n");
370 $dialog->destroy;
371 $self->{map_widget}->focus_in;
372 }
373 );
374 $hbox->add (new CFClient::UI::Button
375 text => "Yes",
376 on_activate => sub {
377 $self->send ("reply y");
378 $dialog->destroy;
379 },
380 );
381
382 $dialog->focus_in;
383
384 } elsif ($flags & CS_QUERY_SINGLECHAR) {
385 $dialog->{tooltip} = "Press a key (click on the entry to make sure it has keyboard focus)";
386 $vbox->add (my $entry = new CFClient::UI::Entry
387 on_changed => sub {
388 $self->send ("reply $_[1]");
389 $dialog->destroy;
390 },
391 );
392
393 $entry->focus_in;
394
395 } else {
396 $dialog->{tooltip} = "Enter the reply and press return (click on the entry to make sure it has keyboard focus)";
397
398 $vbox->add (my $entry = new CFClient::UI::Entry
399 $flags & CS_QUERY_HIDEINPUT ? (hiddenchar => "*") : (),
400 on_activate => sub {
401 $self->send ("reply $_[1]");
402 $dialog->destroy;
403 },
404 );
405
406 $entry->focus_in;
407 }
408
409 $dialog->show;
410} 353}
411 354
412sub drawinfo { 355sub drawinfo {
413 my ($self, $color, $text) = @_; 356 my ($self, $color, $text) = @_;
414 357
428 [0.74, 0.65, 0.41], 371 [0.74, 0.65, 0.41],
429 ); 372 );
430 373
431 my $time = sprintf "%02d:%02d:%02d", (localtime time)[2,1,0]; 374 my $time = sprintf "%02d:%02d:%02d", (localtime time)[2,1,0];
432 375
376 # try to create single paragraphs of multiple lines sent by the server
377 $text =~ s/(?<=\S)\n(?=\w)/ /g;
378
433 $text = CFClient::UI::Label::escape $text; 379 $text = CFClient::UI::Label::escape $text;
434 $text =~ s/\[b\](.*?)\[\/b\]/<b>\1<\/b>/g; 380 $text =~ s/\[b\](.*?)\[\/b\]/<b>\1<\/b>/g;
435 $text =~ s/\[color=(.*?)\](.*?)\[\/color\]/<span foreground='\1'>\2<\/span>/g; 381 $text =~ s/\[color=(.*?)\](.*?)\[\/color\]/<span foreground='\1'>\2<\/span>/g;
436 382
437 $self->{logview}->add_paragraph ($color[$color], 383 $self->{logview}->add_paragraph ($color[$color],
540 486
541 $::FLOORBOX->clear; 487 $::FLOORBOX->clear;
542 488
543 my $row; 489 my $row;
544 for (@{ $::CONN->{container}{0} }) { 490 for (@{ $::CONN->{container}{0} }) {
545 if ($row < 7) { 491 if ($row < 6) {
546 local $_->{face_widget}; # hack to force recreation of widget 492 local $_->{face_widget}; # hack to force recreation of widget
547 local $_->{desc_widget}; # hack to force recreation of widget 493 local $_->{desc_widget}; # hack to force recreation of widget
548 CFClient::Item::update_widgets $_; 494 CFClient::Item::update_widgets $_;
549 495
550 $::FLOORBOX->add (0, $row, $_->{face_widget}); 496 $::FLOORBOX->add (0, $row, $_->{face_widget});
551 $::FLOORBOX->add (1, $row, $_->{desc_widget}); 497 $::FLOORBOX->add (1, $row, $_->{desc_widget});
552 498
553 $row++; 499 $row++;
554 } else { 500 } else {
555 $::FLOORBOX->add (1, $row, new CFClient::UI::Label text => "More..."); 501 $::FLOORBOX->add (1, $row, new CFClient::UI::Button
502 text => "More...",
503 on_activate => sub { $::INV_WINDOW->toggle_visibility },
504 );
556 last; 505 last;
557 } 506 }
558 } 507 }
559 }); 508 });
560 509

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines