В общем, никогда прежде не углублялся в особенности использования GTK, но начав пилить свой таскбар, пришлось столкнуться с ним вплотную. Я бы даже сказал, вляпаться.
Архитектурно оно представляет какое-то совершенно нелепое нагромождение классов, недоделанных недоабстракций и длинных списков deprecated функций. Нормального механизма обмена сообщениями между компонентами нет. Декомпозиции на абстрактные интерфейсы не прослеживается.
Компоненты зачем-то разбиты на две группы - оконные и безоконные - между которыми, пролегает такая хорошая, качественная железобетонная стена. Можно даже побиться об неё головой. Вместо того, чтобы на уровне архитектуры дать возможность любому компоненту работать как в отдельном под-окне, так и в окне родителя, предлагаются танцы с бубном EventBox.
Средства для кустомизации компонент наследованием находятся в зачаточном состоянии, а для кустомизации тонкой настройкой в рантайме - и вовсе в противозачаточном. Часть компонент нуждается в разбиении на субкомпоненты, например, ужасный GtkNotebook. Часть компонент просто написана задней лапой. Исходники производят полное впечатление, что перед нами не универсальный тулкит, на котором работает чертова уйма гуёв, а всё тот же костыльный набор виджетов для GIMP-а.
После программирования GUI на gtk, очень хочется тщательно отмыть руки от говна, а затем напиться от безысходности.