Хорошо поняв вышесказанное, возникает
вопрос: как можно создать собственный
обработчик сигнала для перехвата
сигналов регулирования, при использовании
регуляторов пользователем, и как
устанавливать значение диапазона
регулировок в таких обработчиках?
Чтобы ответить на этот
вопрос и последующие, для начала
рассмотрим структуру struct
_GtkAdjustment:
Когда вы установите
значения регулировок, вы захотите чтобы
все виджеты использовали эти значения
как основные, GTK позволяет сделать
это с помощью функции, например:
void gtk_adjustment_set_value( GtkAdjustment *adjustment,
gdouble value );
Как упоминалось ранее, Регуляторы это
подкласс объектов как и все виджеты,
поэтому они могут производить сигналы.
Обновления случаются автоматически,
когда вы совместно используете объект
настройки между scrollbar и другим
регулировочным виджетом; все регулировочные
виджеты подключают обработчики сигнала
с сигналом value_changed для их настройки.
Вот - определение этого сигнала в struct
_GtkAdjustmentClass:
Различные виджеты использующие объекты
регулирования, создают этот сигнал
каждый раз, когда происходит изменение
значения регулятора. Это происходит и
тогда, когда пользователь изменяет
положение регулятора, и когда программа
явно изменяет значение
используя gtk_adjustment_set_value(). Так например
при использовании регулятора масштаба
изображения, нужно чтобы вид изображения
менялся всякий раз когда меняется
значение регулятора, для этого создаётся
обратный вызов:
А что если пользователь добавит информацию
в виджет, тем самым расширит область
регулировки? В этом случае производится
изменённый сигнал:
void (* changed) (GtkAdjustment *adjustment);
Обычно виджеты регулировки диапазона
подключают к этому сигналу обработчик,
который изменяет их внешний вид - например
размер ползунка в полосе прокрутки
уменьшается пропорционально увеличению
области прокручивания.
Вам наверное никогда не понадобится к
этому сигналу подключать обработчик,
за исключением случаев создания новых
типов виджетов диапазона. Однако, если
вы непосредственно изменяете значения
регулировок, вам потребуется создавать
этот сигнал для перенастройки любого
виджета примерно так:
Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке,
посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных
администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости
индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.
Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из
первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную
версию журнала в pdf-формате.
Подробнее о проведении акции вы можете прочитать на
странице сайта.