がんばって英語で書くブログ
英語勉強中なので、ブログも英語で書こうかと。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GTK+ studying9
This is GTK+ memo. using vpaned.


#include <gtk/gtk.h>

static void insert_text(GtkTextBuffer *buffer,
char *text)
{
GtkTextIter ite;
gchar *p;

p = g_strdup_printf("This window is %s\nabcde\nfghij\nklmno\npqrst\nuvwsyz\n", text);

gtk_text_buffer_get_iter_at_offset(buffer, &ite, 0);

gtk_text_buffer_insert(buffer, &ite, p, -1);

g_free(p);

}

static GtkWidget *create_scrolled_window(void)
{
GtkWidget *win;

win = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(win),
GTK_POLICY_NEVER,
GTK_POLICY_AUTOMATIC);

return win;
}

static GtkWidget *create_text_common(char *text)
{
GtkWidget *win;
GtkWidget *view;
GtkTextBuffer *buffer;

view = gtk_text_view_new();
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));

win = create_scrolled_window();

gtk_container_add(GTK_CONTAINER(win), view);

insert_text(buffer, text);

gtk_text_view_set_editable(GTK_TEXT_VIEW(view), FALSE);

gtk_widget_show_all(win);

return win;

}

static GtkWidget *create_text2(void)
{
return create_text_common("test2");
}

static GtkWidget *create_text1(void)
{
return create_text_common("test1");
}

void create_window(void)
{
GtkWidget *window;
GtkWidget *vbox1;
GtkWidget *vpaned;
GtkWidget *text1;
GtkWidget *text2;

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "vpaned test");

gtk_container_set_border_width(GTK_CONTAINER(window), 5);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);

vbox1 = gtk_vbox_new(FALSE,0);

vpaned = gtk_vpaned_new();

gtk_container_add(GTK_CONTAINER(vbox1), vpaned);

gtk_widget_show(vpaned);

text1 = create_text1();
gtk_paned_add1(GTK_PANED(vpaned), text1);
gtk_widget_show(text1);

text2 = create_text2();
gtk_paned_add2(GTK_PANED(vpaned), text2);
gtk_widget_show(text2);

gtk_container_add(GTK_CONTAINER(window), vbox1);
gtk_widget_show(vbox1);

gtk_widget_show(window);

}

int main(int argc, char **argv)
{
gtk_init(&argc, &argv);

create_window();

gtk_main();

return 0;
}

スポンサーサイト

テーマ:英語日記 - ジャンル:学問・文化・芸術

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://foobar.blog23.fc2.com/tb.php/165-34d4c14d
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。