////////////////////////////////////////////////////////////////////////////////
#include <gtk/gtk.h>
int
main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *text_vw;
GtkTextBuffer *buffer;
GtkTextIter iter; // GtkTextIterは、buffer内の位置を示すものと考えればいい
gtk_init (&argc, &argv);
/* create window, etc */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "TEXTV_TST");
gtk_container_set_border_width (GTK_CONTAINER (window), 2);
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_set_size_request (window, 400, 300); // windowのサイズを決める
text_vw = gtk_text_view_new ();
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_vw));
gtk_container_add (GTK_CONTAINER (window), text_vw);
// tagの作成 //
// 文字の色を青色にするblue_fgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "blue_fg",
"foreground", "blue", NULL);
// 文字の色を赤色にするreg_fgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "red_fg",
"foreground", "red", NULL);
// 文字の色を黄色にするyellow_fgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "yellow_fg",
"foreground", "yellow", NULL);
////
// 文字の背景色を青色にするblue_bgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "blue_bg",
"background", "blue", NULL);
// 文字の背景色を赤色にするreg_bgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "red_bg",
"background", "red", NULL);
// 文字の背景色を黄色にするyellow_bgという名前のtagを作成。
gtk_text_buffer_create_tag(buffer, "yellow_bg",
"background", "yellow", NULL);
// iterの初期化。bufferのの先頭にする。
gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
// tagを指定しないで普通に文字を入力。
gtk_text_buffer_insert (buffer, &iter, "textv_tst\n", -1 );
// 文字を青色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"blue foreground Text\n", -1, "blue_fg", NULL);
// 文字を赤色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"red foreground Text\n", -1, "red_fg", NULL);
// 文字を黄色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"yellow foreground Text\n", -1, "yellow_fg", NULL);
////
// 文字を青色にして背景を赤色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"blue foreground and red background Text\n", -1,
"blue_fg", "red_bg", NULL);
// 文字を赤色にして背景を黄色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"red foreground and yellow backgroundText\n", -1,
"red_fg", "yellow_bg", NULL);
// 文字を黄色にして背景を青色にして表示
gtk_text_buffer_insert_with_tags_by_name(buffer, &iter,
"yellow foreground and blue background Text\n", -1,
"yellow_fg", "blue_bg", NULL);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
/////////////////////////////////////// EOF ////////////////////////////////////
|