1 | #include <gtk/gtk.h> |
2 | |
3 | static void |
4 | fill_text_view (GtkWidget *tv, const char *text) |
5 | { |
6 | int i; |
7 | GString *s; |
8 | |
9 | s = g_string_new (init: "" ); |
10 | for (i = 0; i < 200; i++) |
11 | g_string_append_printf (string: s, format: "%s %d\n" , text, i); |
12 | |
13 | gtk_text_buffer_set_text (buffer: gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)), |
14 | text: g_string_free (string: s, FALSE), len: -1); |
15 | } |
16 | |
17 | int |
18 | main (int argc, char *argv[]) |
19 | { |
20 | GtkWidget *win, *box, *tv, *sw, *sb; |
21 | GtkAdjustment *adj; |
22 | |
23 | gtk_init (); |
24 | |
25 | win = gtk_window_new (); |
26 | gtk_window_set_default_size (GTK_WINDOW (win), width: 640, height: 480); |
27 | |
28 | box = gtk_box_new (orientation: GTK_ORIENTATION_HORIZONTAL, spacing: 5); |
29 | gtk_window_set_child (GTK_WINDOW (win), child: box); |
30 | |
31 | sw = gtk_scrolled_window_new (); |
32 | gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), |
33 | hscrollbar_policy: GTK_POLICY_NEVER, |
34 | vscrollbar_policy: GTK_POLICY_EXTERNAL); |
35 | gtk_widget_set_hexpand (widget: sw, TRUE); |
36 | gtk_box_append (GTK_BOX (box), child: sw); |
37 | tv = gtk_text_view_new (); |
38 | fill_text_view (tv, text: "Left" ); |
39 | gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), child: tv); |
40 | |
41 | adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw)); |
42 | |
43 | sw = gtk_scrolled_window_new (); |
44 | gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (sw), vadjustment: adj); |
45 | gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), |
46 | hscrollbar_policy: GTK_POLICY_NEVER, |
47 | vscrollbar_policy: GTK_POLICY_EXTERNAL); |
48 | gtk_widget_set_hexpand (widget: sw, TRUE); |
49 | gtk_box_append (GTK_BOX (box), child: sw); |
50 | tv = gtk_text_view_new (); |
51 | fill_text_view (tv, text: "Middle" ); |
52 | gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), child: tv); |
53 | |
54 | sw = gtk_scrolled_window_new (); |
55 | gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (sw), vadjustment: adj); |
56 | gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), |
57 | hscrollbar_policy: GTK_POLICY_NEVER, |
58 | vscrollbar_policy: GTK_POLICY_EXTERNAL); |
59 | gtk_widget_set_hexpand (widget: sw, TRUE); |
60 | gtk_box_append (GTK_BOX (box), child: sw); |
61 | tv = gtk_text_view_new (); |
62 | fill_text_view (tv, text: "Right" ); |
63 | gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), child: tv); |
64 | |
65 | sb = gtk_scrollbar_new (orientation: GTK_ORIENTATION_VERTICAL, adjustment: adj); |
66 | |
67 | gtk_box_append (GTK_BOX (box), child: sb); |
68 | |
69 | gtk_widget_show (widget: win); |
70 | |
71 | while (TRUE) |
72 | g_main_context_iteration (NULL, TRUE); |
73 | |
74 | return 0; |
75 | } |
76 | |