(no subject)
Jan. 30th, 2009 10:21 pmВ GObject не существует способа узнать, какие методы есть у объектов. Даже для интерфейсов нельзя узнать, какие есть методы, и где они расположены в vtable интерфейса. Вот для свойств и конструкторов объектов и информации об иерархии классов сделали возможность запросить информацию. Поэтому, можно довольно просто и быстро сгенерировать обертки для всех классов и типов из библиотек, использующих GObject (на самом деле, это не совсем так; для gtk+ это справедливо, а с другими библиотеками ситуация хуже). А для методов такого не сделали, надо будет как-то изворачиваться.
В проектах PyGTK и Gtk# используют парсинг заголовочных файлов и с частичным ручным редактированием для получения этой информации. Есть еще проект GObject-Introspection, в котором есть репозитории с информацией об API разных библиотек и инструментами по автоматической генерации этих репозиториев. Но что-то я не понял пока, как им можно воспользоваться.
no subject
Date: 2009-01-30 11:57 pm (UTC)Радостно то, что GObject Introspection предоставляет этот самый Introspection не только для библиотек основаных на GObject.
no subject
Date: 2009-01-31 12:28 am (UTC)В любом случае, эта информация есть и ей надо научиться пользоваться. Только я пока не нашел у них описания API GTK+.
no subject
Date: 2009-01-31 12:35 am (UTC)У меня (Debian Sid) весь GTK+ уместился в одном файле /usr/share/gir/Gtk-2.0.gir.