… | |
… | |
1676 | |
1676 | |
1677 | delete $self->{cur_h}; |
1677 | delete $self->{cur_h}; |
1678 | |
1678 | |
1679 | return if $self->{text} eq $text; |
1679 | return if $self->{text} eq $text; |
1680 | |
1680 | |
1681 | delete $self->{texture}; |
|
|
1682 | |
|
|
1683 | $self->{last_activity} = $::NOW; |
1681 | $self->{last_activity} = $::NOW; |
1684 | $self->{text} = $text; |
1682 | $self->{text} = $text; |
1685 | |
1683 | |
1686 | $text =~ s/./*/g if $self->{hidden}; |
1684 | $text =~ s/./*/g if $self->{hidden}; |
1687 | $self->{layout}->set_text ("$text "); |
1685 | $self->{layout}->set_text ("$text "); |
1688 | |
1686 | |
1689 | $self->_emit (changed => $self->{text}); |
1687 | $self->_emit (changed => $self->{text}); |
|
|
1688 | $self->update; |
1690 | } |
1689 | } |
1691 | |
1690 | |
1692 | sub set_text { |
1691 | sub set_text { |
1693 | my ($self, $text) = @_; |
1692 | my ($self, $text) = @_; |
1694 | |
1693 | |
… | |
… | |
2344 | } |
2343 | } |
2345 | |
2344 | |
2346 | sub update { |
2345 | sub update { |
2347 | my ($self) = @_; |
2346 | my ($self) = @_; |
2348 | |
2347 | |
2349 | $CFClient::UI::ROOT->on_post_alloc ($self => sub { |
2348 | delete $self->{knob_w}; |
|
|
2349 | $self->SUPER::update; |
|
|
2350 | } |
|
|
2351 | |
|
|
2352 | sub _draw { |
|
|
2353 | my ($self) = @_; |
|
|
2354 | |
|
|
2355 | unless ($self->{knob_w}) { |
2350 | $self->set_value ($self->{range}[0]); |
2356 | $self->set_value ($self->{range}[0]); |
2351 | |
2357 | |
2352 | my ($value, $lo, $hi, $page) = @{$self->{range}}; |
2358 | my ($value, $lo, $hi, $page) = @{$self->{range}}; |
2353 | my $range = ($hi - $page - $lo) || 1e-100; |
2359 | my $range = ($hi - $page - $lo) || 1e-100; |
2354 | |
2360 | |
… | |
… | |
2360 | $value = ($value - $lo) / $range; |
2366 | $value = ($value - $lo) / $range; |
2361 | $value = $value * $self->{scale} + $self->{offset}; |
2367 | $value = $value * $self->{scale} + $self->{offset}; |
2362 | |
2368 | |
2363 | $self->{knob_x} = $value - $knob_w * 0.5; |
2369 | $self->{knob_x} = $value - $knob_w * 0.5; |
2364 | $self->{knob_w} = $knob_w; |
2370 | $self->{knob_w} = $knob_w; |
2365 | }); |
2371 | } |
2366 | |
|
|
2367 | $self->SUPER::update; |
|
|
2368 | } |
|
|
2369 | |
|
|
2370 | sub _draw { |
|
|
2371 | my ($self) = @_; |
|
|
2372 | |
2372 | |
2373 | $self->SUPER::_draw (); |
2373 | $self->SUPER::_draw (); |
2374 | |
2374 | |
2375 | glScale $self->{w}, $self->{h}; |
2375 | glScale $self->{w}, $self->{h}; |
2376 | |
2376 | |