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

Comparing deliantra/Deliantra-Client/DC/UI.pm (file contents):
Revision 1.165 by root, Mon Apr 24 08:22:22 2006 UTC vs.
Revision 1.169 by elmex, Mon Apr 24 10:43:39 2006 UTC

492sub new { 492sub new {
493 my ($class, %arg) = @_; 493 my ($class, %arg) = @_;
494 494
495 my $children = delete $arg{children} || []; 495 my $children = delete $arg{children} || [];
496 496
497 my $self = $class->SUPER::new (children => [], can_events => 0, %arg); 497 my $self = $class->SUPER::new (
498 children => [],
499 can_events => 0,
500 %arg,
501 );
498 $self->add ($_) for @$children; 502 $self->add ($_) for @$children;
499 503
500 $self 504 $self
501} 505}
502 506
751 755
752 my $self = $class->SUPER::new ( 756 my $self = $class->SUPER::new (
753 bg => [1, 1, 1, 1], 757 bg => [1, 1, 1, 1],
754 border_bg => [1, 1, 1, 1], 758 border_bg => [1, 1, 1, 1],
755 border => 0.8, 759 border => 0.8,
760 can_events => 1,
756 @_ 761 @_
757 ); 762 );
758 763
759 $self->{title} &&= new CFClient::UI::Label 764 $self->{title} &&= new CFClient::UI::Label
760 align => 0, 765 align => 0,
1461 my ($self, $ev) = @_; 1466 my ($self, $ev) = @_;
1462 1467
1463 my $sym = $ev->{sym}; 1468 my $sym = $ev->{sym};
1464 1469
1465 if ($sym == 13) { 1470 if ($sym == 13) {
1471 unshift @{$self->{history}},
1472 my $txt = $self->get_text;
1473 $self->{history_pointer} = -1;
1474 $self->{history_saveback} = '';
1466 $self->emit (activate => $self->get_text); 1475 $self->emit (activate => $txt);
1467 $self->update; 1476 $self->update;
1477
1478 } elsif ($sym == CFClient::SDLK_UP) {
1479 if ($self->{history_pointer} < 0) {
1480 $self->{history_saveback} = $self->get_text;
1481 }
1482 if (@{$self->{history} || []} > 0) {
1483 $self->{history_pointer}++;
1484 if ($self->{history_pointer} >= @{$self->{history} || []}) {
1485 $self->{history_pointer} = @{$self->{history} || []} - 1;
1486 }
1487 $self->set_text ($self->{history}->[$self->{history_pointer}]);
1488 }
1489
1490 } elsif ($sym == CFClient::SDLK_DOWN) {
1491 $self->{history_pointer}--;
1492 $self->{history_pointer} = -1 if $self->{history_pointer} < 0;
1493
1494 if ($self->{history_pointer} >= 0) {
1495 $self->set_text ($self->{history}->[$self->{history_pointer}]);
1496 } else {
1497 $self->set_text ($self->{history_saveback});
1498 }
1468 1499
1469 } else { 1500 } else {
1470 $self->SUPER::key_down ($ev); 1501 $self->SUPER::key_down ($ev);
1471 } 1502 }
1472 1503

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines