c++ - Use a variable from pointer that is pointed by a struct which (that structs') pointer is sent to a function that needs to use it -
welp, thats kind of pointerception.
so.
im using gtk+
in gtk define buttons this:
gtkwidget *button1, *button2;
so need function do this. make struct hold pointer it
here is:
typedef struct userdata{ gtkwidget *button1, *button2; }userdata;
i point pointers struct pointers main:
userdata data; data.button1 = button1; data.button2 = button2;
then use struct gtk event:
g_signal_connect(g_object(window), "configure-event", g_callback(resetbuttonsize), &data);
and here comes problem. want these variables sent function, example resize them this:
void resetbuttonsize(gtkwindow *window, gdkevent *event, gpointer data){ gtkwidget *button1 = data->button; }
so like:
gtk_widget_set_size_request(button1, 40, 40);
sadly, can not (gtkwidget *button1 = data->button;) because following compiler error:
/media/dysk250/pmanager/testfile/main.cpp|59|error: ‘gpointer {aka void*}’ not pointer-to-object type|
can tell me im doing wrong? im newbie pointers, maybe resolve single pointer pointer, 1 brain understand happening , why code use wrong.
you need cast void*
variable suitable pointer can dereferenced:
gtkwidget *button1 = static_cast<userdata*>(data)->button;
Comments
Post a Comment