SimpleText DAY 6 - 今度こそtexiviewに表示してみる

今日こそ読み込んだテキストをtextviewに表示してみます。
textviewはテキストの表示を受け持っているだけで、
テキストの保持はtextbufferの分担です。
とりあえずコードを見てみましょう。



void
on_button_open_clicked ( GtkButton *button, gpointer user_data)
{
GtkEntry *entry = (GtkEntry *)lookup_widget((GtkWidget *)button, (gchar *)"entry");
gchar *filename = (gchar *)gtk_entry_get_text(entry);
g_print("%s\n", filename);

GError *error = NULL;
gchar *text;
gsize *size;

GIOChannel *filepointer = g_io_channel_new_file(filename, "r", error);
g_io_channel_read_to_end(filepointer, &text, size, &error);
g_io_channel_close(fp);
g_print("%s\n", text);

GtkTextIter iter;
GtkTextView *textview = (GtkTextView *)lookup_widget((GtkWidget *)button, (gchar *)"textview);
GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(textview);
gtk_text_buffer_get_end_iter(textbuffer, &iter);
gtk_text_buffer_insert(textbuffer, &iter, text, strlen(text));
g_free(text);
}

これでテキストファイルをを読み込んで、textviewに表示させることができました!

  • ファイルを読み込むたびに、同じ内容が追加されていく。
  • ファイルが存在しなかったときのエラー処理も依然未解決。

というお寒い状況ではありますが、今日はこの辺で。


参考にしたサイト
http://ilaliart.sourceforge.jp/tips/gtk_jp2.html