LINUX.ORG.RU

GtkBuilder. Custom Object.


0

0

Всем привет.

Есть buildable тип (например, MyOwnCustomObject), кастомный, унаследован от GObject. Скармливаю билдеру XML файл, где объявлен этот объект

<object type="MyOwnCustomType">

...

</object>

засада заключается в том, что до той поры, пока я не создам хотя бы один объект этого типа, путем my_own_custom_object_new(), до той поры GtkBuilder ругается, что заявленый тип в xml-файле не известен. Т.е. получается, пока не вызовется конструктор моего объекта, такой тип не проходит регистрацию.

Может есть какое заклинание? или может чего упустил в реализации своего типа?

Deleted

опечатка

>(например, MyOwnCustomObject)

><object type="MyOwnCustomType">


разумеется подразумевается одно имя, т.е. если создали MyOwnCustomObject, то и в XML будет type="MyOwnCustomObject".

Deleted
()

Создавать не обязательно, достаточно зарегистрировать тип. Традиционно это происходит внутри <class-name>_get_type(). Так что нужно просто вызвать my_own_custom_object_get_type().

k_andy ★★★
()
Ответ на: комментарий от k_andy

Не важно, каким методом мне его можно зарегистрировать, меня интересует сам факт того, почему билдер сам не хочет дергать этот тип.

Вот для примера. есть XML-файл с одним только окном GtkWindow и одной кнопкой. Я слабо верю, что на момент запуска gtk пробежалась по всем виджетам и подергала *_get_type(). Однако билдер ведь не сообщает мне об ошибке когда находит там <object type="GtkButton">

Deleted
()
Ответ на: комментарий от Deleted

А тип небось в отдельной shared library? Потому что если бы он был в программе, то GtkBuilder его бы нашёл (в Linux).

Если объекты в shared library, то там, вроде, надо какой-то GTypePlugin мутить, IMHO.

k_andy ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.