Cast hiba.
interface.h
typedef struct
{ GtkTextView* param1; //GtkWidget* -el ua.
GtkWidget* param2;
} clicked_params;
interface.c
clicked_params cp;
//...........
textview1 = gtk_text_view_new ();
cp.param1=textview1; //param1 init
//............
g_signal_connect ((gpointer) button_calc, "clicked",
G_CALLBACK (on_button_calc_clicked),
(gpointer *)&cp);
callbacks.c
/...
void
on_button_calc_clicked (GtkButton *button,
gpointer user_data)
{
GtkTextTagTable* text_tag_table;
GtkTextBuffer* text_buffer;
text_tag_table = gtk_text_tag_table_new ();
text_buffer = gtk_text_buffer_new (text_tag_table);
gtk_text_buffer_set_text(text_buffer,"Hello:-)",-1);
clicked_params *cp=(clicked_params *)user_data;
gtk_text_view_set_buffer (GTK_TEXT_VIEW(cp->param1), text_buffer);
}
terminal, calc-click utan:
anonym:~/th-calc/Thomson-calc/src$ ./thomson-calc
(thomson-calc:10477): GLib-GObject-WARNING **: invalid uninstantiatable type `' in cast to `GtkTextView'
(thomson-calc:10477): Gtk-CRITICAL **: file gtktextview.c: line 1145 (gtk_text_view_set_buffer): assertion `GTK_IS_TEXT_VIEW (text_view)' failed