( gtk | 2007. 01. 20., szo – 12:23 )

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