Revision: | 1.5 |
Committed: | Mon May 5 20:22:03 2008 UTC (16 years, 2 months 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 *** |
# | 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 |