ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/UI.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/UI.pm (file contents):
Revision 1.463 by root, Tue Apr 15 18:45:37 2008 UTC vs.
Revision 1.464 by root, Fri Jul 18 22:32:54 2008 UTC

3070sub set_value { 3070sub set_value {
3071 my ($self, $value) = @_; 3071 my ($self, $value) = @_;
3072 3072
3073 my ($old_value, $lo, $hi, $page, $unit) = @{$self->{range}}; 3073 my ($old_value, $lo, $hi, $page, $unit) = @{$self->{range}};
3074 3074
3075 $hi = $lo + 1 if $hi <= $lo; 3075 $hi = $lo if $hi < $lo;
3076 3076
3077 $page = $hi - $lo if $page > $hi - $lo; 3077 $value = $hi - $page if $value > $hi - $page;
3078
3079 $value = $lo if $value < $lo; 3078 $value = $lo if $value < $lo;
3080 $value = $hi - $page if $value > $hi - $page;
3081 3079
3082 $value = $lo + $unit * int +($value - $lo + $unit * 0.5) / $unit 3080 $value = $lo + $unit * int +($value - $lo + $unit * 0.5) / $unit
3083 if $unit; 3081 if $unit;
3084 3082
3085 @{$self->{range}} = ($value, $lo, $hi, $page, $unit); 3083 @{$self->{range}} = ($value, $lo, $hi, $page, $unit);
3149 my ($self) = @_; 3147 my ($self) = @_;
3150 3148
3151 unless ($self->{knob_w}) { 3149 unless ($self->{knob_w}) {
3152 $self->set_value ($self->{range}[0]); 3150 $self->set_value ($self->{range}[0]);
3153 3151
3154 my ($value, $lo, $hi, $page) = @{$self->{range}}; 3152 my ($value, $lo, $hi, $page, $unit) = @{$self->{range}};
3155 my $range = ($hi - $page - $lo) || 1e-100; 3153 my $range = ($hi - $page - $lo) || 1e-10;
3156 3154
3157 my $knob_w = List::Util::min 1, $page / ($hi - $lo) || 0.1; 3155 my $knob_w = List::Util::min 1, $page / (($hi - $lo) || 1e-10) || 24 / $self->{w};
3158 3156
3159 $self->{offset} = List::Util::max $self->{inner_pad}, $knob_w * 0.5; 3157 $self->{offset} = List::Util::max $self->{inner_pad}, $knob_w * 0.5;
3160 $self->{scale} = 1 - 2 * $self->{offset} || 1e-100; 3158 $self->{scale} = 1 - 2 * $self->{offset} || 1e-100;
3161 3159
3162 $value = ($value - $lo) / $range; 3160 $value = ($value - $lo) / $range;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines