--- deliantra/Deliantra-Client/DC/UI.pm 2009/12/22 00:35:44 1.478 +++ deliantra/Deliantra-Client/DC/UI.pm 2012/01/04 11:23:23 1.483 @@ -1,10 +1,10 @@ package DC::UI; -use utf8; -use strict; +use common::sense; use List::Util (); +use AnyEvent (); use Guard (); use DC; @@ -225,7 +225,7 @@ package DC::UI::Base; -use strict; +use common::sense; use DC::OpenGL; @@ -645,7 +645,8 @@ our @ISA = DC::UI::Base::; -use strict; +use common::sense; + use DC::OpenGL; sub new { @@ -3056,7 +3057,7 @@ package DC::UI::Slider; -use strict; +use common::sense; use DC::OpenGL; @@ -3152,7 +3153,7 @@ my (undef, $lo, $hi, $page) = @{$self->{range}}; - $x = ($x - $self->{click}[1]) / ($w * $self->{scale}); + $x = ($x - $self->{click}[1]) / ($w * $self->{scale} || 1e999); $self->set_value ($self->{click}[0] + $x * ($hi - $page - $lo)); } else { @@ -3288,7 +3289,6 @@ @_, layout => (new DC::Layout), - par => [], max_par => 0, height => 0, children => [ @@ -3299,6 +3299,8 @@ $self->{children}[1]->connect (changed => sub { $self->update }); + $self->add_paragraph (@{ delete $self->{par} }) if @{ $self->{par} }; + $self } @@ -4294,7 +4296,7 @@ sub reorder { my ($self) = @_; - my $NOW = EV::time; + my $NOW = AE::time; # freeze display when hovering over any label return if $DC::UI::TOOLTIP->{owner} @@ -4403,6 +4405,16 @@ }); } +sub clr_group { + my ($self, $group) = @_; + + if (delete $self->{item}{$group}) { + $ROOT->on_refresh (reorder => sub { + $self->reorder; + }); + } +} + sub reconfigure { my ($self) = @_;