22.7.16 Доступ к событиям полосы прокрутки

Эти функции полезны для декодирования событий полосы прокрутки.

Функция: scroll-bar-event-ratio event

Эта функция возвращает дробное вертикальное положение события полосы прокрутки внутри полосы прокрутки. Значение представляет собой ячейку cons (portion . whole) с двумя целыми числами, отношение которых является дробным положением.

Функция: scroll-bar-scale ratio total

Эта функция умножает (по сути) ratio на total, округляя результат до целого числа. Аргумент ratio не является числом, а скорее парой (num . denom) — обычно значение, возвращаемое scroll-bar-event-ratio.

Эта функция удобна для масштабирования положения на полосе прокрутки в положение буфера. Вот как это сделать:

(+ (point-min)
   (scroll-bar-scale
      (posn-x-y (event-start event))
      (- (point-max) (point-min))))

Напомним, что события полосы прокрутки имеют два целых числа, образующих отношение, вместо пары координат x и y.