Часть 55. Уровень прокрутки

Иерархия наследования

Object
   +--- Widget
         +--- Container
               +--- Layout
         

Объект расположения подбен фиксированному объекту расположеня, за исключением того, что может делать бесконечную область прокрутки (где бесконечность меньше 232). Система панелей X имеет ограничение на размер ширины или высоты панели в 32767 пикселей. Объект расположения обходит это ограничение при помощи необычной панели и т.н. bit gravitie так, что вы можете видеть "гладкий" скролл, даже в случае мнгоих дочерних виджетов в области прокрутки.

Объект расположения создается при помощи функции:

$layout = new Gtk::Layout( $hadjustment, $vadjustment );

Как вы можете видеть, возможно произвольно определять выравнивание (Adjustment) объектов, которые будет скроллится.

Можно также добавлять и двигать виждеты для скроллинга при помощи следующих двух функций:

$layout->put( $widget, $x, $y );

$layout->move( $widget, $x, $y );

Размер скроллинга может быть выставлен при помощи следующей функции

$layout->set_size( $width, $height );

Виджет уровня прокрутки - один из очень немногих виджетов в наборе GTK, который активно перерисовывает мебя на экране.

Если Вы хотите сделать очень большое изменениие на виджете уровня прокрутки - вам необходимо использовать две нижепреведенные функции, которые отключают и после включают перерисовку.

$layout->freeze();

$layout->thaw();

Последние четыре функции предназначены для управления коризонтальными и вертикальным виджетами выравнивания:

$layout->get_hadjustment();
$layout->get_vadjustment();

$layout->set_hadjustment( $adjustment );
$layout->set_vadjustment( $adjustment );