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

Re: gtk_text_insert problem



On 30 Aug, Jorge JUAN CHICO wrote:
> This is the function to create the help window:
> 
> GtkWidget *help_window_create(void)
> {
>   GtkWidget *window;
>   GtkWidget *widget;
>   GtkWidget *box;
> 
>   window = gtk_window_new(GTK_WINDOW_DIALOG);
>   gtk_container_border_width(GTK_CONTAINER(window), 10);
>   gtk_window_set_title(GTK_WINDOW(window), HELP_WINDOW_TITLE);
> 
>   box = gtk_vbox_new(FALSE, 0);
> 
>   widget = gtk_label_new(VERSION);
>   gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0);
>   gtk_widget_show(widget);
> 
>   widget = gtk_hseparator_new();
>   gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0);
>   gtk_widget_show(widget);
> 
>   widget = gtk_text_new(NULL, NULL);
>   gtk_widget_set_usize(widget, 200, 200);
>   gtk_text_set_word_wrap(GTK_TEXT(widget), TRUE); 
>   gtk_text_set_editable(GTK_TEXT(widget), TRUE);
>   gtk_widget_show(widget);
> 
>   /* does not work and don't know why */
>   gtk_text_insert(GTK_TEXT(widget), 
>       			    NULL, 
>       			    NULL, 
>       			    NULL, 
>       			    HELP_TEXT, 
>       			    -1); 
> 
>   gtk_text_set_editable(GTK_TEXT(widget), FALSE); 
>   gtk_box_pack_start(GTK_BOX(box), widget, FALSE, FALSE, 0);
> 
>   widget = gtk_button_new_with_label(" Close ");
>   gtk_signal_connect_object(GTK_OBJECT(widget), "clicked",
>                             GTK_SIGNAL_FUNC(gtk_widget_hide),
>                             GTK_OBJECT(window));
>   gtk_box_pack_end(GTK_BOX(box), widget, FALSE, FALSE, 0);
>   gtk_widget_show(widget);
> 
>   gtk_container_add(GTK_CONTAINER(window), box);
>   gtk_widget_show(box);
> 
>   return window;
> }
> 

-8<--

> 
> I get the following error:
> 
> ** ERROR **: file gtktext.c: line 697 (gtk_text_insert):
> "GTK_WIDGET_REALIZED(text)"
> Abort
> 
> on Sun Solaris using gtk 1.0 or
> 
> ** ERROR **: sigsegv cought.
> 
> on Linux using gtk 1.2
> 
> If I ommit the call to gtk_set_text everythig goes OK and I get a blank
> text frame where I can put and delete text.
> 

You have to realize the widget before you can add text to it. Just call
gtk_widget_realize (GTK_WIDGET (widget));
before the first call to gtk_text_insert(). Realizing generate a window
for the widget (just like gtk_widget_show()) but didn't shows it.


Jan
-- 
"May the source be with you !"
-- 
Jan Blunck                          Technische Universität Hamburg-Harburg
J.Blunck@tu-harburg.de                 http://www.tu-harburg.de/~sejb3103/



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