Re: Gtk+ Core TODO Item



On Thu, 21 Sep 2000, Eric Lemings wrote:

> 
> There's an item in the Gtk+ Core TODO list:
> 
> "State change notification     Size: Big     Status: 0%     Target
> Version: 2.0"
> 
> How can I help out with this one?  I got no response from Tim.  Guess
> he's too busy to read mail.  ;)

sorry, i'm currently in the US and will go back to germany in a bit,
and due to that am not too regularly checking email currently.
the basic work that has to be done about state change notification
(as far as widgets are concerned) is:

1) export all widget properties through our GParam/GValue interface
2) add extra code for queueing param changed notification in places
   where properties are getting changed by bypassing ->set_param()
3) implement the delivery backend for notification, based on GSignal

a bunch of widget properties are currently being exported through
the GtkArg interface, by adding a bit of compatibility code, that
maps the old set_arg/get_arg functions onto set_param/get_param,
we can actually cut down on the work required for 1).
2) will mostly amount to changes similar to:

 void
 gtk_foo_set_barstring (GtkFoo      *foo,
                        const gchar *string)
 {
   g_return_if_fail (GTK_IS_FOO (foo));
   
   g_free (foo->barstring);
   foo->barstring = g_strdup (string);
+  g_object_queue_param_changed (G_OBJECT (foo));
 }

so it's not all that hard, but it might be a bit tirering
to find and alter all necessary places.
note that extra queuing isn't required as long as the normal
parameter/property API is used, so for

 void
 gtk_foo_set_barstring (GtkFoo      *foo,
                        const gchar *string)
 {
   g_return_if_fail (GTK_IS_FOO (foo));
   
   g_object_set (G_OBJECT (foo),
                 "barstring", string,
                 NULL);
 }

no modifications are required, but it's obviously also not as
performant and lacks type safety.

> 
> Eric.
> 

---
ciaoTJ





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