| 90 |
90 |
| 91 static void |
91 static void |
| 92 refresh_scroll_box(GtkGaimScrollBook *scroll_book, int index, int count) |
92 refresh_scroll_box(GtkGaimScrollBook *scroll_book, int index, int count) |
| 93 { |
93 { |
| 94 char *label; |
94 char *label; |
| 95 |
|
| 96 gtk_widget_show_all(GTK_WIDGET(scroll_book)); |
95 gtk_widget_show_all(GTK_WIDGET(scroll_book)); |
| 97 if (count <= 1) |
96 if (count <= 1) |
| 98 gtk_widget_hide(GTK_WIDGET(scroll_book->hbox)); |
97 gtk_widget_hide(GTK_WIDGET(scroll_book->hbox)); |
| 99 else |
98 else |
| 100 gtk_widget_show_all(GTK_WIDGET(scroll_book->hbox)); |
99 gtk_widget_show_all(GTK_WIDGET(scroll_book->hbox)); |
| 118 |
117 |
| 119 |
118 |
| 120 static void |
119 static void |
| 121 page_count_change_cb(GtkGaimScrollBook *scroll_book) |
120 page_count_change_cb(GtkGaimScrollBook *scroll_book) |
| 122 { |
121 { |
| |
122 int count; |
| 123 int index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); |
123 int index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); |
| 124 #if GTK_CHECK_VERSION(2,2,0) |
124 #if GTK_CHECK_VERSION(2,2,0) |
| 125 int count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); |
125 count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); |
| 126 #else |
126 #else |
| 127 count = g_list_length(GTK_NOTEBOOK(scroll_book->notebook)->children); |
127 count = g_list_length(GTK_NOTEBOOK(scroll_book->notebook)->children); |
| 128 #endif |
128 #endif |
| 129 refresh_scroll_box(scroll_book, index, count); |
129 refresh_scroll_box(scroll_book, index, count); |
| 130 |
130 |
| 144 static void |
144 static void |
| 145 gtk_gaim_scroll_book_add(GtkContainer *container, GtkWidget *widget) |
145 gtk_gaim_scroll_book_add(GtkContainer *container, GtkWidget *widget) |
| 146 { |
146 { |
| 147 gtk_widget_show(widget); |
147 gtk_widget_show(widget); |
| 148 gtk_notebook_append_page(GTK_NOTEBOOK(GTK_GAIM_SCROLL_BOOK(container)->notebook), widget, NULL); |
148 gtk_notebook_append_page(GTK_NOTEBOOK(GTK_GAIM_SCROLL_BOOK(container)->notebook), widget, NULL); |
| |
149 page_count_change_cb(GTK_GAIM_SCROLL_BOOK(container)); |
| 149 } |
150 } |
| 150 |
151 |
| 151 static void |
152 static void |
| 152 gtk_gaim_scroll_book_forall(GtkContainer *container, |
153 gtk_gaim_scroll_book_forall(GtkContainer *container, |
| 153 gboolean include_internals, |
154 gboolean include_internals, |
| 154 GtkCallback callback, |
155 GtkCallback callback, |
| 155 gpointer callback_data) |
156 gpointer callback_data) |
| 156 { |
157 { |
| 157 GtkGaimScrollBook *scroll_book = GTK_GAIM_SCROLL_BOOK(container); |
158 GtkGaimScrollBook *scroll_book = GTK_GAIM_SCROLL_BOOK(container); |
| 158 if (include_internals) { |
159 if (include_internals) |
| 159 (*callback)(scroll_book->hbox, callback_data); |
160 (*callback)(scroll_book->hbox, callback_data); |
| 160 } |
|
| 161 (*callback)(scroll_book->notebook, callback_data); |
161 (*callback)(scroll_book->notebook, callback_data); |
| 162 } |
162 } |
| 163 |
163 |
| 164 static void |
164 static void |
| 165 gtk_gaim_scroll_book_class_init (GtkGaimScrollBookClass *klass) |
165 gtk_gaim_scroll_book_class_init (GtkGaimScrollBookClass *klass) |
| 199 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(scroll_book->notebook), FALSE); |
199 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(scroll_book->notebook), FALSE); |
| 200 gtk_notebook_set_show_border(GTK_NOTEBOOK(scroll_book->notebook), FALSE); |
200 gtk_notebook_set_show_border(GTK_NOTEBOOK(scroll_book->notebook), FALSE); |
| 201 |
201 |
| 202 gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->notebook, TRUE, TRUE, 0); |
202 gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->notebook, TRUE, TRUE, 0); |
| 203 |
203 |
| 204 g_signal_connect_swapped(G_OBJECT(scroll_book->notebook), "add", G_CALLBACK(page_count_change_cb), scroll_book); |
|
| 205 g_signal_connect_swapped(G_OBJECT(scroll_book->notebook), "remove", G_CALLBACK(page_count_change_cb), scroll_book); |
204 g_signal_connect_swapped(G_OBJECT(scroll_book->notebook), "remove", G_CALLBACK(page_count_change_cb), scroll_book); |
| 206 g_signal_connect(G_OBJECT(scroll_book->notebook), "switch-page", G_CALLBACK(switch_page_cb), scroll_book); |
205 g_signal_connect(G_OBJECT(scroll_book->notebook), "switch-page", G_CALLBACK(switch_page_cb), scroll_book); |
| |
206 gtk_widget_show_all(scroll_book->hbox); |
| |
207 gtk_widget_show_all(scroll_book->notebook); |
| 207 } |
208 } |
| 208 |
209 |
| 209 |
210 |
| 210 |
211 |
| 211 GtkWidget * |
212 GtkWidget * |