… | |
… | |
2708 | sub invoke_mouse_wheel { |
2708 | sub invoke_mouse_wheel { |
2709 | my ($self, $ev) = @_; |
2709 | my ($self, $ev) = @_; |
2710 | |
2710 | |
2711 | my $delta = $self->{vertical} ? $ev->{dy} : $ev->{dx}; |
2711 | my $delta = $self->{vertical} ? $ev->{dy} : $ev->{dx}; |
2712 | |
2712 | |
|
|
2713 | my $pagepart = $ev->{mod} & CFPlus::KMOD_SHIFT ? 1 : 0.2; |
|
|
2714 | |
2713 | $self->set_value ($self->{range}[0] + $delta * $self->{range}[3] * 0.2); |
2715 | $self->set_value ($self->{range}[0] + $delta * $self->{range}[3] * $pagepart); |
2714 | |
2716 | |
2715 | ! ! $delta |
2717 | ! ! $delta |
2716 | } |
2718 | } |
2717 | |
2719 | |
2718 | sub update { |
2720 | sub update { |
… | |
… | |
2828 | #font => default_font |
2830 | #font => default_font |
2829 | @_, |
2831 | @_, |
2830 | |
2832 | |
2831 | layout => (new CFPlus::Layout), |
2833 | layout => (new CFPlus::Layout), |
2832 | par => [], |
2834 | par => [], |
|
|
2835 | max_par => 0, |
2833 | height => 0, |
2836 | height => 0, |
2834 | children => [ |
2837 | children => [ |
2835 | (new CFPlus::UI::Empty expand => 1), |
2838 | (new CFPlus::UI::Empty expand => 1), |
2836 | (new CFPlus::UI::Slider vertical => 1), |
2839 | (new CFPlus::UI::Slider vertical => 1), |
2837 | ], |
2840 | ], |
… | |
… | |
2960 | wrapped => 1, |
2963 | wrapped => 1, |
2961 | }; |
2964 | }; |
2962 | |
2965 | |
2963 | $self->add (@{ $para->{widget} }) if @{ $para->{widget} }; |
2966 | $self->add (@{ $para->{widget} }) if @{ $para->{widget} }; |
2964 | push @{$self->{par}}, $para; |
2967 | push @{$self->{par}}, $para; |
|
|
2968 | } |
|
|
2969 | |
|
|
2970 | if (my $max = $self->{max_par}) { |
|
|
2971 | shift @{$self->{par}} while @{$self->{par}} > $max; |
2965 | } |
2972 | } |
2966 | |
2973 | |
2967 | $self->{need_reflow}++; |
2974 | $self->{need_reflow}++; |
2968 | $self->update; |
2975 | $self->update; |
2969 | } |
2976 | } |