[Glade-users] signal handler with arguments from property editor

Tristan Van Berkom tristan.van.berkom at gmail.com
Thu Feb 9 14:13:48 EST 2006


mw158979 wrote:

>>I have built a gtk keypad with Glade and I wish to assign the same
>>"pressed" signal handler to every key button and to give an additional
>>argument to the signal callback, specifying for each key button a
>>different key identifier. Is it possible to do this from the property
>>editor? Thanks in advance for any help.
>>    
>>
 From what I'm seeing, unfortunately that not currently possible.

>You can fill the field 'object'.
>
>Glade then generates code with that text as gpointer type
>argument for g_signal_connect, perhaps you will need
>to place conversion in the editor. I don't know how about
>libglade.
>
>That argument you will receive in your callback (as user_data).
>  
>
Well, I'm not exactly sure about the code that glade-2
generates, but libglade uses that feild to lookup a widget
by that name and connect the object as user_data.

I assume the code glade-2 would generate would look like:
    g_signal_connect (button, "clicked", my_hanlder, lookup_widget 
("my_object"));
where you put "my_object" in the "object" field.

Either way, if you are useing code generation, you can modify the
generated code and use a string constant for user data, if
your not generating code; you'll have to find another way.

That other way could be:

void
my_clicked_handler (GtkWidget *button, gpointer unused)
{
    gchar *key, *name;

    name = gtk_widget_get_name (button);
    key = derive_key_from_widget_name ();

    /* keyboard code */
}

Cheers,
                                   -Tristan



More information about the Glade-users mailing list