Читаю статью:
https://developer.gnome.org/gobject/stable/signal.html#signal-detail
И мне ну совершенно не ясны типовые сценарии.
Например сильно помог бы такой walkthrough:
1) создать свойство для некоторого класса
2) сделать событиеevent с именем «notify» для этого свойства
3) сделать фильтр для подписывания только на изменение этого события
4) сделать ещё одно свойство, продемострировать, что фильтр работает
Помог бы список типовых имён событий («change», «dispose», «destroy» - последние два я сам придумал). Чем, например «change» отличается от «notify»?
Помог бы пример с valist (где такое может понадобиться?). Ясно что это связано как-то с функциями типа printf, но дальше мысль не идёт.
Или, к примеру, GCallback. Когда я присоединяю сигнал, там ещё есть gpointer data. Зачем нужна data? Можно ли сказать, что это this объекта, функция которого становится коллбэком?
Что общего между событиями и вызовом функции g_object_run_dispose?
Если у меня есть рамы и мамы, подписанные на события друг друга, что надо писать, чтобы мама узнавала о разрушении рамы, а рама узнавала о смерти мамы?