Re: Properties on interfaces
- From: Matthias Clasen <maclas gmx de>
- To: gtk-devel-list gnome org
- Subject: Re: Properties on interfaces
- Date: 15 Feb 2003 00:09:08 +0100
On Fri, 2003-02-14 at 23:41, Owen Taylor wrote:
> On Fri, 2003-02-14 at 17:07, Matthias Clasen wrote:
> > n Fri, 2003-02-14 at 22:45, Owen Taylor wrote:
> >
> > > > I guess I meant
> > > >
> > > > g_object_class_install_property (file_chooser_dialog_class,
> > > > PROP_FILENAME,
> > > > g_param_spec_copy (
> > > > g_param_spec_pool_lookup
> > (pspec_pool,
> > > > "filename",
> > > >
> > GTK_TYPE_FILE_CHOOSER)));
> > > >
> > > > ie use the interface properties just a some kind of templates
for
> > > > ordinary properties.
> > >
> > > But wouldn't you like a convenience function to do the above?
> > > That's basically what I was proposing, though since nick/blurb
> > > strings can have significant size, a shallow copy of some sort
> > > may make sense.
> > >
> >
> > Ah, thats what you meant with "proxy" here. I agree a convenience
> > function would be needed. How do you forsee this to help with
overriding
> > defaults and min/max in derived classes ?
>
> I don't really have an answer for that, but I do think it
> is a related issue.
>
> - To override defaults/min/max you need to be able to
> copy a param spec.
>
> - To override defaults/min/max you'd like to be able to
> copy a param spec in a way that doesn't involve duplicating
> the nick/blurb strings.
>
One possibility to avoid duplicated docs would be to make
g_object_class_install_property a little more clever and let
g_object_class_install_property (class, PROP,
g_param_spec_foo ("prop",
NULL,
NULL,
...));
perform the equivalent of
g_object_class_install_property (
class, PROP,
g_param_spec_foo ("prop",
g_param_spec_get_nick(
g_object_class_find_property(class, "prop")
),
g_param_spec_get_blurb(
g_object_class_find_property(class, "prop")
),
...));
ie if nick/blurb are NULL, try to find inherited values. If using NULL
for this is considered to dangerous, we could use another invalid
pointer value, e.g.
#define INHERIT 0x1
Matthias
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]