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

# Content
1 package DC::UI::Inventory;
2
3 use strict;
4 use utf8;
5
6 use DC::Macro;
7 use DC::Item;
8
9 our @ISA = DC::UI::Table::;
10
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 DC::Item::update_widgets $item;
36
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 $self->add_at (@adds);
45 }
46
47 sub set_sort_order {
48 my ($self, $order) = @_;
49
50 $self->{sort} = $order ||= sub {
51 sort {
52 $b->{count} <=> $a->{count}
53 } @_
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