--- deliantra/Deliantra-Client/DC/Protocol.pm 2007/07/19 16:44:14 1.123 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2007/07/20 16:32:04 1.124 @@ -447,12 +447,16 @@ if (grep +(exists $stats->{$_}) != (exists $prev->{$_}), @skills) { $sktbl->clear; - $sktbl->add (0, 0, new CFPlus::UI::Label text => "Experience", align => 1); - $sktbl->add (1, 0, new CFPlus::UI::Label text => "Lvl.", align => 1); - $sktbl->add (2, 0, new CFPlus::UI::Label text => "Skill", expand => 1); - $sktbl->add (3, 0, new CFPlus::UI::Label text => "Experience", align => 1); - $sktbl->add (4, 0, new CFPlus::UI::Label text => "Lvl.", align => 1); - $sktbl->add (5, 0, new CFPlus::UI::Label text => "Skill", expand => 1); + my @add; + + push @add, + 0, 0, (new CFPlus::UI::Label text => "Experience", align => 1), + 1, 0, (new CFPlus::UI::Label text => "Lvl.", align => 1), + 2, 0, (new CFPlus::UI::Label text => "Skill", expand => 1), + 3, 0, (new CFPlus::UI::Label text => "Experience", align => 1), + 4, 0, (new CFPlus::UI::Label text => "Lvl.", align => 1), + 5, 0, (new CFPlus::UI::Label text => "Skill", expand => 1), + ; my $TOOLTIP_ALL = "\n\nLeft click - ready skill\nMiddle click - use spell\nRight click - further options"; @@ -490,15 +494,19 @@ 1 }; - $sktbl->add ($x * 3 + 0, $y, $self->{stat_widget_exp}{$idx} = new CFPlus::UI::Label - text => "0", align => 1, font => $::FONT_FIXED, fg => [1, 1, 0], on_button_down => $spell_cb, @TOOLTIP_EXP); - $sktbl->add ($x * 3 + 1, $y, $self->{stat_widget_lvl}{$idx} = new CFPlus::UI::Label - text => "0", align => 1, font => $::FONT_FIXED, fg => [0, 1, 0], padding_x => 4, on_button_down => $spell_cb, @TOOLTIP_LVL); - $sktbl->add ($x * 3 + 2, $y, new CFPlus::UI::Label text => $name, on_button_down => $spell_cb, - can_events => 1, can_hover => 1, tooltip => (CFPlus::Pod::section_label skill_description => $name) . $TOOLTIP_ALL); + push @add, + $x * 3 + 0, $y, ($self->{stat_widget_exp}{$idx} = new CFPlus::UI::Label + align => 1, font => $::FONT_FIXED, fg => [1, 1, 0], on_button_down => $spell_cb, @TOOLTIP_EXP), + $x * 3 + 1, $y, ($self->{stat_widget_lvl}{$idx} = new CFPlus::UI::Label + text => "0", align => 1, font => $::FONT_FIXED, fg => [0, 1, 0], padding_x => 4, on_button_down => $spell_cb, @TOOLTIP_LVL), + $x * 3 + 2, $y, (new CFPlus::UI::Label text => $name, on_button_down => $spell_cb, + can_events => 1, can_hover => 1, tooltip => (CFPlus::Pod::section_label skill_description => $name) . $TOOLTIP_ALL), + ; $x++ and ($x, $y) = (0, $y + 1); } + + $sktbl->add_at (@add); } for (grep exists $stats->{$_}, @skills) { @@ -990,6 +998,8 @@ $::FLOORBOX->clear; + my @add; + my $row; for (sort { $a->{count} <=> $b->{count} } values %{ $::CONN->{container}{$::CONN->{open_container} || 0} }) { if ($row < 6) { @@ -997,24 +1007,27 @@ local $_->{desc_widget}; # hack to force recreation of widget CFPlus::Item::update_widgets $_; - $::FLOORBOX->add (0, $row, $_->{face_widget}); - $::FLOORBOX->add (1, $row, $_->{desc_widget}); + push @add, + 0, $row, $_->{face_widget}, + 1, $row, $_->{desc_widget}; $row++; } else { - $::FLOORBOX->add (1, $row, new CFPlus::UI::Button + push @add, 1, $row, new CFPlus::UI::Button text => "More...", on_activate => sub { ::toggle_player_page ($::INVENTORY_PAGE); 0 }, - ); + ; last; } } if ($::CONN->{open_container}) { - $::FLOORBOX->add (1, $row++, new CFPlus::UI::Button + push @add, 1, $row++, new CFPlus::UI::Button text => "Close container", on_activate => sub { $::CONN->send ("apply $::CONN->{open_container}") } - ); + ; } + + $::FLOORBOX->add_at (@add); }); $::WANT_REFRESH++;