comparison src/dialogs.c @ 3367:3b00d97d59aa

[gaim-migrate @ 3386] There'll be more tommorow! Thanks for coming to the party. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Fri, 02 Aug 2002 04:52:48 +0000
parents dd34e0b40fed
children 3cd2fbddf95a
comparison
equal deleted inserted replaced
3366:120e08ea5aee 3367:3b00d97d59aa
52 #include "pixmaps/save.xpm" 52 #include "pixmaps/save.xpm"
53 #include "pixmaps/ok.xpm" 53 #include "pixmaps/ok.xpm"
54 #include "pixmaps/add.xpm" 54 #include "pixmaps/add.xpm"
55 #include "pixmaps/warn.xpm" 55 #include "pixmaps/warn.xpm"
56 #include "pixmaps/close.xpm" 56 #include "pixmaps/close.xpm"
57 #include "pixmaps/gnome_add.xpm"
58 #include "pixmaps/gnome_remove.xpm"
57 59
58 #include "pixmaps/angel.xpm" 60 #include "pixmaps/angel.xpm"
59 #include "pixmaps/bigsmile.xpm" 61 #include "pixmaps/bigsmile.xpm"
60 #include "pixmaps/burp.xpm" 62 #include "pixmaps/burp.xpm"
61 #include "pixmaps/crossedlips.xpm" 63 #include "pixmaps/crossedlips.xpm"
1118 gtk_widget_show_all(a->window); 1120 gtk_widget_show_all(a->window);
1119 if (group != NULL) 1121 if (group != NULL)
1120 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); 1122 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group);
1121 } 1123 }
1122 1124
1125
1126 /*------------------------------------------------------------------------*
1127 * Privacy Settings *
1128 *------------------------------------------------------------------------*/
1129 static GtkWidget *deny_type = NULL;
1130 static GtkWidget *deny_conn_hbox = NULL;
1131 static GtkWidget *deny_opt_menu = NULL;
1132 static struct gaim_connection *current_deny_gc = NULL;
1133 static gboolean current_is_deny = FALSE;
1134 static GtkWidget *allow_list = NULL;
1135 static GtkWidget *block_list = NULL;
1136
1137 static void set_deny_mode(GtkWidget *w, int data)
1138 {
1139 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
1140 return;
1141 debug_printf("setting deny mode %d\n", data);
1142 current_deny_gc->permdeny = data;
1143 serv_set_permit_deny(current_deny_gc);
1144 do_export(current_deny_gc);
1145 }
1146
1147 static GtkWidget *deny_opt(char *label, int which, GtkWidget *box, GtkWidget *set)
1148 {
1149 GtkWidget *opt;
1150
1151 if (!set)
1152 opt = gtk_radio_button_new_with_label(NULL, label);
1153 else
1154 opt =
1155 gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)),
1156 label);
1157 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0);
1158 gtk_signal_connect(GTK_OBJECT(opt), "toggled", GTK_SIGNAL_FUNC(set_deny_mode), (void *)which);
1159 gtk_widget_show(opt);
1160 if (current_deny_gc->permdeny == which)
1161 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE);
1162
1163 return opt;
1164 }
1165
1166 static void des_deny_opt(GtkWidget *d, gpointer e)
1167 {
1168 gtk_widget_destroy(d);
1169 current_deny_gc = NULL;
1170 deny_conn_hbox = NULL;
1171 deny_type = NULL;
1172 deny_opt_menu = NULL;
1173 current_is_deny = FALSE;
1174 allow_list = NULL;
1175 block_list = NULL;
1176 }
1177
1178 static void set_deny_type()
1179 {
1180 GSList *bg = gtk_radio_button_group(GTK_RADIO_BUTTON(deny_type));
1181
1182 switch (current_deny_gc->permdeny) {
1183 case 4:
1184 break;
1185 case 3:
1186 bg = bg->next->next;
1187 break;
1188 case 2:
1189 bg = bg->next;
1190 break;
1191 case 1:
1192 bg = bg->next->next->next;
1193 break;
1194 }
1195
1196 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(bg->data), TRUE);
1197 }
1198
1199 void build_allow_list()
1200 {
1201 GtkWidget *label;
1202 GtkWidget *list_item;
1203 GSList *p;
1204
1205 if (!current_is_deny)
1206 return;
1207
1208 p = current_deny_gc->permit;
1209
1210 gtk_list_remove_items(GTK_LIST(allow_list), GTK_LIST(allow_list)->children);
1211
1212 while (p) {
1213 label = gtk_label_new(p->data);
1214 list_item = gtk_list_item_new();
1215 gtk_container_add(GTK_CONTAINER(list_item), label);
1216 gtk_object_set_user_data(GTK_OBJECT(list_item), p->data);
1217 gtk_widget_show(label);
1218 gtk_container_add(GTK_CONTAINER(allow_list), list_item);
1219 gtk_widget_show(list_item);
1220 p = p->next;
1221 }
1222 }
1223
1224 void build_block_list()
1225 {
1226 GtkWidget *label;
1227 GtkWidget *list_item;
1228 GSList *d;
1229
1230 if (!current_is_deny)
1231 return;
1232
1233 d = current_deny_gc->deny;
1234
1235 gtk_list_remove_items(GTK_LIST(block_list), GTK_LIST(block_list)->children);
1236
1237 while (d) {
1238 label = gtk_label_new(d->data);
1239 list_item = gtk_list_item_new();
1240 gtk_container_add(GTK_CONTAINER(list_item), label);
1241 gtk_object_set_user_data(GTK_OBJECT(list_item), d->data);
1242 gtk_widget_show(label);
1243 gtk_container_add(GTK_CONTAINER(block_list), list_item);
1244 gtk_widget_show(list_item);
1245 d = d->next;
1246 }
1247 }
1248
1249 static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc)
1250 {
1251 current_deny_gc = gc;
1252 set_deny_type();
1253 build_allow_list();
1254 build_block_list();
1255 }
1256
1257 static void build_deny_menu()
1258 {
1259 GtkWidget *menu;
1260 GtkWidget *opt;
1261 GSList *c = connections;
1262 struct gaim_connection *gc;
1263 int count = 0;
1264 gboolean found = FALSE;
1265 char buf[2048];
1266
1267 if (g_slist_length(connections) == 1) {
1268 gtk_widget_hide(deny_conn_hbox);
1269 return;
1270 } else
1271 gtk_widget_show(deny_conn_hbox);
1272
1273 menu = gtk_menu_new();
1274
1275 while (c) {
1276 gc = (struct gaim_connection *)c->data;
1277 c = c->next;
1278 if (!gc->prpl->set_permit_deny)
1279 continue;
1280 g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name());
1281 opt = gtk_menu_item_new_with_label(buf);
1282 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(deny_gc_opt), gc);
1283 gtk_widget_show(opt);
1284 gtk_menu_append(GTK_MENU(menu), opt);
1285 if (gc == current_deny_gc)
1286 found = TRUE;
1287 else if (!found)
1288 count++;
1289 }
1290
1291 if (!found) {
1292 current_deny_gc = connections->data;
1293 count = 0;
1294 }
1295
1296 gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu));
1297 gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu);
1298 gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count);
1299
1300 gtk_widget_show(menu);
1301 gtk_widget_show(deny_opt_menu);
1302 }
1303
1304 static void pref_deny_add(GtkWidget *button, gboolean permit)
1305 {
1306 show_add_perm(current_deny_gc, NULL, permit);
1307 }
1308
1309 static void pref_deny_rem(GtkWidget *button, gboolean permit)
1310 {
1311 GList *i;
1312 char *who;
1313
1314 if (permit && !allow_list)
1315 return;
1316 if (!permit && !block_list)
1317 return;
1318
1319 if (permit)
1320 i = GTK_LIST(allow_list)->selection;
1321 else
1322 i = GTK_LIST(block_list)->selection;
1323
1324 if (!i)
1325 return;
1326 who = gtk_object_get_user_data(GTK_OBJECT(i->data));
1327 if (permit) {
1328 current_deny_gc->permit = g_slist_remove(current_deny_gc->permit, who);
1329 serv_rem_permit(current_deny_gc, who);
1330 build_allow_list();
1331 } else {
1332 current_deny_gc->deny = g_slist_remove(current_deny_gc->deny, who);
1333 serv_rem_deny(current_deny_gc, who);
1334 build_block_list();
1335 }
1336
1337 do_export(current_deny_gc);
1338 }
1339
1340 GtkWidget *privacy_win;
1341 void update_privacy_connections() { /* This is a slightly better name */
1342 gboolean needdeny = FALSE;
1343 GSList *c = connections;
1344 struct gaim_connection *gc = NULL;
1345
1346 if (!privacy_win)
1347 return;
1348
1349 while (c) {
1350 gc = c->data;
1351 if (gc->prpl->set_permit_deny)
1352 break;
1353 gc = NULL;
1354 c = c->next;
1355 }
1356 needdeny = (gc != NULL);
1357
1358
1359 if (needdeny) {
1360 gtk_widget_set_sensitive(privacy_win, TRUE);
1361 build_deny_menu();
1362 build_allow_list();
1363 build_block_list();
1364 } else {
1365 gtk_widget_set_sensitive(privacy_win, FALSE);
1366 }
1367 }
1368 static void destroy_privacy() {
1369 current_deny_gc = NULL;
1370 privacy_win = NULL;
1371 }
1372
1373 void show_privacy_options()
1374 {
1375 GtkWidget *pwin;
1376 GtkWidget *box;
1377 GtkWidget *hbox;
1378 GtkWidget *label;
1379 GtkWidget *vbox;
1380 GtkWidget *sw;
1381 GtkWidget *bbox;
1382 GtkWidget *button;
1383 GtkWidget *sep;
1384 GtkWidget *close_button;
1385
1386 current_deny_gc = connections->data; /* this is safe because this screen will only be
1387 available when there are connections */
1388 current_is_deny = TRUE;
1389
1390
1391 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1392 gtk_window_set_policy(GTK_WINDOW(pwin), FALSE, TRUE, TRUE);
1393 gtk_window_set_wmclass(GTK_WINDOW(pwin), "privacy", "Gaim");
1394 gtk_window_set_title(GTK_WINDOW(pwin), _("Gaim - Privacy"));
1395 gtk_signal_connect(GTK_OBJECT(pwin), "destroy", GTK_SIGNAL_FUNC(destroy_privacy), NULL);
1396 gtk_widget_realize(pwin);
1397 aol_icon(pwin->window);
1398
1399 gtk_widget_set_usize(pwin, 0, 400);
1400
1401 box = gtk_vbox_new(FALSE, 5);
1402 gtk_container_set_border_width(GTK_CONTAINER(box), 5);
1403 gtk_container_add(GTK_CONTAINER(pwin), box);
1404 gtk_widget_show(box);
1405
1406 label = gtk_label_new(_("Privacy settings are affected immediately."));
1407 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5);
1408 gtk_widget_show(label);
1409
1410 deny_conn_hbox = gtk_hbox_new(FALSE, 5);
1411 gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0);
1412 gtk_widget_show(deny_conn_hbox);
1413
1414 label = gtk_label_new(_("Set privacy for:"));
1415 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5);
1416 gtk_widget_show(label);
1417
1418 deny_opt_menu = gtk_option_menu_new();
1419 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5);
1420 gtk_signal_connect(GTK_OBJECT(deny_opt_menu), "destroy", GTK_SIGNAL_FUNC(des_deny_opt), NULL);
1421 gtk_widget_show(deny_opt_menu);
1422
1423 build_deny_menu();
1424
1425 hbox = gtk_hbox_new(FALSE, 5);
1426 gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 5);
1427 gtk_widget_show(hbox);
1428
1429 vbox = gtk_vbox_new(FALSE, 5);
1430 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
1431 gtk_widget_show(vbox);
1432
1433 deny_type = deny_opt(_("Allow all users to contact me"), 1, vbox, NULL);
1434 deny_type = deny_opt(_("Allow only the users below"), 3, vbox, deny_type);
1435
1436 label = gtk_label_new(_("Allow List"));
1437 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
1438 gtk_widget_show(label);
1439
1440 sw = gtk_scrolled_window_new(NULL, NULL);
1441 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1442 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5);
1443 gtk_widget_show(sw);
1444
1445 allow_list = gtk_list_new();
1446 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list);
1447 gtk_widget_show(allow_list);
1448
1449 build_allow_list();
1450
1451 bbox = gtk_hbox_new(TRUE, 5);
1452 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
1453 gtk_widget_show(bbox);
1454
1455 button = picture_button(pwin, _("Add"), gnome_add_xpm);
1456 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_add), (void *)TRUE);
1457 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
1458
1459 button = picture_button(pwin, _("Remove"), gnome_remove_xpm);
1460 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_rem), (void *)TRUE);
1461 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
1462
1463 vbox = gtk_vbox_new(FALSE, 5);
1464 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5);
1465 gtk_widget_show(vbox);
1466
1467 deny_type = deny_opt(_("Deny all users"), 2, vbox, deny_type);
1468 deny_type = deny_opt(_("Block the users below"), 4, vbox, deny_type);
1469
1470 label = gtk_label_new(_("Block List"));
1471 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5);
1472 gtk_widget_show(label);
1473
1474 sw = gtk_scrolled_window_new(NULL, NULL);
1475 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1476 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5);
1477 gtk_widget_show(sw);
1478
1479 block_list = gtk_list_new();
1480 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list);
1481 gtk_widget_show(block_list);
1482
1483 build_block_list();
1484
1485 bbox = gtk_hbox_new(TRUE, 5);
1486 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
1487 gtk_widget_show(bbox);
1488
1489 button = picture_button(pwin, _("Add"), gnome_add_xpm);
1490 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_add), FALSE);
1491 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
1492
1493 button = picture_button(pwin, _("Remove"), gnome_remove_xpm);
1494 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pref_deny_rem), FALSE);
1495 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5);
1496
1497 sep = gtk_hseparator_new();
1498 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5);
1499 gtk_widget_show(sep);
1500
1501 hbox = gtk_hbox_new(TRUE, 5);
1502 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5);
1503 gtk_widget_show(hbox);
1504 close_button = picture_button(pwin, _("Close"), cancel_xpm);
1505 gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 5);
1506 gtk_signal_connect_object(GTK_OBJECT(close_button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), pwin);
1507
1508 gtk_widget_show(pwin);
1509 }
1510
1511
1123 1512
1124 /*------------------------------------------------------------------------*/ 1513 /*------------------------------------------------------------------------*/
1125 /* The dialog for new buddy pounces */ 1514 /* The dialog for new buddy pounces */
1126 /*------------------------------------------------------------------------*/ 1515 /*------------------------------------------------------------------------*/
1127 1516
2571 2960
2572 /*------------------------------------------------------*/ 2961 /*------------------------------------------------------*/
2573 /* Color Selection Dialog */ 2962 /* Color Selection Dialog */
2574 /*------------------------------------------------------*/ 2963 /*------------------------------------------------------*/
2575 2964
2576 static GtkWidget *fgcseld = NULL; 2965 GtkWidget *fgcseld = NULL;
2577 static GtkWidget *bgcseld = NULL; 2966 GtkWidget *bgcseld = NULL;
2578 2967
2579 void cancel_fgcolor(GtkWidget *widget, struct conversation *c) 2968 void cancel_fgcolor(GtkWidget *widget, struct conversation *c)
2580 { 2969 {
2581 if (c->fgcolorbtn && widget) { 2970 if (c->fgcolorbtn && widget) {
2582 set_state_lock(1); 2971 set_state_lock(1);
2652 text_color.blue); 3041 text_color.blue);
2653 surround(c->entry, open_tag, "</BODY>"); 3042 surround(c->entry, open_tag, "</BODY>");
2654 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue); 3043 debug_printf("#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue);
2655 g_free(open_tag); 3044 g_free(open_tag);
2656 cancel_bgcolor(NULL, c); 3045 cancel_bgcolor(NULL, c);
2657 }
2658
2659 static void destroy_colorsel(GtkWidget *w, gpointer d)
2660 {
2661 if (d) {
2662 gtk_widget_destroy(fgcseld);
2663 fgcseld = NULL;
2664 } else {
2665 gtk_widget_destroy(bgcseld);
2666 bgcseld = NULL;
2667 }
2668 }
2669
2670 static void apply_color_dlg(GtkWidget *w, gpointer d)
2671 {
2672 gdouble color[3];
2673 if ((int)d == 1) {
2674 gtk_color_selection_get_color(GTK_COLOR_SELECTION
2675 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), color);
2676 destroy_colorsel(NULL, (void *)1);
2677
2678 fgcolor.red = ((guint16)(color[0] * 65535)) >> 8;
2679 fgcolor.green = ((guint16)(color[1] * 65535)) >> 8;
2680 fgcolor.blue = ((guint16)(color[2] * 65535)) >> 8;
2681 update_color(NULL, pref_fg_picture);
2682 update_convo_color(TRUE);
2683 } else {
2684 gtk_color_selection_get_color(GTK_COLOR_SELECTION
2685 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), color);
2686 destroy_colorsel(NULL, (void *)0);
2687
2688 bgcolor.red = ((guint16)(color[0] * 65535)) >> 8;
2689 bgcolor.green = ((guint16)(color[1] * 65535)) >> 8;
2690 bgcolor.blue = ((guint16)(color[2] * 65535)) >> 8;
2691 update_color(NULL, pref_bg_picture);
2692 update_convo_color(FALSE);
2693 }
2694 } 3046 }
2695 3047
2696 void show_fgcolor_dialog(struct conversation *c, GtkWidget *color) 3048 void show_fgcolor_dialog(struct conversation *c, GtkWidget *color)
2697 { 3049 {
2698 GtkWidget *colorsel; 3050 GtkWidget *colorsel;
2851 3203
2852 void destroy_fontsel(GtkWidget *w, gpointer d) 3204 void destroy_fontsel(GtkWidget *w, gpointer d)
2853 { 3205 {
2854 gtk_widget_destroy(fontseld); 3206 gtk_widget_destroy(fontseld);
2855 fontseld = NULL; 3207 fontseld = NULL;
2856 }
2857
2858 void apply_font_dlg(GtkWidget *w, GtkWidget *f)
2859 {
2860 int i, j = 0, k = 0;
2861 char *fontname;
2862
2863 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontseld));
2864 destroy_fontsel(0, 0);
2865 for (i = 0; i < strlen(fontname); i++) {
2866 if (fontname[i] == '-') {
2867 if (++j > 2)
2868 break;
2869 } else if (j == 2)
2870 fontface[k++] = fontname[i];
2871 }
2872 fontface[k] = '\0';
2873 g_snprintf(fontxfld, sizeof(fontxfld), "%s", fontname);
2874 update_convo_font();
2875 } 3208 }
2876 3209
2877 void show_font_dialog(struct conversation *c, GtkWidget *font) 3210 void show_font_dialog(struct conversation *c, GtkWidget *font)
2878 { 3211 {
2879 3212
4223 gdk_window_set_icon(w, NULL, icon_pm, icon_bm); 4556 gdk_window_set_icon(w, NULL, icon_pm, icon_bm);
4224 if (mainwindow) 4557 if (mainwindow)
4225 gdk_window_set_group(w, mainwindow->window); 4558 gdk_window_set_group(w, mainwindow->window);
4226 #endif 4559 #endif
4227 } 4560 }
4561
4562 #if GTK_CHECK_VERSION(1,3,0)
4563 GtkWidget *pixbuf_button(char *text, char *iconfile)
4564 {
4565 GtkWidget *button, *image, *label, *bbox;
4566 button = gtk_button_new();
4567 bbox = gtk_hbox_new(FALSE, 5);
4568 gtk_container_add (GTK_CONTAINER(button), bbox);
4569 if (iconfile) {
4570 char *filename;
4571 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL);
4572 debug_printf("Loading: %s\n", filename);
4573 image = gtk_image_new_from_file(filename);
4574 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0);
4575 g_free(filename);
4576 }
4577 if (text) {
4578 label = gtk_label_new(NULL);
4579 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text);
4580 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button);
4581 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0);
4582 }
4583 gtk_widget_show_all(bbox);
4584 return button;
4585 }
4586 #endif
4228 4587
4229 GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) 4588 GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm)
4230 { 4589 {
4231 GtkWidget *button; 4590 GtkWidget *button;
4232 GtkWidget *button_box, *button_box_2, *button_box_3; 4591 GtkWidget *button_box, *button_box_2, *button_box_3;