LINUX.ORG.RU

[GTK+] поддержка прокручивания в собственном виджете


0

1

ДВС, клепаю свой контрол, интересует, как сделать поддержку прокручивания? чтобы можно было кинуть его в ScrolledWindow и появились полосы прокрутки. Как я понял нужно добавить в свой виджет пару GtkAdjustment-ов и сделать свои «слоты» для них(судя по докам от scrolledwindow), но что это за слоты, да и в общем, что и как делать?

★★★★★

Разве там нужно такую поддержку вообще делать? Я думал всю работу на себя берёт сам ScrolledWindow, если размеры виджета больше, чем надо (иначе в чем его смысл?).

snizovtsev ★★★★★
()

GtkScrolledWindow контейнер для 1 виджета. если встраиваему виджету нужно места больше чем есть, то GtkScrolledWindow сам нарисует полосы прокрутки

если хочешь в своем виджете самостоятельно обрататывать события от полосы прокрутки, то http://library.gnome.org/devel/gtk/stable/GtkAdjustment.html . там всего 2 события «changed» и «value-changed»

donkey3000
()
Ответ на: комментарий от snizovtsev

Все, вру. Разобрался: там есть два режима. Для нативного все объясняет приписка:
[5] The scrolled window installs GtkAdjustment objects in the child window's slots using the set_scroll_adjustments_signal, found in GtkWidgetClass. (Conceptually, these widgets implement a «Scrollable» interface; because GTK+ 1.2 lacked interface support in the object system, this interface is hackily implemented as a signal in GtkWidgetClass. The GTK+ 2.0 object system would allow a clean implementation, but it wasn't worth breaking the API.)

Т.е. нужно к виджету подцепить обработку сигнала set_scroll_adjustments. Подробнее в документацию.

snizovtsev ★★★★★
()

Вон оно чё, спасибо, стало понятней )

xterro ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.