Re: Python and Bonobo



Since gpdf component doesn't provide any way to invoke such function, in
general, it's impossible to go to next page. Althogh it can be done with
some hacks on libonoboui. You should get UIComponent, related to gpdf
control and than invoke "GoPagePrev" verb on it. 

The process of getting such UIComponent is complicated. You should have BonoboUIEngine
and then get list of it's components and get component that corresponds to gpdf control.
It requires function bonobo_ui_engine_get_component_names, which returns GList* and
therefore should be overridden in python bindings to translate it to
PyList*. Since this functions is absent in current bonoboui binding, the
hack goes to theoretical area - it is possible to do such things in C, but
not in Python.

The more natural way will be to have all UI menus of gpdf in your
application and not wrap ui in your own buttons. Ideally, you can construct your
own BonoboUIEngine, add then BonoboUISyncMenus and the display those menus in
your application. But in this way you'll also meet some python problems (unimplemented
bindings) and bonoboui problems too.This interface somehow is semi-private and
protected by #ifdef BONOBO_UI_INTERNAL, also some headers are not installed like
bonobo_ui_sync_menu.h.

Third solution is implement your own UIContainer which will hold UIComponent and
thus allow to exec verbs on it. Corresponding example attached, but sorry, I 
don't know, how implement it in python. The problem is how to implement bonobo component
with given interface, like Bonobo/UIContainer.

With exploration of use of libbonoboui in python you are in unknown
area, so you should prepare for serious troubles :). For example, I see
that gpdf-document-viewer process doesn't exit when application quits,
there should be a lot of object leaks.

Attachment: simple_container.c
Description: Binary data

Attachment: simple_container.h
Description: Binary data

Attachment: test.c
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]