Re: stupid question?
- From: Erik Bågfors <erik bagfors nu>
- To: Dietmar Maurer <dietmar ximian com>
- Cc: gnome-components-list gnome org
- Subject: Re: stupid question?
- Date: 20 May 2001 15:03:17 +0200
On 20 May 2001 14:11:26 +0200, Dietmar Maurer wrote:
> Erik Bågfors wrote:
>
> > Hi!
> >
> > Here is a stupid question (perhaps).
> >
> > I've been playing around alittle in bonobo and it's really sweet :).
> >
> > If I understand things correctly here is parts of how the classes hang
> > together..
> >
> > GtkObject -> BonoboObject -> BonoboXObject
> > |-> BonoboPropertyBag
> > |-> BonoboControlFrame
> >
> > The thing I don't understand is that the I can convert the BonoboControlFrame
> > to a GtkObject using GTK_OBJECT(control_frame) but I cannot convert the
> > BonoboPropertyBag to a GtkObject with GTK_OBJECT.
>
> A PropertyBag is a GtkObject, so GTK_OBJECT(property_bag) should work without
> any problems. Maybe something else is wrong with your code.
>
Good, thanks, then maybe you (or someone else) can explain this.
I'm playing around with the code in the bonobo-tutorial (ipctrl). This is from test-container.c
in function install_property_bag_listener. I only added three lines (four with the comment :) )
to the code (just as a try). This doesn't break the code since I don't use the GtkObject I add.
Anyway. I added a GtkObject named testA and then tried to do a GTK_OBJECT on the prop_bag. This
code gives me two Gtk-WARNING's
Gtk-WARNING **: invalid cast from `(unknown)' to `GtkObject'
Gtk-WARNING **: invalid cast from `(unknown)' to `GtkObject'
------
static Bonobo_PropertyBag prop_bag = CORBA_OBJECT_NIL;
static void
install_property_bag_listener (BonoboWidget *control, BonoboWindow *bonobo_win)
{
Bonobo_Listener corba_listener;
BonoboListener *listener;
BonoboControlFrame *control_frame;
CORBA_Environment ev;
GtkObject *testA; /* I added this */
CORBA_exception_init (&ev);
/*
* the property bag is associated with the control frame, so get a
* control frame first
*/
control_frame = bonobo_widget_get_control_frame(BONOBO_WIDGET(control));
if (!control_frame)
g_error ("can't find control frame\n");
/*
* now, get a ref to the property bag
*/
prop_bag = bonobo_control_frame_get_control_property_bag (control_frame, NULL);
/* I added the following two lines */
testA = GTK_OBJECT(&prop_bag); /* Try one.. gives one warning */
testA = GTK_OBJECT(prop_bag); /* Try two gives another warning :( */
if (prop_bag == CORBA_OBJECT_NIL)
g_error ("can't connect to property bag\n");
/*
* connect a listener to the property-bag
*/
bonobo_event_source_client_add_listener (prop_bag, on_prop_changed,
"Bonobo/Property:change:octet1", NULL, bonobo_win);
CORBA_exception_free (&ev);
}
----
As you can see the propertybag is correct since I use it later and the
propgram works.
So, what am I doing wrong?
/Erik
--
Erik Bågfors | http://erik.bagfors.nu/
erik bagfors nu | Erik Bagfors engohol se
Supporter of free software | GSM +46 733 279 273
fingerprint: 6666 A85B 95D3 D26B 296B 6C60 4F32 2C0B 693D 6E32
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]