ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/UI/Inventory.pm
Revision: 1.5
Committed: Mon May 5 20:22:03 2008 UTC (16 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-2_03, rel-2_02, rel-2_05, rel-2_04, rel-2_0, rel-2_10, rel-0_9972, rel-0_9973, rel-0_9974, rel-0_9975, rel-0_9976, rel-0_9977, rel-0_9978, rel-0_9971, rel-1_21
Changes since 1.4: +1 -2 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.4 package DC::UI::Inventory;
2 root 1.1
3     use strict;
4     use utf8;
5    
6 root 1.4 use DC::Macro;
7     use DC::Item;
8 root 1.1
9 root 1.4 our @ISA = DC::UI::Table::;
10 root 1.1
11     sub new {
12     my $class = shift;
13    
14     my $self = $class->SUPER::new (
15     col_expand => [0, 1, 0],
16     items => [],
17     @_,
18     );
19    
20     $self->set_sort_order (undef);
21    
22     $self
23     }
24    
25     sub update_items {
26     my ($self) = @_;
27    
28     $self->clear;
29    
30     my @item = $self->{sort}->(@{ $self->{items} });
31    
32     my @adds;
33     my $row = 0;
34     for my $item ($self->{sort}->(@{ $self->{items} })) {
35 root 1.4 DC::Item::update_widgets $item;
36 root 1.1
37     push @adds, 0, $row, $item->{face_widget};
38     push @adds, 1, $row, $item->{desc_widget};
39     push @adds, 2, $row, $item->{weight_widget};
40    
41     $row++;
42     }
43    
44 root 1.2 $self->add_at (@adds);
45 root 1.1 }
46    
47     sub set_sort_order {
48     my ($self, $order) = @_;
49    
50     $self->{sort} = $order ||= sub {
51     sort {
52 root 1.5 $b->{count} <=> $a->{count}
53 root 1.1 } @_
54     };
55    
56     $self->update_items;
57     }
58    
59     sub set_items {
60     my ($self, $items) = @_;
61    
62     $self->{items} = [$items ? values %$items : ()];
63     $self->update_items;
64     }
65