Updates the internal scroll parameters.
capi
update-internal-scroll-parameters pane scroll-dimension scroll-operation scroll-value
pane⇩ |
A pane that supports scrolling. |
scroll-dimension⇩ | :horizontal , :vertical or :pan . |
scroll-operation⇩ | :drag , :move , :step or :page . |
scroll-value⇩ |
An integer, or a list of two integers, or a keyword, or a list of two keywords. |
The function update-internal-scroll-parameters
updates the internal scroll parameters of pane (the ones you read by with-geometry, or get-horizontal-scroll-parameters and get-vertical-scroll-parameters), according to its arguments. The arguments pane, scroll-dimension, scroll-operation and scroll-value are interpreted the same way as the arguments to scroll. update-internal-scroll-parameters
does not affect the display and does not perform any drawing.
update-internal-scroll-parameters
is needed only when pane is an output-pane created with initargs :coordinate-origin :fixed
or :coordinate-origin :fixed-graphics
(see 12.4 output-pane scrolling). It normally should not be used when :coordinate-origin
is not supplied or :coordinate-origin :scrolled
is supplied (the default).
The other way of setting the scroll parameters is using set-horizontal-scroll-parameters and set-vertical-scroll-parameters.
update-internal-scroll-parameters
is intended to be used in your scroll-callback (see simple-pane and 12.4 output-pane scrolling). It changes the internal parameters in the same way that ordinary scrolling would change them for the same arguments, so it gives a consistent behavior with the rest of the application. You will still need to draw the appropriate things in the display-callback.
For example, scrolling needs to update the display based on the values of the scroll parameters before and after the scrolling happened, you can define a scroll-callback like this:
(defun my-scroll-callback (self scroll-dimension scroll-operation scroll-value) (with-geometry self (let ((prev-scroll-x %scroll-x%) (prev-scroll-y %scroll-y%)) (update-internal-scroll-parameters self scroll-dimension scroll-operation scroll-value) (let ((new-scroll-x %scroll-x%) (new-scroll-y %scroll-y%)) (update-display self prev-scroll-x prev-scroll-y new-scroll-x new-scroll-y)))))
set-horizontal-scroll-parameters
set-vertical-scroll-parameters
simple-pane
output-pane
12.4 output-pane scrolling
CAPI User Guide and Reference Manual (Unix version) - 01 Dec 2021 19:32:42