Можно ли для всего пользователя заменить виджеты gtk2 по умолчанию совместимыми пользовательскими, полученными из оригинала?

(Это теоретический вопрос, чтобы почесать личный зуд, поэтому меня не интересуют ответы «ИМХО, это нецелесообразно», потому что это просто что-то исправить некоторые мелочи, не устанавливать на вашу машину и т. д. ... ;-)

Я сделал пару пользовательских виджетов Gtk, которые расширяют базовые виджеты, такие как GtkFileChooser и GtkNotebook.

(не так много, но это что-то, по состоянию на вчерашний день я ничего не знал о gtk или c, так что это скорее теоретический вопрос - однако, если это невозможно, мне нет особого смысла изучать gtk2)

Однако я хотел бы использовать эти виджеты во всех моих приложениях gtk2.

Можно ли изменить системные виджеты по умолчанию, не перестраивая библиотеки gtk2 из исходного кода?

Похоже, gtk-modules — это то, что нужно, но документация кажется скудной, если только в моем гугле чего-то не хватает.

Цель этого заключается в том, что GtkNotebook не поддерживает несколько рядов вкладок, однако он используется в Geany, Anjuta, Bluefish и многих других редакторах на основе gtk2. Я могу перекомпилировать geany, Anjuta и bluefish, чтобы вместо них использовать мой виджет, но я бы предпочел поменять его местами.


person Tom    schedule 17.12.2011    source источник
comment
Пожалуйста, рассмотрите возможность отправки исправлений в реальный проект GTK+. В конце концов, это самый мощный способ добавления функций ко всем виджетам GTK+ в вашей системе. :)   -  person unwind    schedule 21.12.2011


Ответы (1)


Обычно правильным решением для повторного использования виджетов в разных приложениях является создание динамической библиотеки, которая добавляет виджеты.

Помните, что рекомендуется создавать настоящие подклассы GObject с отдельным GType. Затем также тривиально добавить поддержку, скажем, самоанализа, чтобы ваши виджеты также можно было использовать в языковых привязках и т. д.

person Johan Dahlin    schedule 18.12.2011