Re: [gtkmm] Glib critical messages on Property<>
- From: Daniel Elstner <daniel elstner gmx net>
 
- To: "Andrew E. Makeev" <andrew solvo ru>
 
- Cc: fnaumann cs uni-magdeburg de, gtkmm-list <gtkmm-list gnome org>
 
- Subject: Re: [gtkmm] Glib critical messages on Property<>
 
- Date: 28 Mar 2003 09:43:33 +0100
 
On Fre, 2003-03-28 at 08:13, Andrew E. Makeev wrote:
> Daniel Elstner wrote:
> >
> >I reckon the problem might be an add_attribute() call with incompatible
> >types, and not directly caused by Glib::Property<> itself.  IIRC
> >Glib::Property<> has been used with success for custom types before; try
> >checking the list archives.
> >  
> >
> Yes, problem caused by Glib::Value<T*> (GValue, actualy).
> 
> 1. T* should be a pointer to class derived from GLib::Object.
No, it doesn't need to.
> 2. You should ensure you did proper initialization of your class propery 
> member in constructor.
> 3. And as Daniel said you have to watch you are using same T* pointers 
> when handling property value (using add_attribute or directly).
> 
> I think, it is better to use Glib::Property<void *> to store a pointer 
> to any custom class, casting functions gonna do dirk work for ya later. 
> At least, in my "FAST" text cellrenderer I have no troubles with such 
> things.
Uh no.  There's no reason to use C++ bindings if you gonna end up using
void* anyway.  The best thing to do is to use some smart pointer class,
otherwise memory management is going to become pretty hard.
Still, I think long* _should_ work.  There's pretty tricky Glib::Value<>
template code in place to allow things like that.  Frank: I'll probably
investigate your diff later today.
--Daniel
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]