Re: [gtk-list] Callback function troubles



Brent Briggs wrote:
> 
> I have been working on a robotics program and have never been able to
> get my widgets to call my functions the way that I want them to.
> I have a callback function that looks like this:
> 
> void init_arm_callback(GtkWidget *widget, GdkEvent *event,
> command_struct *data)
> {
>   cout << "data in init_arm_callback :\n";
>   cout << "data->fdesrcipter " << data->fdescripter << "\n";
>   arm_initialize(data);
> }
> 
> The structure command_struct look like this:
> 
> typedef struct {
>   int fdescripter;
>   int servo;
>   int increment;
>   char command;
>   int pos[5];
>   int init[5];
>   int min[5];
>   int max[5];
> } command_struct;
> 
> I am calling this callback with a button like so:
> 
>   /*setup the initialize button */
>   button = gtk_button_new_with_label ("Re-Initialize");
>   gtk_container_add (GTK_CONTAINER (control_vbox), button);
>   gtk_widget_show (button);
>   gtk_signal_connect (GTK_OBJECT (button), "clicked",
>         GTK_SIGNAL_FUNC (init_arm_callback),
>         &command_data);
> 
> The values in the structure seem to get changed when the data is passed
> fron gtk_signal_connect (......) to init_arm_callback(........). For
> instance, command_data.fdescripter has a value of 3 when checked from
> main  but when the same value is checked from
> init_arm_callback(........) I get a value of something like 607312 . Why
> is this happening? This doesn't make sense to me but then again I am a
> newbie to GTK developement. Can someone Please help me out?
> 


SORRY... I FORGOT to tell you that my "problem" and "solution" only
occur
when a class member function is used as the callback routine...
Otherwise, I receive the data in the normal 3rd argument!!!!!!!!!!
If this also the case for you, then we are at least a step closer!

Greg Kaup



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