… | |
… | |
793 | |
793 | |
794 | $self->{children}[0]->configure (0, 0, $w, $h); |
794 | $self->{children}[0]->configure (0, 0, $w, $h); |
795 | } |
795 | } |
796 | |
796 | |
797 | ############################################################################# |
797 | ############################################################################# |
|
|
798 | |
|
|
799 | # back-buffered drawing area |
798 | |
800 | |
799 | package CFClient::UI::Window; |
801 | package CFClient::UI::Window; |
800 | |
802 | |
801 | our @ISA = CFClient::UI::Bin::; |
803 | our @ISA = CFClient::UI::Bin::; |
802 | |
804 | |
… | |
… | |
2342 | } |
2344 | } |
2343 | |
2345 | |
2344 | sub update { |
2346 | sub update { |
2345 | my ($self) = @_; |
2347 | my ($self) = @_; |
2346 | |
2348 | |
2347 | $CFClient::UI::ROOT->on_post_alloc ($self => sub { |
2349 | delete $self->{knob_w}; |
|
|
2350 | $self->SUPER::update; |
|
|
2351 | } |
|
|
2352 | |
|
|
2353 | sub _draw { |
|
|
2354 | my ($self) = @_; |
|
|
2355 | |
|
|
2356 | unless ($self->{knob_w}) { |
2348 | $self->set_value ($self->{range}[0]); |
2357 | $self->set_value ($self->{range}[0]); |
2349 | |
2358 | |
2350 | my ($value, $lo, $hi, $page) = @{$self->{range}}; |
2359 | my ($value, $lo, $hi, $page) = @{$self->{range}}; |
2351 | my $range = ($hi - $page - $lo) || 1e-100; |
2360 | my $range = ($hi - $page - $lo) || 1e-100; |
2352 | |
2361 | |
… | |
… | |
2358 | $value = ($value - $lo) / $range; |
2367 | $value = ($value - $lo) / $range; |
2359 | $value = $value * $self->{scale} + $self->{offset}; |
2368 | $value = $value * $self->{scale} + $self->{offset}; |
2360 | |
2369 | |
2361 | $self->{knob_x} = $value - $knob_w * 0.5; |
2370 | $self->{knob_x} = $value - $knob_w * 0.5; |
2362 | $self->{knob_w} = $knob_w; |
2371 | $self->{knob_w} = $knob_w; |
2363 | }); |
2372 | } |
2364 | |
|
|
2365 | $self->SUPER::update; |
|
|
2366 | } |
|
|
2367 | |
|
|
2368 | sub _draw { |
|
|
2369 | my ($self) = @_; |
|
|
2370 | |
2373 | |
2371 | $self->SUPER::_draw (); |
2374 | $self->SUPER::_draw (); |
2372 | |
2375 | |
2373 | glScale $self->{w}, $self->{h}; |
2376 | glScale $self->{w}, $self->{h}; |
2374 | |
2377 | |