Re: [gtk-list] Callback function troubles
- From: Greg Kaup <glkaup kaup com>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Callback function troubles
- Date: Fri, 25 Sep 1998 22:36:16 +0000
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]