comparison src/dialogs.c @ 4635:42d53c416bb9

[gaim-migrate @ 4942] remove deprecated gtk calls, gtk2-ify log viewer, gtk2-ify jabber vcard dialog, and probably a cleanup or two I forgot about. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 02 Mar 2003 19:21:36 +0000
parents 5cdfd20daa07
children bf89c7598989
comparison
equal deleted inserted replaced
4634:d19872836812 4635:42d53c416bb9
274 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct gaim_conversation *c) 274 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct gaim_conversation *c)
275 { 275 {
276 struct gaim_gtk_conversation *gtkconv; 276 struct gaim_gtk_conversation *gtkconv;
277 gchar *object_data; 277 gchar *object_data;
278 278
279 object_data = gtk_object_get_user_data(GTK_OBJECT(w)); 279 object_data = g_object_get_data(G_OBJECT(w), "dialog_type");
280 280
281 gtkconv = GAIM_GTK_CONVERSATION(c); 281 gtkconv = GAIM_GTK_CONVERSATION(c);
282 282
283 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { 283 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) {
284 gaim_gtk_set_state_lock(TRUE); 284 gaim_gtk_set_state_lock(TRUE);
285 if (w == gtkconv->dialogs.fg_color) { 285 if (w == gtkconv->dialogs.fg_color) {
286 gtk_toggle_button_set_state( 286 gtk_toggle_button_set_active(
287 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); 287 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE);
288 gtkconv->dialogs.fg_color = NULL; 288 gtkconv->dialogs.fg_color = NULL;
289 } else { 289 } else {
290 gtk_toggle_button_set_state( 290 gtk_toggle_button_set_active(
291 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); 291 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE);
292 gtkconv->dialogs.bg_color = NULL; 292 gtkconv->dialogs.bg_color = NULL;
293 } 293 }
294 gaim_gtk_set_state_lock(FALSE); 294 gaim_gtk_set_state_lock(FALSE);
295 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { 295 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) {
296 gaim_gtk_set_state_lock(TRUE); 296 gaim_gtk_set_state_lock(TRUE);
297 gtk_toggle_button_set_state( 297 gtk_toggle_button_set_active(
298 GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE); 298 GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE);
299 gaim_gtk_set_state_lock(FALSE); 299 gaim_gtk_set_state_lock(FALSE);
300 gtkconv->dialogs.font = NULL; 300 gtkconv->dialogs.font = NULL;
301 } else if (!g_strcasecmp(object_data, "smiley dialog")) { 301 } else if (!g_strcasecmp(object_data, "smiley dialog")) {
302 gaim_gtk_set_state_lock(TRUE); 302 gaim_gtk_set_state_lock(TRUE);
303 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), 303 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
304 FALSE); 304 FALSE);
305 gaim_gtk_set_state_lock(FALSE); 305 gaim_gtk_set_state_lock(FALSE);
306 gtkconv->dialogs.smiley = NULL; 306 gtkconv->dialogs.smiley = NULL;
307 } else if (!g_strcasecmp(object_data, "log dialog")) { 307 } else if (!g_strcasecmp(object_data, "log dialog")) {
308 gaim_gtk_set_state_lock(TRUE); 308 gaim_gtk_set_state_lock(TRUE);
664 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); 664 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
665 665
666 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 666 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
667 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 667 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
668 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 668 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
669 669
670 gtk_widget_show_all(window); 670 gtk_widget_show_all(window);
671 } 671 }
672 672
673 void show_info_select_account(GtkObject *w, struct gaim_connection *gc) 673 void show_info_select_account(GObject *w, struct gaim_connection *gc)
674 { 674 {
675 struct getuserinfo *info = gtk_object_get_user_data(w); 675 struct getuserinfo *info = g_object_get_data(w, "getuserinfo");
676 info->gc = gc; 676 info->gc = gc;
677 } 677 }
678 678
679 static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) { 679 static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) {
680 const char *txt = gtk_entry_get_text(GTK_ENTRY(entry)); 680 const char *txt = gtk_entry_get_text(GTK_ENTRY(entry));
763 g = g->next; 763 g = g->next;
764 continue; 764 continue;
765 } 765 }
766 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); 766 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name);
767 opt = gtk_menu_item_new_with_label(buf); 767 opt = gtk_menu_item_new_with_label(buf);
768 gtk_object_set_user_data(GTK_OBJECT(opt), info); 768 g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
769 769
770 g_signal_connect(GTK_OBJECT(opt), "activate", 770 g_signal_connect(GTK_OBJECT(opt), "activate",
771 G_CALLBACK(show_info_select_account), c); 771 G_CALLBACK(show_info_select_account), c);
772 772
773 gtk_menu_append(GTK_MENU(menu), opt); 773 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
774 g = g->next; 774 g = g->next;
775 } 775 }
776 776
777 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); 777 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu);
778 } 778 }
862 g = g->next; 862 g = g->next;
863 continue; 863 continue;
864 } 864 }
865 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); 865 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name);
866 opt = gtk_menu_item_new_with_label(buf); 866 opt = gtk_menu_item_new_with_label(buf);
867 gtk_object_set_user_data(GTK_OBJECT(opt), info); 867 g_object_set_data(G_OBJECT(opt), "getuserinfo", info);
868 868
869 g_signal_connect(GTK_OBJECT(opt), "activate", 869 g_signal_connect(GTK_OBJECT(opt), "activate",
870 G_CALLBACK(show_info_select_account), c); 870 G_CALLBACK(show_info_select_account), c);
871 871
872 gtk_menu_append(GTK_MENU(menu), opt); 872 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
873 g = g->next; 873 g = g->next;
874 } 874 }
875 875
876 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); 876 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu);
877 } 877 }
1011 1011
1012 gtk_widget_show_all(a->window); 1012 gtk_widget_show_all(a->window);
1013 gtk_widget_grab_focus(GTK_WIDGET(a->entry)); 1013 gtk_widget_grab_focus(GTK_WIDGET(a->entry));
1014 } 1014 }
1015 1015
1016 static void addbuddy_select_account(GtkObject *w, struct gaim_connection *gc) 1016 static void addbuddy_select_account(GObject *w, struct gaim_connection *gc)
1017 { 1017 {
1018 struct addbuddy *b = gtk_object_get_user_data(w); 1018 struct addbuddy *b = g_object_get_data(w, "addbuddy");
1019 1019
1020 /* Save our account */ 1020 /* Save our account */
1021 b->gc = gc; 1021 b->gc = gc;
1022 1022
1023 /* We also want to update our group list */ 1023 /* We also want to update our group list */
1038 while (g) { 1038 while (g) {
1039 c = (struct gaim_connection *)g->data; 1039 c = (struct gaim_connection *)g->data;
1040 g_snprintf(buf, sizeof(buf), "%s (%s)", 1040 g_snprintf(buf, sizeof(buf), "%s (%s)",
1041 c->username, c->prpl->name); 1041 c->username, c->prpl->name);
1042 opt = gtk_menu_item_new_with_label(buf); 1042 opt = gtk_menu_item_new_with_label(buf);
1043 gtk_object_set_user_data(GTK_OBJECT(opt), b); 1043 g_object_set_data(G_OBJECT(opt), "addbuddy", b);
1044 g_signal_connect(GTK_OBJECT(opt), "activate", 1044 g_signal_connect(GTK_OBJECT(opt), "activate",
1045 G_CALLBACK(addbuddy_select_account), 1045 G_CALLBACK(addbuddy_select_account),
1046 c); 1046 c);
1047 gtk_widget_show(opt); 1047 gtk_widget_show(opt);
1048 gtk_menu_append(GTK_MENU(menu), opt); 1048 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
1049 1049
1050 /* Now check to see if it's our current menu */ 1050 /* Now check to see if it's our current menu */
1051 if (c == b->gc) { 1051 if (c == b->gc) {
1052 place = count; 1052 place = count;
1053 gtk_menu_item_activate(GTK_MENU_ITEM(opt)); 1053 gtk_menu_item_activate(GTK_MENU_ITEM(opt));
1206 1206
1207 if (!set) 1207 if (!set)
1208 opt = gtk_radio_button_new_with_label(NULL, label); 1208 opt = gtk_radio_button_new_with_label(NULL, label);
1209 else 1209 else
1210 opt = 1210 opt =
1211 gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)), 1211 gtk_radio_button_new_with_label(gtk_radio_button_get_group(
1212 GTK_RADIO_BUTTON(set)),
1212 label); 1213 label);
1213 1214
1214 g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which); 1215 g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which);
1215 gtk_widget_show(opt); 1216 gtk_widget_show(opt);
1216 if (current_deny_gc->account->permdeny == which) 1217 if (current_deny_gc->account->permdeny == which)
1217 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); 1218 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE);
1218 1219
1219 return opt; 1220 return opt;
1220 } 1221 }
1221 1222
1222 static void des_deny_opt(GtkWidget *d, gpointer e) 1223 static void des_deny_opt(GtkWidget *d, gpointer e)
1234 block_store = NULL; 1235 block_store = NULL;
1235 } 1236 }
1236 1237
1237 static void set_deny_type() 1238 static void set_deny_type()
1238 { 1239 {
1239 GSList *bg = gtk_radio_button_group(GTK_RADIO_BUTTON(deny_type)); 1240 GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type));
1240 1241
1241 switch (current_deny_gc->account->permdeny) { 1242 switch (current_deny_gc->account->permdeny) {
1242 case 5: 1243 case 5:
1243 bg = bg->next->next; 1244 bg = bg->next->next;
1244 break; 1245 break;
1253 case 1: 1254 case 1:
1254 bg = bg->next->next->next->next; 1255 bg = bg->next->next->next->next;
1255 break; 1256 break;
1256 } 1257 }
1257 1258
1258 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(bg->data), TRUE); 1259 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE);
1259 } 1260 }
1260 1261
1261 void build_allow_list() 1262 void build_allow_list()
1262 { 1263 {
1263 GSList *p; 1264 GSList *p;
1338 continue; 1339 continue;
1339 g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name); 1340 g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name);
1340 opt = gtk_menu_item_new_with_label(buf); 1341 opt = gtk_menu_item_new_with_label(buf);
1341 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc); 1342 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc);
1342 gtk_widget_show(opt); 1343 gtk_widget_show(opt);
1343 gtk_menu_append(GTK_MENU(menu), opt); 1344 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
1344 if (gc == current_deny_gc) 1345 if (gc == current_deny_gc)
1345 found = TRUE; 1346 found = TRUE;
1346 else if (!found) 1347 else if (!found)
1347 count++; 1348 count++;
1348 } 1349 }
1481 current_deny_gc = connections->data; /* this is safe because this screen will only be 1482 current_deny_gc = connections->data; /* this is safe because this screen will only be
1482 available when there are connections */ 1483 available when there are connections */
1483 current_is_deny = TRUE; 1484 current_is_deny = TRUE;
1484 1485
1485 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); 1486 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1486 gtk_window_set_policy(GTK_WINDOW(pwin), FALSE, FALSE, TRUE); 1487 gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE);
1487 gtk_window_set_role(GTK_WINDOW(pwin), "privacy"); 1488 gtk_window_set_role(GTK_WINDOW(pwin), "privacy");
1488 gtk_window_set_title(GTK_WINDOW(pwin), _("Gaim - Privacy")); 1489 gtk_window_set_title(GTK_WINDOW(pwin), _("Gaim - Privacy"));
1489 g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL); 1490 g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL);
1490 gtk_widget_realize(pwin); 1491 gtk_widget_realize(pwin);
1491 1492
1492 gtk_widget_set_usize(pwin, 0, 400); 1493 gtk_widget_set_size_request(pwin, 0, 400);
1493 1494
1494 box = gtk_vbox_new(FALSE, 5); 1495 box = gtk_vbox_new(FALSE, 5);
1495 gtk_container_set_border_width(GTK_CONTAINER(box), 5); 1496 gtk_container_set_border_width(GTK_CONTAINER(box), 5);
1496 gtk_container_add(GTK_CONTAINER(pwin), box); 1497 gtk_container_add(GTK_CONTAINER(pwin), box);
1497 gtk_widget_show(box); 1498 gtk_widget_show(box);
1698 g_free(b); 1699 g_free(b);
1699 } 1700 }
1700 1701
1701 static void pounce_choose(GtkWidget *opt, struct addbp *b) 1702 static void pounce_choose(GtkWidget *opt, struct addbp *b)
1702 { 1703 {
1703 struct gaim_account *account = gtk_object_get_user_data(GTK_OBJECT(opt)); 1704 struct gaim_account *account = g_object_get_data(G_OBJECT(opt), "gaim_account");
1704 b->account = account; 1705 b->account = account;
1705 } 1706 }
1706 1707
1707 static GtkWidget *pounce_user_menu(struct addbp *b, struct gaim_connection *gc) 1708 static GtkWidget *pounce_user_menu(struct addbp *b, struct gaim_connection *gc)
1708 { 1709 {
1724 while (u) { 1725 while (u) {
1725 account = (struct gaim_account *)u->data; 1726 account = (struct gaim_account *)u->data;
1726 p = (struct prpl *)find_prpl(account->protocol); 1727 p = (struct prpl *)find_prpl(account->protocol);
1727 g_snprintf(buf, sizeof buf, "%s (%s)", account->username, (p && p->name)?p->name:_("Unknown")); 1728 g_snprintf(buf, sizeof buf, "%s (%s)", account->username, (p && p->name)?p->name:_("Unknown"));
1728 opt = gtk_menu_item_new_with_label(buf); 1729 opt = gtk_menu_item_new_with_label(buf);
1729 gtk_object_set_user_data(GTK_OBJECT(opt), account); 1730 g_object_set_data(G_OBJECT(opt), "gaim_account", account);
1730 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(pounce_choose), b); 1731 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(pounce_choose), b);
1731 gtk_menu_append(GTK_MENU(menu), opt); 1732 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
1732 gtk_widget_show(opt); 1733 gtk_widget_show(opt);
1733 1734
1734 if (b->account == account) { 1735 if (b->account == account) {
1735 gtk_menu_item_activate(GTK_MENU_ITEM(opt)); 1736 gtk_menu_item_activate(GTK_MENU_ITEM(opt));
1736 place = count; 1737 place = count;
1772 b->buddy_pounce = NULL; 1773 b->buddy_pounce = NULL;
1773 } 1774 }
1774 1775
1775 GAIM_DIALOG(b->window); 1776 GAIM_DIALOG(b->window);
1776 dialogwindows = g_list_prepend(dialogwindows, b->window); 1777 dialogwindows = g_list_prepend(dialogwindows, b->window);
1777 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 1778 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
1778 gtk_window_set_role(GTK_WINDOW(b->window), "new_bp"); 1779 gtk_window_set_role(GTK_WINDOW(b->window), "new_bp");
1779 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce")); 1780 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce"));
1780 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); 1781 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
1781 gtk_widget_realize(b->window); 1782 gtk_widget_realize(b->window);
1782 1783
1830 table = gtk_table_new(2, 2, FALSE); 1831 table = gtk_table_new(2, 2, FALSE);
1831 gtk_container_add(GTK_CONTAINER(frame), table); 1832 gtk_container_add(GTK_CONTAINER(frame), table);
1832 gtk_container_set_border_width(GTK_CONTAINER(table), 5); 1833 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
1833 gtk_table_set_col_spacings(GTK_TABLE(table), 5); 1834 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
1834 gtk_widget_show(table); 1835 gtk_widget_show(table);
1835 1836
1836 b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on")); 1837 b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on"));
1837 if(edit_bp) 1838 if(edit_bp)
1838 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_signon), 1839 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon),
1839 (edit_bp->options & OPT_POUNCE_SIGNON) ? TRUE : FALSE); 1840 (edit_bp->options & OPT_POUNCE_SIGNON) ? TRUE : FALSE);
1840 else 1841 else
1841 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_signon), TRUE); 1842 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon), TRUE);
1842 gtk_table_attach(GTK_TABLE(table), b->p_signon, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); 1843 gtk_table_attach(GTK_TABLE(table), b->p_signon, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
1843 gtk_widget_show(b->p_signon); 1844 gtk_widget_show(b->p_signon);
1844 1845
1845 b->p_unaway = gtk_check_button_new_with_label(_("Pounce on return from away")); 1846 b->p_unaway = gtk_check_button_new_with_label(_("Pounce on return from away"));
1846 if (away) 1847 if (away)
1847 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unaway), TRUE); 1848 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway), TRUE);
1848 else if(edit_bp) 1849 else if(edit_bp)
1849 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unaway), 1850 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway),
1850 (edit_bp->options & OPT_POUNCE_UNAWAY) ? TRUE : FALSE); 1851 (edit_bp->options & OPT_POUNCE_UNAWAY) ? TRUE : FALSE);
1851 gtk_table_attach(GTK_TABLE(table), b->p_unaway, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); 1852 gtk_table_attach(GTK_TABLE(table), b->p_unaway, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
1852 gtk_widget_show(b->p_unaway); 1853 gtk_widget_show(b->p_unaway);
1853 1854
1854 b->p_unidle = gtk_check_button_new_with_label(_("Pounce on return from idle")); 1855 b->p_unidle = gtk_check_button_new_with_label(_("Pounce on return from idle"));
1855 if (idle) 1856 if (idle)
1856 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unidle), TRUE); 1857 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle), TRUE);
1857 else if(edit_bp) 1858 else if(edit_bp)
1858 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_unidle), 1859 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle),
1859 (edit_bp->options & OPT_POUNCE_UNIDLE) ? TRUE : FALSE); 1860 (edit_bp->options & OPT_POUNCE_UNIDLE) ? TRUE : FALSE);
1860 gtk_table_attach(GTK_TABLE(table), b->p_unidle, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); 1861 gtk_table_attach(GTK_TABLE(table), b->p_unidle, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
1861 gtk_widget_show(b->p_unidle); 1862 gtk_widget_show(b->p_unidle);
1862 1863
1863 b->p_typing = gtk_check_button_new_with_label(_("Pounce when buddy is typing to you")); 1864 b->p_typing = gtk_check_button_new_with_label(_("Pounce when buddy is typing to you"));
1864 if (edit_bp) 1865 if (edit_bp)
1865 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->p_typing), 1866 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_typing),
1866 (edit_bp->options & OPT_POUNCE_TYPING) ? TRUE : FALSE); 1867 (edit_bp->options & OPT_POUNCE_TYPING) ? TRUE : FALSE);
1867 gtk_table_attach(GTK_TABLE(table), b->p_typing,1,2,1,2, GTK_FILL | GTK_EXPAND, 0, 0, 0); 1868 gtk_table_attach(GTK_TABLE(table), b->p_typing,1,2,1,2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
1868 gtk_widget_show(b->p_typing); 1869 gtk_widget_show(b->p_typing);
1869 1870
1870 /* </pounce type="when"> */ 1871 /* </pounce type="when"> */
1871 1872
1872 /* <pounce type="action"> */ 1873 /* <pounce type="action"> */
1873 frame = gtk_frame_new(_("Pounce Action")); 1874 frame = gtk_frame_new(_("Pounce Action"));
1874 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); 1875 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
1875 gtk_widget_show(GTK_WIDGET(frame)); 1876 gtk_widget_show(GTK_WIDGET(frame));
1876 1877
1878 gtk_container_add(GTK_CONTAINER(frame), table); 1879 gtk_container_add(GTK_CONTAINER(frame), table);
1879 gtk_container_set_border_width(GTK_CONTAINER(table), 5); 1880 gtk_container_set_border_width(GTK_CONTAINER(table), 5);
1880 gtk_table_set_col_spacings(GTK_TABLE(table), 5); 1881 gtk_table_set_col_spacings(GTK_TABLE(table), 5);
1881 gtk_table_set_row_spacings(GTK_TABLE(table), 5); 1882 gtk_table_set_row_spacings(GTK_TABLE(table), 5);
1882 gtk_widget_show(table); 1883 gtk_widget_show(table);
1883 1884
1884 b->openwindow = gtk_check_button_new_with_label(_("Open IM Window")); 1885 b->openwindow = gtk_check_button_new_with_label(_("Open IM Window"));
1885 if(edit_bp) 1886 if(edit_bp)
1886 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), 1887 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow),
1887 (edit_bp->options & OPT_POUNCE_POPUP) ? TRUE : FALSE); 1888 (edit_bp->options & OPT_POUNCE_POPUP) ? TRUE : FALSE);
1888 else 1889 else
1889 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), FALSE); 1890 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow), FALSE);
1890 gtk_table_attach(GTK_TABLE(table), b->openwindow, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); 1891 gtk_table_attach(GTK_TABLE(table), b->openwindow, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
1891 gtk_widget_show(b->openwindow); 1892 gtk_widget_show(b->openwindow);
1892 1893
1893 b->popupnotify = gtk_check_button_new_with_label(_("Popup Notification")); 1894 b->popupnotify = gtk_check_button_new_with_label(_("Popup Notification"));
1894 if(edit_bp) 1895 if(edit_bp)
1895 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->popupnotify), 1896 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify),
1896 (edit_bp->options & OPT_POUNCE_NOTIFY) ? TRUE : FALSE); 1897 (edit_bp->options & OPT_POUNCE_NOTIFY) ? TRUE : FALSE);
1897 else 1898 else
1898 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->popupnotify), FALSE); 1899 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify), FALSE);
1899 gtk_table_attach(GTK_TABLE(table), b->popupnotify, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); 1900 gtk_table_attach(GTK_TABLE(table), b->popupnotify, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
1900 gtk_widget_show(b->popupnotify); 1901 gtk_widget_show(b->popupnotify);
1901 1902
1902 b->sendim = gtk_check_button_new_with_label(_("Send Message")); 1903 b->sendim = gtk_check_button_new_with_label(_("Send Message"));
1903 if(edit_bp) 1904 if(edit_bp)
1904 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), 1905 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim),
1905 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE); 1906 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE);
1906 else 1907 else
1907 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), TRUE); 1908 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim), TRUE);
1908 gtk_table_attach(GTK_TABLE(table), b->sendim, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); 1909 gtk_table_attach(GTK_TABLE(table), b->sendim, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
1909 gtk_widget_show(b->sendim); 1910 gtk_widget_show(b->sendim);
1910 1911
1911 b->messentry = gtk_entry_new(); 1912 b->messentry = gtk_entry_new();
1912 gtk_table_attach(GTK_TABLE(table), b->messentry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0); 1913 gtk_table_attach(GTK_TABLE(table), b->messentry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
1913 g_signal_connect(GTK_OBJECT(b->messentry), "activate", G_CALLBACK(do_new_bp), b); 1914 g_signal_connect(GTK_OBJECT(b->messentry), "activate", G_CALLBACK(do_new_bp), b);
1914 if(edit_bp) { 1915 if(edit_bp) {
1915 gtk_widget_set_sensitive(GTK_WIDGET(b->messentry), 1916 gtk_widget_set_sensitive(GTK_WIDGET(b->messentry),
1916 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE); 1917 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE);
1917 gtk_entry_set_text(GTK_ENTRY(b->messentry), edit_bp->message); 1918 gtk_entry_set_text(GTK_ENTRY(b->messentry), edit_bp->message);
1918 } 1919 }
1919 gtk_widget_show(b->messentry); 1920 gtk_widget_show(b->messentry);
1920 1921
1922 G_CALLBACK(gaim_gtk_toggle_sensitive), b->messentry); 1923 G_CALLBACK(gaim_gtk_toggle_sensitive), b->messentry);
1923 1924
1924 b->command = gtk_check_button_new_with_label(_("Execute command on pounce")); 1925 b->command = gtk_check_button_new_with_label(_("Execute command on pounce"));
1925 gtk_table_attach(GTK_TABLE(table), b->command, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); 1926 gtk_table_attach(GTK_TABLE(table), b->command, 0, 1, 2, 3, GTK_FILL, 0, 0, 0);
1926 if(edit_bp) 1927 if(edit_bp)
1927 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command), 1928 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command),
1928 (edit_bp->options & OPT_POUNCE_COMMAND) ? TRUE : FALSE); 1929 (edit_bp->options & OPT_POUNCE_COMMAND) ? TRUE : FALSE);
1929 else 1930 else
1930 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->command), FALSE); 1931 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command), FALSE);
1931 gtk_widget_show(b->command); 1932 gtk_widget_show(b->command);
1932 1933
1933 b->commentry = gtk_entry_new(); 1934 b->commentry = gtk_entry_new();
1934 gtk_table_attach(GTK_TABLE(table), b->commentry, 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, 0, 0, 0); 1935 gtk_table_attach(GTK_TABLE(table), b->commentry, 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, 0, 0, 0);
1935 g_signal_connect(GTK_OBJECT(b->commentry), "activate", G_CALLBACK(do_new_bp), b); 1936 g_signal_connect(GTK_OBJECT(b->commentry), "activate", G_CALLBACK(do_new_bp), b);
1941 else 1942 else
1942 gtk_widget_set_sensitive(GTK_WIDGET(b->commentry), FALSE); 1943 gtk_widget_set_sensitive(GTK_WIDGET(b->commentry), FALSE);
1943 gtk_widget_show(b->commentry); 1944 gtk_widget_show(b->commentry);
1944 g_signal_connect(GTK_OBJECT(b->command), "clicked", 1945 g_signal_connect(GTK_OBJECT(b->command), "clicked",
1945 G_CALLBACK(gaim_gtk_toggle_sensitive), b->commentry); 1946 G_CALLBACK(gaim_gtk_toggle_sensitive), b->commentry);
1946 1947
1947 b->sound = gtk_check_button_new_with_label(_("Play sound on pounce")); 1948 b->sound = gtk_check_button_new_with_label(_("Play sound on pounce"));
1948 if(edit_bp) 1949 if(edit_bp)
1949 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), 1950 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound),
1950 (edit_bp->options & OPT_POUNCE_SOUND) ? TRUE : FALSE); 1951 (edit_bp->options & OPT_POUNCE_SOUND) ? TRUE : FALSE);
1951 else 1952 else
1952 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sound), FALSE); 1953 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound), FALSE);
1953 gtk_table_attach(GTK_TABLE(table), b->sound, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); 1954 gtk_table_attach(GTK_TABLE(table), b->sound, 0, 1, 3, 4, GTK_FILL, 0, 0, 0);
1954 gtk_widget_show(b->sound); 1955 gtk_widget_show(b->sound);
1955 1956
1956 b->soundentry = gtk_entry_new(); 1957 b->soundentry = gtk_entry_new();
1957 gtk_table_attach(GTK_TABLE(table), b->soundentry, 1, 2, 3, 4, GTK_FILL | GTK_EXPAND, 0, 0, 0); 1958 gtk_table_attach(GTK_TABLE(table), b->soundentry, 1, 2, 3, 4, GTK_FILL | GTK_EXPAND, 0, 0, 0);
1968 /* </pounce type="action"> */ 1969 /* </pounce type="action"> */
1969 1970
1970 b->save = gtk_check_button_new_with_label(_("Save this pounce after activation")); 1971 b->save = gtk_check_button_new_with_label(_("Save this pounce after activation"));
1971 gtk_container_set_border_width(GTK_CONTAINER(b->save), 7); 1972 gtk_container_set_border_width(GTK_CONTAINER(b->save), 7);
1972 if(edit_bp) 1973 if(edit_bp)
1973 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save), 1974 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save),
1974 (edit_bp->options & OPT_POUNCE_SAVE) ? TRUE : FALSE); 1975 (edit_bp->options & OPT_POUNCE_SAVE) ? TRUE : FALSE);
1975 else 1976 else
1976 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->save), FALSE); 1977 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save), FALSE);
1977 gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0); 1978 gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0);
1978 gtk_widget_show(b->save); 1979 gtk_widget_show(b->save);
1979 1980
1980 sep = gtk_hseparator_new(); 1981 sep = gtk_hseparator_new();
1981 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); 1982 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
2061 b->gc = gc; 2062 b->gc = gc;
2062 2063
2063 GAIM_DIALOG(b->window); 2064 GAIM_DIALOG(b->window);
2064 dialogwindows = g_list_prepend(dialogwindows, b->window); 2065 dialogwindows = g_list_prepend(dialogwindows, b->window);
2065 gtk_window_set_role(GTK_WINDOW(b->window), "set_dir"); 2066 gtk_window_set_role(GTK_WINDOW(b->window), "set_dir");
2066 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2067 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
2067 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info")); 2068 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info"));
2068 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); 2069 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
2069 gtk_widget_realize(b->window); 2070 gtk_widget_realize(b->window);
2070 2071
2071 fbox = gtk_vbox_new(FALSE, 5); 2072 fbox = gtk_vbox_new(FALSE, 5);
2244 2245
2245 struct passwddlg *b = g_new0(struct passwddlg, 1); 2246 struct passwddlg *b = g_new0(struct passwddlg, 1);
2246 b->gc = gc; 2247 b->gc = gc;
2247 2248
2248 GAIM_DIALOG(b->window); 2249 GAIM_DIALOG(b->window);
2249 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2250 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
2250 gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd"); 2251 gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd");
2251 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change")); 2252 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change"));
2252 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); 2253 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
2253 gtk_widget_realize(b->window); 2254 gtk_widget_realize(b->window);
2254 dialogwindows = g_list_prepend(dialogwindows, b->window); 2255 dialogwindows = g_list_prepend(dialogwindows, b->window);
2255 2256
2256 fbox = gtk_vbox_new(FALSE, 5); 2257 fbox = gtk_vbox_new(FALSE, 5);
2257 gtk_container_border_width(GTK_CONTAINER(fbox), 5); 2258 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5);
2258 gtk_container_add(GTK_CONTAINER(b->window), fbox); 2259 gtk_container_add(GTK_CONTAINER(b->window), fbox);
2259 gtk_widget_show(fbox); 2260 gtk_widget_show(fbox);
2260 2261
2261 frame = gtk_frame_new(_("Change Password")); 2262 frame = gtk_frame_new(_("Change Password"));
2262 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); 2263 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0);
2263 gtk_widget_show(frame); 2264 gtk_widget_show(frame);
2264 2265
2265 vbox = gtk_vbox_new(FALSE, 5); 2266 vbox = gtk_vbox_new(FALSE, 5);
2266 gtk_container_border_width(GTK_CONTAINER(vbox), 5); 2267 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
2267 gtk_container_add(GTK_CONTAINER(frame), vbox); 2268 gtk_container_add(GTK_CONTAINER(frame), vbox);
2268 gtk_widget_show(vbox); 2269 gtk_widget_show(vbox);
2269 2270
2270 g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username); 2271 g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username);
2271 label = gtk_label_new(buf); 2272 label = gtk_label_new(buf);
2434 b->who = who ? g_strdup(normalize(who)) : NULL; 2435 b->who = who ? g_strdup(normalize(who)) : NULL;
2435 info_dlgs = g_slist_append(info_dlgs, b); 2436 info_dlgs = g_slist_append(info_dlgs, b);
2436 2437
2437 GAIM_DIALOG(b->window); 2438 GAIM_DIALOG(b->window);
2438 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); 2439 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim");
2439 gtk_container_border_width(GTK_CONTAINER(b->window), 5); 2440 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
2440 gtk_widget_realize(GTK_WIDGET(b->window)); 2441 gtk_widget_realize(GTK_WIDGET(b->window));
2441 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b); 2442 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b);
2442 2443
2443 bbox = gtk_vbox_new(FALSE, 5); 2444 bbox = gtk_vbox_new(FALSE, 5);
2444 gtk_container_add(GTK_CONTAINER(b->window), bbox); 2445 gtk_container_add(GTK_CONTAINER(b->window), bbox);
2452 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); 2453 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0);
2453 2454
2454 text = gtk_imhtml_new(NULL, NULL); 2455 text = gtk_imhtml_new(NULL, NULL);
2455 b->text = text; 2456 b->text = text;
2456 gtk_container_add(GTK_CONTAINER(sw), text); 2457 gtk_container_add(GTK_CONTAINER(sw), text);
2457 gtk_widget_set_usize(sw, 300, 250); 2458 gtk_widget_set_size_request(sw, 300, 250);
2458 gaim_setup_imhtml(text); 2459 gaim_setup_imhtml(text);
2459 2460
2460 ok = picture_button(b->window, _("OK"), ok_xpm); 2461 ok = picture_button(b->window, _("OK"), ok_xpm);
2461 g_signal_connect_swapped(GTK_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy), 2462 g_signal_connect_swapped(GTK_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy),
2462 GTK_OBJECT(b->window)); 2463 GTK_OBJECT(b->window));
2533 p->gc = gc; 2534 p->gc = gc;
2534 p->permit = permit; 2535 p->permit = permit;
2535 2536
2536 GAIM_DIALOG(p->window); 2537 GAIM_DIALOG(p->window);
2537 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); 2538 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5);
2538 gtk_window_set_policy(GTK_WINDOW(p->window), FALSE, FALSE, TRUE); 2539 gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE);
2539 gtk_widget_realize(p->window); 2540 gtk_widget_realize(p->window);
2540 2541
2541 dialogwindows = g_list_prepend(dialogwindows, p->window); 2542 dialogwindows = g_list_prepend(dialogwindows, p->window);
2542 2543
2543 bbox = gtk_hbox_new(FALSE, 5); 2544 bbox = gtk_hbox_new(FALSE, 5);
2665 gtk_file_selection_hide_fileop_buttons( 2666 gtk_file_selection_hide_fileop_buttons(
2666 GTK_FILE_SELECTION(gtkconv->dialogs.log)); 2667 GTK_FILE_SELECTION(gtkconv->dialogs.log));
2667 2668
2668 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log", 2669 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log",
2669 gaim_home_dir(), normalize(c->name)); 2670 gaim_home_dir(), normalize(c->name));
2670 gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.log), 2671 g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type",
2671 "log dialog"); 2672 "log dialog");
2672 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log), 2673 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log),
2673 buf); 2674 buf);
2674 g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event", 2675 g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event",
2675 G_CALLBACK(delete_event_dialog), c); 2676 G_CALLBACK(delete_event_dialog), c);
2734 GtkWidget *frame; 2735 GtkWidget *frame;
2735 2736
2736 struct findbyinfo *b = g_new0(struct findbyinfo, 1); 2737 struct findbyinfo *b = g_new0(struct findbyinfo, 1);
2737 b->gc = gc; 2738 b->gc = gc;
2738 GAIM_DIALOG(b->window); 2739 GAIM_DIALOG(b->window);
2739 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2740 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
2740 gtk_window_set_role(GTK_WINDOW(b->window), "find_info"); 2741 gtk_window_set_role(GTK_WINDOW(b->window), "find_info");
2741 gtk_widget_show(b->window); 2742 gtk_widget_show(b->window);
2742 2743
2743 dialogwindows = g_list_prepend(dialogwindows, b->window); 2744 dialogwindows = g_list_prepend(dialogwindows, b->window);
2744 2745
2871 gtk_widget_show(fbox); 2872 gtk_widget_show(fbox);
2872 2873
2873 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info")); 2874 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info"));
2874 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); 2875 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry);
2875 gtk_container_add(GTK_CONTAINER(b->window), fbox); 2876 gtk_container_add(GTK_CONTAINER(b->window), fbox);
2876 gtk_container_border_width(GTK_CONTAINER(b->window), 5); 2877 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5);
2877 gtk_widget_realize(b->window); 2878 gtk_widget_realize(b->window);
2878 2879
2879 gtk_widget_show(b->window); 2880 gtk_widget_show(b->window);
2880 } 2881 }
2881 2882
2890 2891
2891 struct findbyemail *b = g_new0(struct findbyemail, 1); 2892 struct findbyemail *b = g_new0(struct findbyemail, 1);
2892 if (g_slist_find(connections, gc)) 2893 if (g_slist_find(connections, gc))
2893 b->gc = gc; 2894 b->gc = gc;
2894 GAIM_DIALOG(b->window); 2895 GAIM_DIALOG(b->window);
2895 gtk_window_set_policy(GTK_WINDOW(b->window), FALSE, TRUE, TRUE); 2896 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE);
2896 gtk_window_set_role(GTK_WINDOW(b->window), "find_email"); 2897 gtk_window_set_role(GTK_WINDOW(b->window), "find_email");
2897 gtk_widget_realize(b->window); 2898 gtk_widget_realize(b->window);
2898 dialogwindows = g_list_prepend(dialogwindows, b->window); 2899 dialogwindows = g_list_prepend(dialogwindows, b->window);
2899 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); 2900 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window);
2900 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Email")); 2901 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Email"));
2942 2943
2943 gtkconv = GAIM_GTK_CONVERSATION(c); 2944 gtkconv = GAIM_GTK_CONVERSATION(c);
2944 2945
2945 if (gtkconv->toolbar.link) { 2946 if (gtkconv->toolbar.link) {
2946 gaim_gtk_set_state_lock(TRUE); 2947 gaim_gtk_set_state_lock(TRUE);
2947 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), 2948 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
2948 FALSE); 2949 FALSE);
2949 gaim_gtk_set_state_lock(FALSE); 2950 gaim_gtk_set_state_lock(FALSE);
2950 } 2951 }
2951 2952
2952 destroy_dialog(NULL, gtkconv->toolbar.link); 2953 destroy_dialog(NULL, gtkconv->toolbar.link);
2977 g_free(open_tag); 2978 g_free(open_tag);
2978 } 2979 }
2979 2980
2980 if (gtkconv->toolbar.link) { 2981 if (gtkconv->toolbar.link) {
2981 gaim_gtk_set_state_lock(TRUE); 2982 gaim_gtk_set_state_lock(TRUE);
2982 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), 2983 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link),
2983 FALSE); 2984 FALSE);
2984 gaim_gtk_set_state_lock(FALSE); 2985 gaim_gtk_set_state_lock(FALSE);
2985 } 2986 }
2986 2987
2987 gtkconv->dialogs.link = NULL; 2988 gtkconv->dialogs.link = NULL;
3096 3097
3097 gtkconv = GAIM_GTK_CONVERSATION(c); 3098 gtkconv = GAIM_GTK_CONVERSATION(c);
3098 3099
3099 if (gtkconv->toolbar.fgcolor && widget) { 3100 if (gtkconv->toolbar.fgcolor && widget) {
3100 gaim_gtk_set_state_lock(TRUE); 3101 gaim_gtk_set_state_lock(TRUE);
3101 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), 3102 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor),
3102 FALSE); 3103 FALSE);
3103 gaim_gtk_set_state_lock(FALSE); 3104 gaim_gtk_set_state_lock(FALSE);
3104 } 3105 }
3105 3106
3106 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); 3107 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color);
3114 3115
3115 gtkconv = GAIM_GTK_CONVERSATION(c); 3116 gtkconv = GAIM_GTK_CONVERSATION(c);
3116 3117
3117 if (gtkconv->toolbar.bgcolor && widget) { 3118 if (gtkconv->toolbar.bgcolor && widget) {
3118 gaim_gtk_set_state_lock(TRUE); 3119 gaim_gtk_set_state_lock(TRUE);
3119 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), 3120 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor),
3120 FALSE); 3121 FALSE);
3121 gaim_gtk_set_state_lock(FALSE); 3122 gaim_gtk_set_state_lock(FALSE);
3122 } 3123 }
3123 3124
3124 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); 3125 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color);
3135 3136
3136 open_tag = g_malloc(30); 3137 open_tag = g_malloc(30);
3137 3138
3138 gtk_color_selection_get_current_color(colorsel, &text_color); 3139 gtk_color_selection_get_current_color(colorsel, &text_color);
3139 3140
3140 c = gtk_object_get_user_data(GTK_OBJECT(colorsel)); 3141 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
3141 /* GTK_IS_EDITABLE(c->entry); huh? */ 3142 /* GTK_IS_EDITABLE(c->entry); huh? */
3142 3143
3143 gtkconv = GAIM_GTK_CONVERSATION(c); 3144 gtkconv = GAIM_GTK_CONVERSATION(c);
3144 3145
3145 gtkconv->fg_color = text_color; 3146 gtkconv->fg_color = text_color;
3165 3166
3166 open_tag = g_malloc(30); 3167 open_tag = g_malloc(30);
3167 3168
3168 gtk_color_selection_get_current_color(colorsel, &text_color); 3169 gtk_color_selection_get_current_color(colorsel, &text_color);
3169 3170
3170 c = gtk_object_get_user_data(GTK_OBJECT(colorsel)); 3171 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation");
3171 /* GTK_IS_EDITABLE(c->entry); huh? */ 3172 /* GTK_IS_EDITABLE(c->entry); huh? */
3172 3173
3173 gtkconv = GAIM_GTK_CONVERSATION(c); 3174 gtkconv = GAIM_GTK_CONVERSATION(c);
3174 3175
3175 gtkconv->bg_color = text_color; 3176 gtkconv->bg_color = text_color;
3215 if (!gtkconv->dialogs.fg_color) { 3216 if (!gtkconv->dialogs.fg_color) {
3216 3217
3217 gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color")); 3218 gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color"));
3218 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; 3219 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel;
3219 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); 3220 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor);
3220 gtk_object_set_user_data(GTK_OBJECT(colorsel), c); 3221 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
3221 3222
3222 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.fg_color), "delete_event", 3223 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.fg_color), "delete_event",
3223 G_CALLBACK(delete_event_dialog), c); 3224 G_CALLBACK(delete_event_dialog), c);
3224 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button), 3225 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button),
3225 "clicked", G_CALLBACK(do_fgcolor), colorsel); 3226 "clicked", G_CALLBACK(do_fgcolor), colorsel);
3263 if (!gtkconv->dialogs.bg_color) { 3264 if (!gtkconv->dialogs.bg_color) {
3264 3265
3265 gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color")); 3266 gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color"));
3266 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; 3267 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel;
3267 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); 3268 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor);
3268 gtk_object_set_user_data(GTK_OBJECT(colorsel), c); 3269 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c);
3269 3270
3270 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.bg_color), "delete_event", 3271 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.bg_color), "delete_event",
3271 G_CALLBACK(delete_event_dialog), c); 3272 G_CALLBACK(delete_event_dialog), c);
3272 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button), 3273 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button),
3273 "clicked", G_CALLBACK(do_bgcolor), colorsel); 3274 "clicked", G_CALLBACK(do_bgcolor), colorsel);
3292 3293
3293 gtkconv = GAIM_GTK_CONVERSATION(c); 3294 gtkconv = GAIM_GTK_CONVERSATION(c);
3294 3295
3295 if (gtkconv->toolbar.normal_size && widget) { 3296 if (gtkconv->toolbar.normal_size && widget) {
3296 gaim_gtk_set_state_lock(TRUE); 3297 gaim_gtk_set_state_lock(TRUE);
3297 gtk_toggle_button_set_state( 3298 gtk_toggle_button_set_active(
3298 GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE); 3299 GTK_TOGGLE_BUTTON(gtkconv->toolbar.normal_size), FALSE);
3299 gaim_gtk_set_state_lock(FALSE); 3300 gaim_gtk_set_state_lock(FALSE);
3300 } 3301 }
3301 3302
3302 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); 3303 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font);
3308 { 3309 {
3309 /* this could be expanded to include font size, weight, etc. 3310 /* this could be expanded to include font size, weight, etc.
3310 but for now only works with font face */ 3311 but for now only works with font face */
3311 int i = 0; 3312 int i = 0;
3312 char *fontname; 3313 char *fontname;
3313 struct gaim_conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); 3314 struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel),
3315 "gaim_conversation");
3314 3316
3315 if (c) { 3317 if (c) {
3316 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); 3318 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel));
3317 while(fontname[i] && !isdigit(fontname[i])) { 3319 while(fontname[i] && !isdigit(fontname[i])) {
3318 i++; 3320 i++;
3319 } 3321 }
3320 fontname[i] = 0; 3322 fontname[i] = 0;
3321 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); 3323 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname);
3322 } else { 3324 } else {
3355 } else { 3357 } else {
3356 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), 3358 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld),
3357 DEFAULT_FONT_FACE " 12"); 3359 DEFAULT_FONT_FACE " 12");
3358 } 3360 }
3359 3361
3360 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL);
3361 g_signal_connect(GTK_OBJECT(fontseld), "delete_event", 3362 g_signal_connect(GTK_OBJECT(fontseld), "delete_event",
3362 G_CALLBACK(destroy_fontsel), NULL); 3363 G_CALLBACK(destroy_fontsel), NULL);
3363 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), 3364 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button),
3364 "clicked", G_CALLBACK(destroy_fontsel), NULL); 3365 "clicked", G_CALLBACK(destroy_fontsel), NULL);
3365 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", 3366 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked",
3371 } 3372 }
3372 3373
3373 if (!gtkconv->dialogs.font) { 3374 if (!gtkconv->dialogs.font) {
3374 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); 3375 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font"));
3375 3376
3376 if (font) 3377 g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c);
3377 gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.font), c);
3378 else
3379 gtk_object_set_user_data(GTK_OBJECT(gtkconv->dialogs.font), NULL);
3380 3378
3381 if (gtkconv->fontface[0]) { 3379 if (gtkconv->fontface[0]) {
3382 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); 3380 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface);
3383 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), 3381 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font),
3384 fonttif); 3382 fonttif);
3459 c = (struct gaim_connection *)g->data; 3457 c = (struct gaim_connection *)g->data;
3460 g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name); 3458 g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name);
3461 opt = gtk_menu_item_new_with_label(buf); 3459 opt = gtk_menu_item_new_with_label(buf);
3462 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_import_gc), c); 3460 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_import_gc), c);
3463 gtk_widget_show(opt); 3461 gtk_widget_show(opt);
3464 gtk_menu_append(GTK_MENU(menu), opt); 3462 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt);
3465 g = g->next; 3463 g = g->next;
3466 } 3464 }
3467 3465
3468 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); 3466 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu);
3469 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); 3467 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0);
3522 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); 3520 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list);
3523 } 3521 }
3524 3522
3525 save_prefs(); 3523 save_prefs();
3526 do_away_menu(); 3524 do_away_menu();
3527 if (prefs_away_list != NULL)
3528 gtk_list_select_item(GTK_LIST(prefs_away_list), g_slist_index(away_messages, am));
3529 3525
3530 return am; 3526 return am;
3531 } 3527 }
3532 3528
3533 int check_away_mess(struct create_away *ca, int type) 3529 int check_away_mess(struct create_away *ca, int type)
3605 3601
3606 struct create_away *ca = g_new0(struct create_away, 1); 3602 struct create_away *ca = g_new0(struct create_away, 1);
3607 3603
3608 /* Set up window */ 3604 /* Set up window */
3609 GAIM_DIALOG(ca->window); 3605 GAIM_DIALOG(ca->window);
3610 gtk_widget_set_usize(ca->window, -1, 250); 3606 gtk_widget_set_size_request(ca->window, -1, 250);
3611 gtk_container_border_width(GTK_CONTAINER(ca->window), 5); 3607 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5);
3612 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); 3608 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess");
3613 gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message")); 3609 gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message"));
3614 g_signal_connect(GTK_OBJECT(ca->window), "delete_event", 3610 g_signal_connect(GTK_OBJECT(ca->window), "delete_event",
3615 G_CALLBACK(destroy_dialog), ca->window); 3611 G_CALLBACK(destroy_dialog), ca->window);
3616 gtk_widget_realize(ca->window); 3612 gtk_widget_realize(ca->window);
3706 3702
3707 gtkconv = GAIM_GTK_CONVERSATION(c); 3703 gtkconv = GAIM_GTK_CONVERSATION(c);
3708 3704
3709 if (gtkconv->toolbar.smiley) { 3705 if (gtkconv->toolbar.smiley) {
3710 gaim_gtk_set_state_lock(TRUE); 3706 gaim_gtk_set_state_lock(TRUE);
3711 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), 3707 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley),
3712 FALSE); 3708 FALSE);
3713 gaim_gtk_set_state_lock(FALSE); 3709 gaim_gtk_set_state_lock(FALSE);
3714 } 3710 }
3715 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); 3711 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley);
3716 gtk_widget_destroy(gtkconv->dialogs.smiley); 3712 gtk_widget_destroy(gtkconv->dialogs.smiley);
3777 return; 3773 return;
3778 3774
3779 win = GAIM_GTK_WINDOW(gaim_conversation_get_window(c))->window; 3775 win = GAIM_GTK_WINDOW(gaim_conversation_get_window(c))->window;
3780 3776
3781 GAIM_DIALOG(dialog); 3777 GAIM_DIALOG(dialog);
3782 gtk_window_set_policy(GTK_WINDOW(dialog), FALSE, FALSE, TRUE); 3778 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE);
3783 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); 3779 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog");
3784 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); 3780 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE);
3785 3781
3786 /* setup boxes */ 3782 /* setup boxes */
3787 vbox = gtk_vbox_new(TRUE, 5); 3783 vbox = gtk_vbox_new(TRUE, 5);
3826 3822
3827 gtk_container_add(GTK_CONTAINER(dialog), vbox); 3823 gtk_container_add(GTK_CONTAINER(dialog), vbox);
3828 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); 3824 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5);
3829 3825
3830 /* connect signals */ 3826 /* connect signals */
3831 gtk_object_set_user_data(GTK_OBJECT(dialog), "smiley dialog"); 3827 g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog");
3832 g_signal_connect(G_OBJECT(dialog), "delete_event", 3828 g_signal_connect(G_OBJECT(dialog), "delete_event",
3833 G_CALLBACK(delete_event_dialog), c); 3829 G_CALLBACK(delete_event_dialog), c);
3834 3830
3835 /* show everything */ 3831 /* show everything */
3836 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); 3832 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!"));
3860 GtkWidget *bbox; 3856 GtkWidget *bbox;
3861 GtkWidget *cancel; 3857 GtkWidget *cancel;
3862 static GtkWidget *add = NULL; 3858 static GtkWidget *add = NULL;
3863 GtkWidget *label; 3859 GtkWidget *label;
3864 GtkWidget *topbox; 3860 GtkWidget *topbox;
3865 static int a, c;
3866 3861
3867 if (aliasdlg) 3862 if (aliasdlg)
3868 gtk_widget_destroy(aliasdlg); 3863 gtk_widget_destroy(aliasdlg);
3869 3864
3870 GAIM_DIALOG(aliasdlg); 3865 GAIM_DIALOG(aliasdlg);
3871 gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE); 3866 gtk_window_set_resizable(GTK_WINDOW(aliasdlg), FALSE);
3872 gtk_window_set_role(GTK_WINDOW(aliasdlg), "alias_dialog"); 3867 gtk_window_set_role(GTK_WINDOW(aliasdlg), "alias_dialog");
3873 gtk_widget_realize(aliasdlg); 3868 gtk_widget_realize(aliasdlg);
3874 dialogwindows = g_list_prepend(dialogwindows, aliasdlg); 3869 dialogwindows = g_list_prepend(dialogwindows, aliasdlg);
3875 3870
3876 topbox = gtk_vbox_new(FALSE, 5); 3871 topbox = gtk_vbox_new(FALSE, 5);
3884 label = gtk_label_new(_("Buddy")); 3879 label = gtk_label_new(_("Buddy"));
3885 gtk_widget_show(bbox); 3880 gtk_widget_show(bbox);
3886 gtk_widget_show(label); 3881 gtk_widget_show(label);
3887 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5); 3882 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5);
3888 gtk_box_pack_end(GTK_BOX(bbox), aliasentry, FALSE, FALSE, 5); 3883 gtk_box_pack_end(GTK_BOX(bbox), aliasentry, FALSE, FALSE, 5);
3889 gtk_entry_set_editable(GTK_ENTRY(aliasentry), FALSE); 3884 gtk_editable_set_editable(GTK_EDITABLE(aliasentry), FALSE);
3890 gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0); 3885 gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0);
3891 3886
3892 /* And the buddy alias box */ 3887 /* And the buddy alias box */
3893 bbox = gtk_hbox_new(FALSE, 5); 3888 bbox = gtk_hbox_new(FALSE, 5);
3894 label = gtk_label_new(_("Alias")); 3889 label = gtk_label_new(_("Alias"));
3914 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); 3909 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5);
3915 3910
3916 /* Handle closes right */ 3911 /* Handle closes right */
3917 g_signal_connect(GTK_OBJECT(aliasdlg), "destroy", G_CALLBACK(destroy_dialog), aliasdlg); 3912 g_signal_connect(GTK_OBJECT(aliasdlg), "destroy", G_CALLBACK(destroy_dialog), aliasdlg);
3918 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), aliasdlg); 3913 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), aliasdlg);
3919 a = g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b); 3914 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b);
3920 c = g_signal_connect(GTK_OBJECT(aliasname), "activate", G_CALLBACK(do_alias_bud), b); 3915 g_signal_connect(GTK_OBJECT(aliasname), "activate", G_CALLBACK(do_alias_bud), b);
3921 /* Finish up */ 3916 /* Finish up */
3922 gtk_widget_show(add); 3917 gtk_widget_show(add);
3923 gtk_widget_show(cancel); 3918 gtk_widget_show(cancel);
3924 gtk_widget_show(aliasentry); 3919 gtk_widget_show(aliasentry);
3925 gtk_widget_show(aliasname); 3920 gtk_widget_show(aliasname);
3950 FILE *fp_old, *fp_new; 3945 FILE *fp_old, *fp_new;
3951 char filename[PATHSIZE]; 3946 char filename[PATHSIZE];
3952 char *name; 3947 char *name;
3953 char *tmp; 3948 char *tmp;
3954 3949
3955 name = gtk_object_get_user_data(GTK_OBJECT(filesel)); 3950 name = g_object_get_data(G_OBJECT(filesel), "name");
3956 tmp = gaim_user_dir(); 3951 tmp = gaim_user_dir();
3957 g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, 3952 g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp,
3958 name ? normalize(name) : "system", name ? ".log" : ""); 3953 name ? normalize(name) : "system", name ? ".log" : "");
3959 3954
3960 file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); 3955 file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
4003 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); 3998 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf);
4004 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), 3999 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button),
4005 "clicked", G_CALLBACK(do_save_log), filesel); 4000 "clicked", G_CALLBACK(do_save_log), filesel);
4006 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), 4001 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button),
4007 "clicked", G_CALLBACK(destroy_dialog), filesel); 4002 "clicked", G_CALLBACK(destroy_dialog), filesel);
4008 gtk_object_set_user_data(GTK_OBJECT(filesel), name); 4003 g_object_set_data(G_OBJECT(filesel), "name", name);
4009 4004
4010 gtk_widget_realize(filesel); 4005 gtk_widget_realize(filesel);
4011 gtk_widget_show(filesel); 4006 gtk_widget_show(filesel);
4012 4007
4013 return; 4008 return;
4027 if ((remove(filename)) == -1) { 4022 if ((remove(filename)) == -1) {
4028 g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); 4023 g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename);
4029 do_error_dialog(buf, strerror(errno), GAIM_ERROR); 4024 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
4030 } 4025 }
4031 4026
4032 window = gtk_object_get_user_data(GTK_OBJECT(w)); 4027 window = g_object_get_data(G_OBJECT(w), "log_window");
4033 destroy_dialog(NULL, window); 4028 destroy_dialog(NULL, window);
4034 } 4029 }
4035 4030
4036 static void show_clear_log(GtkWidget *w, gchar *name) 4031 static void show_clear_log(GtkWidget *w, gchar *name)
4037 { 4032 {
4044 4039
4045 GAIM_DIALOG(window); 4040 GAIM_DIALOG(window);
4046 gtk_window_set_role(GTK_WINDOW(window), "dialog"); 4041 gtk_window_set_role(GTK_WINDOW(window), "dialog");
4047 gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Clear Log")); 4042 gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Clear Log"));
4048 gtk_container_set_border_width(GTK_CONTAINER(window), 10); 4043 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
4049 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); 4044 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
4050 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); 4045 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
4051 gtk_widget_realize(window); 4046 gtk_widget_realize(window);
4052 4047
4053 box = gtk_vbox_new(FALSE, 5); 4048 box = gtk_vbox_new(FALSE, 5);
4054 gtk_container_add(GTK_CONTAINER(window), box); 4049 gtk_container_add(GTK_CONTAINER(window), box);
4062 hbox = gtk_hbox_new(FALSE, 0); 4057 hbox = gtk_hbox_new(FALSE, 0);
4063 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); 4058 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
4064 gtk_widget_show(hbox); 4059 gtk_widget_show(hbox);
4065 4060
4066 button = picture_button(window, _("Okay"), ok_xpm); 4061 button = picture_button(window, _("Okay"), ok_xpm);
4067 gtk_object_set_user_data(GTK_OBJECT(button), gtk_object_get_user_data(GTK_OBJECT(w))); 4062 g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w),
4063 "log_window"));
4068 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name); 4064 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name);
4069 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); 4065 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window);
4070 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); 4066 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5);
4071 gtk_widget_show(button); 4067 gtk_widget_show(button);
4072 4068
4078 gtk_widget_show_all(window); 4074 gtk_widget_show_all(window);
4079 4075
4080 return; 4076 return;
4081 } 4077 }
4082 4078
4083 static void log_show_convo(GtkWidget *w, struct view_log *view) 4079 static void log_show_convo(struct view_log *view)
4084 { 4080 {
4085 gchar buf[BUF_LONG]; 4081 gchar buf[BUF_LONG];
4086 FILE *fp; 4082 FILE *fp;
4087 char filename[256]; 4083 char filename[256];
4088 int i=0; 4084 int i=0;
4103 do_error_dialog(buf, strerror(errno), GAIM_ERROR); 4099 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
4104 return; 4100 return;
4105 } 4101 }
4106 4102
4107 gtk_widget_set_sensitive(view->bbox, FALSE); 4103 gtk_widget_set_sensitive(view->bbox, FALSE);
4108 gtk_signal_disconnect_by_func(GTK_OBJECT(view->window), 4104 g_signal_handlers_disconnect_by_func(G_OBJECT(view->window),
4109 G_CALLBACK(destroy_dialog), view->window); 4105 G_CALLBACK(destroy_dialog), view->window);
4110 block = g_signal_connect(GTK_OBJECT(view->window), "delete_event", 4106 block = g_signal_connect(GTK_OBJECT(view->window), "delete_event",
4111 G_CALLBACK(dont_destroy), view->window); 4107 G_CALLBACK(dont_destroy), view->window);
4112 4108
4113 fseek(fp, view->offset, SEEK_SET); 4109 fseek(fp, view->offset, SEEK_SET);
4141 } 4137 }
4142 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); 4138 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options);
4143 gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options); 4139 gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options);
4144 4140
4145 gtk_widget_set_sensitive(view->bbox, TRUE); 4141 gtk_widget_set_sensitive(view->bbox, TRUE);
4146 gtk_signal_disconnect(GTK_OBJECT(view->window), block); 4142 g_signal_handler_disconnect(G_OBJECT(view->window), block);
4147 g_signal_connect(GTK_OBJECT(view->window), "delete_event", 4143 g_signal_connect(GTK_OBJECT(view->window), "delete_event",
4148 G_CALLBACK(destroy_dialog), view->window); 4144 G_CALLBACK(destroy_dialog), view->window);
4149 g_string_free(string, TRUE); 4145 g_string_free(string, TRUE);
4150 fclose(fp); 4146 fclose(fp);
4151 } 4147 }
4152 4148
4149 static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model)
4150 {
4151 GValue val = { 0, };
4152 GtkTreeIter iter;
4153
4154 if(!gtk_tree_selection_get_selected(sel, &model, &iter))
4155 return;
4156 gtk_tree_model_get_value(model, &iter, 1, &val);
4157 log_show_convo(g_value_get_pointer(&val));
4158 }
4159
4153 static void des_view_item(GtkObject *obj, struct view_log *view) 4160 static void des_view_item(GtkObject *obj, struct view_log *view)
4154 { 4161 {
4155 if (view->name) 4162 if (view->name)
4156 g_free(view->name); 4163 g_free(view->name);
4157 g_free(view); 4164 g_free(view);
4158 } 4165 }
4159 4166
4160 static void des_log_win(GtkObject *win, gpointer data) 4167 static void des_log_win(GObject *win, gpointer data)
4161 { 4168 {
4162 char *x = gtk_object_get_user_data(win); 4169 char *x = g_object_get_data(win, "log_window");
4163 if (x) 4170 if (x)
4164 g_free(x); 4171 g_free(x);
4165 } 4172 }
4166 4173
4167 void conv_show_log(GtkWidget *w, gpointer data) 4174 void conv_show_log(GtkWidget *w, gpointer data)
4190 GtkWidget *sw; 4197 GtkWidget *sw;
4191 GtkWidget *layout; 4198 GtkWidget *layout;
4192 GtkWidget *close_button; 4199 GtkWidget *close_button;
4193 GtkWidget *clear_button; 4200 GtkWidget *clear_button;
4194 GtkWidget *save_button; 4201 GtkWidget *save_button;
4195 GtkWidget *list = NULL; 4202 GtkListStore *list_store;
4196 GList *item_list = NULL; 4203 GtkWidget *tree_view;
4204 GtkTreeSelection *sel = NULL;
4205 GtkTreePath *path;
4197 GtkWidget *item = NULL; 4206 GtkWidget *item = NULL;
4198 GtkWidget *last = NULL; 4207 GtkWidget *last = NULL;
4199 GtkWidget *frame; 4208 GtkWidget *frame;
4200 struct view_log *view; 4209 struct view_log *view;
4201 char *name = nm ? g_strdup(nm) : NULL; 4210 char *name = nm ? g_strdup(nm) : NULL;
4202 4211
4203 int options; 4212 int options;
4204 guint block; 4213 guint block;
4205 char convo_start[32]; 4214 char convo_start[32];
4206 long offset = 0; 4215 long offset = 0;
4207 unsigned int i = 0;
4208 4216
4209 options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL; 4217 options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL;
4210 if (convo_options & OPT_CONVO_IGNORE_COLOUR) 4218 if (convo_options & OPT_CONVO_IGNORE_COLOUR)
4211 options ^= GTK_IMHTML_NO_COLOURS; 4219 options ^= GTK_IMHTML_NO_COLOURS;
4212 if (convo_options & OPT_CONVO_IGNORE_FONTS) 4220 if (convo_options & OPT_CONVO_IGNORE_FONTS)
4213 options ^= GTK_IMHTML_NO_FONTS; 4221 options ^= GTK_IMHTML_NO_FONTS;
4214 if (convo_options & OPT_CONVO_IGNORE_SIZES) 4222 if (convo_options & OPT_CONVO_IGNORE_SIZES)
4215 options ^= GTK_IMHTML_NO_SIZES; 4223 options ^= GTK_IMHTML_NO_SIZES;
4216 4224
4217 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 4225 window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4218 gtk_object_set_user_data(GTK_OBJECT(window), name); 4226 g_object_set_data(G_OBJECT(window), "name", name);
4219 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL); 4227 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL);
4220 gtk_window_set_role(GTK_WINDOW(window), "log"); 4228 gtk_window_set_role(GTK_WINDOW(window), "log");
4221 if (name) 4229 if (name)
4222 g_snprintf(buf, BUF_LONG, _("Gaim - Conversations with %s"), name); 4230 g_snprintf(buf, BUF_LONG, _("Gaim - Conversations with %s"), name);
4223 else 4231 else
4224 g_snprintf(buf, BUF_LONG, _("Gaim - System Log")); 4232 g_snprintf(buf, BUF_LONG, _("Gaim - System Log"));
4225 gtk_window_set_title(GTK_WINDOW(window), buf); 4233 gtk_window_set_title(GTK_WINDOW(window), buf);
4226 gtk_container_set_border_width(GTK_CONTAINER(window), 10); 4234 gtk_container_set_border_width(GTK_CONTAINER(window), 10);
4227 gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, TRUE); 4235 gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
4228 block = g_signal_connect(GTK_OBJECT(window), "delete_event", 4236 block = g_signal_connect(GTK_OBJECT(window), "delete_event",
4229 G_CALLBACK(dont_destroy), window); 4237 G_CALLBACK(dont_destroy), window);
4230 gtk_widget_realize(window); 4238 gtk_widget_realize(window);
4231 4239
4232 layout = gtk_imhtml_new(NULL, NULL); 4240 layout = gtk_imhtml_new(NULL, NULL);
4245 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename); 4253 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename);
4246 do_error_dialog(buf, strerror(errno), GAIM_ERROR); 4254 do_error_dialog(buf, strerror(errno), GAIM_ERROR);
4247 return; 4255 return;
4248 } 4256 }
4249 4257
4250 list = gtk_list_new(); 4258 list_store = gtk_list_store_new(2,
4259 G_TYPE_STRING,
4260 G_TYPE_POINTER);
4261
4262 tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
4263
4264 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE);
4265
4266 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view),
4267 -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL);
4268
4269 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
4270 g_signal_connect(G_OBJECT(sel), "changed",
4271 G_CALLBACK(log_select_convo),
4272 NULL);
4251 4273
4252 frame = gtk_frame_new(_("Date")); 4274 frame = gtk_frame_new(_("Date"));
4253 gtk_widget_show(frame); 4275 gtk_widget_show(frame);
4254 4276
4255 sw = gtk_scrolled_window_new(NULL, NULL); 4277 sw = gtk_scrolled_window_new(NULL, NULL);
4256 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); 4278 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
4257 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), list); 4279 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view);
4258 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), 4280 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
4259 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 4281 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
4260 gtk_widget_set_usize(sw, 220, 220); 4282 gtk_widget_set_size_request(sw, 220, 220);
4261 gtk_container_add(GTK_CONTAINER(frame), sw); 4283 gtk_container_add(GTK_CONTAINER(frame), sw);
4262 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); 4284 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
4263 4285
4264 while (fgets(buf, BUF_LONG, fp)) { 4286 while (fgets(buf, BUF_LONG, fp)) {
4265 if (strstr(buf, "---- New C")) { 4287 if (strstr(buf, "---- New C")) {
4266 int length; 4288 int length;
4267 char *temp = strchr(buf, '@'); 4289 char *temp = strchr(buf, '@');
4290 GtkTreeIter iter;
4268 4291
4269 if (temp == NULL || strlen(temp) < 2) 4292 if (temp == NULL || strlen(temp) < 2)
4270 continue; 4293 continue;
4271
4272 if (i == 1 && item_list) {
4273 item_list = g_list_remove(item_list, last);
4274 last = NULL;
4275 }
4276
4277 i = 0;
4278 4294
4279 temp++; 4295 temp++;
4280 length = strcspn(temp, "-"); 4296 length = strcspn(temp, "-");
4281 if (length > 31) length = 31; 4297 if (length > 31) length = 31;
4282 4298
4283 offset = ftell(fp); 4299 offset = ftell(fp);
4284 g_snprintf(convo_start, length, "%s", temp); 4300 g_snprintf(convo_start, length, "%s", temp);
4285 item = gtk_list_item_new_with_label(convo_start); 4301 gtk_list_store_append(list_store, &iter);
4286 view = g_new0(struct view_log, 1); 4302 view = g_new0(struct view_log, 1);
4287 view->options = options; 4303 view->options = options;
4288 view->offset = offset; 4304 view->offset = offset;
4289 view->name = g_strdup(name); 4305 view->name = g_strdup(name);
4290 view->bbox = bbox; 4306 view->bbox = bbox;
4291 view->window = window; 4307 view->window = window;
4292 view->layout = layout; 4308 view->layout = layout;
4293 g_signal_connect(GTK_OBJECT(item), "select", 4309 gtk_list_store_set(list_store, &iter,
4294 G_CALLBACK(log_show_convo), view); 4310 0, convo_start,
4295 g_signal_connect(GTK_OBJECT(item), "destroy", 4311 1, view,
4312 -1);
4313 g_signal_connect(G_OBJECT(window), "destroy",
4296 G_CALLBACK(des_view_item), view); 4314 G_CALLBACK(des_view_item), view);
4297 last = item; 4315 last = item;
4298 item_list = g_list_append(item_list, item);
4299
4300 gtk_widget_show(item);
4301 } 4316 }
4302 i++;
4303 } 4317 }
4304 fclose(fp); 4318 fclose(fp);
4305 if (i == 1 && item_list) 4319
4306 item_list = g_list_remove(item_list, item); 4320 path = gtk_tree_path_new_first();
4307 4321 gtk_tree_selection_select_path(sel, path);
4308 if (item_list) 4322 gtk_tree_path_free(path);
4309 gtk_list_insert_items(GTK_LIST(list), item_list, 0 ); 4323
4310 } 4324 g_object_unref(G_OBJECT(list_store));
4311 4325 }
4312 gtk_signal_disconnect(GTK_OBJECT(window), block); 4326
4327
4328 g_signal_handler_disconnect(GTK_OBJECT(window), block);
4313 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); 4329 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window);
4314 4330
4315 frame = gtk_frame_new(_("Conversation")); 4331 frame = gtk_frame_new(_("Conversation"));
4316 gtk_widget_show(frame); 4332 gtk_widget_show(frame);
4317 4333
4318 sw = gtk_scrolled_window_new(NULL, NULL); 4334 sw = gtk_scrolled_window_new(NULL, NULL);
4319 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); 4335 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
4320 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 4336 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
4321 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); 4337 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN);
4322 gtk_widget_set_usize(sw, 390, 220); 4338 gtk_widget_set_size_request(sw, 390, 220);
4323 gtk_container_add(GTK_CONTAINER(frame), sw); 4339 gtk_container_add(GTK_CONTAINER(frame), sw);
4324 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); 4340 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0);
4325 4341
4326 g_signal_connect(GTK_OBJECT(layout), "url_clicked", G_CALLBACK(open_url), NULL); 4342 g_signal_connect(GTK_OBJECT(layout), "url_clicked", G_CALLBACK(open_url), NULL);
4327 gtk_container_add(GTK_CONTAINER(sw), layout); 4343 gtk_container_add(GTK_CONTAINER(sw), layout);
4333 close_button = picture_button(window, _("Close"), cancel_xpm); 4349 close_button = picture_button(window, _("Close"), cancel_xpm);
4334 gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5); 4350 gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5);
4335 g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window); 4351 g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window);
4336 4352
4337 clear_button = picture_button(window, _("Clear"), close_xpm); 4353 clear_button = picture_button(window, _("Clear"), close_xpm);
4338 gtk_object_set_user_data(GTK_OBJECT(clear_button), window); 4354 g_object_set_data(G_OBJECT(clear_button), "log_window", window);
4339 gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5); 4355 gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5);
4340 g_signal_connect(GTK_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name); 4356 g_signal_connect(GTK_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name);
4341 4357
4342 save_button = picture_button(window, _("Save"), save_xpm); 4358 save_button = picture_button(window, _("Save"), save_xpm);
4343 gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5); 4359 gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5);
4344 g_signal_connect(GTK_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name); 4360 g_signal_connect(GTK_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name);
4345 4361
4346 gtk_widget_show_all(window); 4362 gtk_widget_show_all(window);
4347 4363
4348 if (!name) { 4364 if (!name) {
4349 view = g_new0(struct view_log, 1); 4365 view = g_new0(struct view_log, 1);
4350 view->options = options; 4366 view->options = options;
4351 view->name = NULL; 4367 view->name = NULL;
4352 view->bbox = bbox; 4368 view->bbox = bbox;
4353 view->window = window; 4369 view->window = window;
4354 view->layout = layout; 4370 view->layout = layout;
4355 log_show_convo(layout, view); 4371 log_show_convo(view);
4356 g_signal_connect(GTK_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view); 4372 g_signal_connect(GTK_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view);
4357 } else { 4373 }
4358 gtk_list_select_item(GTK_LIST(list), 0); 4374
4359 }
4360
4361 gtk_widget_set_sensitive(bbox, TRUE); 4375 gtk_widget_set_sensitive(bbox, TRUE);
4362 4376
4363 return; 4377 return;
4364 } 4378 }
4365 4379
4375 GSList *accts; 4389 GSList *accts;
4376 4390
4377 if (resp == GTK_RESPONSE_OK) { 4391 if (resp == GTK_RESPONSE_OK) {
4378 4392
4379 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); 4393 new_name = gtk_entry_get_text(GTK_ENTRY(entry));
4380 g = gtk_object_get_user_data(GTK_OBJECT(entry)); 4394 g = g_object_get_data(G_OBJECT(entry), "group");
4381 4395
4382 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { 4396 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) {
4383 char *prevname; 4397 char *prevname;
4384 4398
4385 if ((orig = find_group(new_name)) != NULL && g_strcasecmp(new_name, g->name)) { 4399 if ((orig = find_group(new_name)) != NULL && g_strcasecmp(new_name, g->name)) {
4423 GtkWidget *name_entry = NULL; 4437 GtkWidget *name_entry = NULL;
4424 4438
4425 g_free(filename); 4439 g_free(filename);
4426 4440
4427 if (!rename_dialog) { 4441 if (!rename_dialog) {
4428 rename_dialog = gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, 4442 rename_dialog = gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL,
4429 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); 4443 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
4430 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK); 4444 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK);
4431 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6); 4445 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6);
4432 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); 4446 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE);
4433 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE); 4447 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE);
4434 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12); 4448 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12);
4435 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6); 4449 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6);
4436 4450
4437 hbox = gtk_hbox_new(FALSE, 12); 4451 hbox = gtk_hbox_new(FALSE, 12);
4438 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox); 4452 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox);
4439 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); 4453 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0);
4440 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); 4454 gtk_misc_set_alignment(GTK_MISC(img), 0, 0);
4441 4455
4442 vbox = gtk_vbox_new(FALSE, 0); 4456 vbox = gtk_vbox_new(FALSE, 0);
4443 gtk_container_add(GTK_CONTAINER(hbox), vbox); 4457 gtk_container_add(GTK_CONTAINER(hbox), vbox);
4444 4458
4445 label = gtk_label_new(_("Please enter a new name for the selected group.\n")); 4459 label = gtk_label_new(_("Please enter a new name for the selected group.\n"));
4446 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 4460 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
4447 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 4461 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
4448 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); 4462 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
4449 4463
4450 hbox = gtk_hbox_new(FALSE, 6); 4464 hbox = gtk_hbox_new(FALSE, 6);
4451 gtk_container_add(GTK_CONTAINER(vbox), hbox); 4465 gtk_container_add(GTK_CONTAINER(vbox), hbox);
4452 4466
4453 label = gtk_label_new(NULL); 4467 label = gtk_label_new(NULL);
4454 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); 4468 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:"));
4455 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 4469 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
4456 4470
4457 name_entry = gtk_entry_new(); 4471 name_entry = gtk_entry_new();
4458 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); 4472 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
4459 gtk_object_set_user_data(GTK_OBJECT(name_entry), g); 4473 g_object_set_data(G_OBJECT(name_entry), "group", g);
4460 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); 4474 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name);
4461 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0); 4475 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0);
4462 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); 4476 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE);
4463 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry)); 4477 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry));
4464 4478
4465 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry); 4479 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry);
4466 4480
4467 } 4481 }
4468 4482
4469 gtk_widget_show_all(rename_dialog); 4483 gtk_widget_show_all(rename_dialog);
4474 4488
4475 /*------------------------------------------------------------------------*/ 4489 /*------------------------------------------------------------------------*/
4476 /* The dialog for renaming buddies */ 4490 /* The dialog for renaming buddies */
4477 /*------------------------------------------------------------------------*/ 4491 /*------------------------------------------------------------------------*/
4478 4492
4479 static void do_rename_buddy(GtkObject *obj, GtkWidget *entry) 4493 static void do_rename_buddy(GObject *obj, GtkWidget *entry)
4480 { 4494 {
4481 const char *new_name; 4495 const char *new_name;
4482 struct buddy *b; 4496 struct buddy *b;
4483 GSList *gr; 4497 GSList *gr;
4484 4498
4485 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); 4499 new_name = gtk_entry_get_text(GTK_ENTRY(entry));
4486 b = gtk_object_get_user_data(obj); 4500 b = g_object_get_data(obj, "buddy");
4487 4501
4488 if (!g_slist_find(connections, b->account->gc)) { 4502 if (!g_slist_find(connections, b->account->gc)) {
4489 destroy_dialog(rename_bud_dialog, rename_bud_dialog); 4503 destroy_dialog(rename_bud_dialog, rename_bud_dialog);
4490 return; 4504 return;
4491 } 4505 }
4527 GtkWidget *label; 4541 GtkWidget *label;
4528 4542
4529 if (!rename_bud_dialog) { 4543 if (!rename_bud_dialog) {
4530 GAIM_DIALOG(rename_bud_dialog); 4544 GAIM_DIALOG(rename_bud_dialog);
4531 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog"); 4545 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog");
4532 gtk_window_set_policy(GTK_WINDOW(rename_bud_dialog), FALSE, TRUE, TRUE); 4546 gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE);
4533 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Gaim - Rename Buddy")); 4547 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Gaim - Rename Buddy"));
4534 g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy", 4548 g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy",
4535 G_CALLBACK(destroy_dialog), rename_bud_dialog); 4549 G_CALLBACK(destroy_dialog), rename_bud_dialog);
4536 gtk_widget_realize(rename_bud_dialog); 4550 gtk_widget_realize(rename_bud_dialog);
4537 4551
4549 label = gtk_label_new(_("New name:")); 4563 label = gtk_label_new(_("New name:"));
4550 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); 4564 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0);
4551 4565
4552 name_entry = gtk_entry_new(); 4566 name_entry = gtk_entry_new();
4553 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0); 4567 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0);
4554 gtk_object_set_user_data(GTK_OBJECT(name_entry), b); 4568 g_object_set_data(G_OBJECT(name_entry), "buddy", b);
4555 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name); 4569 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name);
4556 g_signal_connect(GTK_OBJECT(name_entry), "activate", 4570 g_signal_connect(GTK_OBJECT(name_entry), "activate",
4557 G_CALLBACK(do_rename_buddy), name_entry); 4571 G_CALLBACK(do_rename_buddy), name_entry);
4558 gtk_widget_grab_focus(name_entry); 4572 gtk_widget_grab_focus(name_entry);
4559 4573
4560 bbox = gtk_hbox_new(FALSE, 5); 4574 bbox = gtk_hbox_new(FALSE, 5);
4561 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); 4575 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0);
4562 4576
4563 button = picture_button(rename_bud_dialog, _("OK"), ok_xpm); 4577 button = picture_button(rename_bud_dialog, _("OK"), ok_xpm);
4564 gtk_object_set_user_data(GTK_OBJECT(button), b); 4578 g_object_set_data(G_OBJECT(button), "buddy", b);
4565 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); 4579 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0);
4566 g_signal_connect(GTK_OBJECT(button), "clicked", 4580 g_signal_connect(GTK_OBJECT(button), "clicked",
4567 G_CALLBACK(do_rename_buddy), name_entry); 4581 G_CALLBACK(do_rename_buddy), name_entry);
4568 4582
4569 button = picture_button(rename_bud_dialog, _("Cancel"), cancel_xpm); 4583 button = picture_button(rename_bud_dialog, _("Cancel"), cancel_xpm);
4774 button_box_2 = gtk_hbox_new(FALSE, 0); 4788 button_box_2 = gtk_hbox_new(FALSE, 0);
4775 button_box_3 = gtk_hbox_new(FALSE, 0); 4789 button_box_3 = gtk_hbox_new(FALSE, 0);
4776 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); 4790 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0);
4777 gtk_box_pack_start(GTK_BOX(button_box), button_box_3, TRUE, TRUE, 0); 4791 gtk_box_pack_start(GTK_BOX(button_box), button_box_3, TRUE, TRUE, 0);
4778 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); 4792 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm);
4779 pixmap = gtk_pixmap_new(pm, mask); 4793 pixmap = gtk_image_new_from_pixmap(pm, mask);
4780 gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); 4794 gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0);
4781 4795
4782 if (text) { 4796 if (text) {
4783 label = gtk_label_new(text); 4797 label = gtk_label_new(text);
4784 gtk_box_pack_start(GTK_BOX(button_box_3), label, FALSE, FALSE, 2); 4798 gtk_box_pack_start(GTK_BOX(button_box_3), label, FALSE, FALSE, 2);
4789 gtk_widget_show(button_box_2); 4803 gtk_widget_show(button_box_2);
4790 gtk_widget_show(button_box_3); 4804 gtk_widget_show(button_box_3);
4791 gtk_widget_show(button_box); 4805 gtk_widget_show(button_box);
4792 4806
4793 /* this causes clipping on lots of buttons with long text */ 4807 /* this causes clipping on lots of buttons with long text */
4794 /* gtk_widget_set_usize(button, 75, 30);*/ 4808 /* gtk_widget_set_size_request(button, 75, 30);*/
4795 gtk_widget_show(button); 4809 gtk_widget_show(button);
4796 gdk_pixmap_unref(pm); 4810 gdk_pixmap_unref(pm);
4797 gdk_bitmap_unref(mask); 4811 gdk_bitmap_unref(mask);
4798 4812
4799 return button; 4813 return button;
4822 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); 4836 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0);
4823 gtk_widget_show(button_box_2); 4837 gtk_widget_show(button_box_2);
4824 gtk_widget_show(button_box); 4838 gtk_widget_show(button_box);
4825 if (dispstyle == 2 || dispstyle == 0) { 4839 if (dispstyle == 2 || dispstyle == 0) {
4826 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); 4840 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm);
4827 pixmap = gtk_pixmap_new(pm, mask); 4841 pixmap = gtk_image_new_from_pixmap(pm, mask);
4828 gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); 4842 gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0);
4829 4843
4830 gtk_widget_show(pixmap); 4844 gtk_widget_show(pixmap);
4831 4845
4832 gdk_pixmap_unref(pm); 4846 gdk_pixmap_unref(pm);
5173 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5); 5187 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5);
5174 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, 5188 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label,
5175 1 + col_offset, 2 + col_offset, row_num, row_num +1); 5189 1 + col_offset, 2 + col_offset, row_num, row_num +1);
5176 gtk_widget_show(label); 5190 gtk_widget_show(label);
5177 5191
5178 med->widget = gtk_entry_new_with_max_length(50); 5192 med->widget = gtk_entry_new();
5193 gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50);
5179 if(med->text != NULL) { 5194 if(med->text != NULL) {
5180 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text); 5195 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text);
5181 } 5196 }
5182 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible); 5197 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible);
5183 gtk_entry_set_editable(GTK_ENTRY (med->widget), med->editable); 5198 gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable);
5184 gtk_table_attach(GTK_TABLE (*entries_table), med->widget, 5199 gtk_table_attach(GTK_TABLE (*entries_table), med->widget,
5185 2 + col_offset, 3 + col_offset, row_num, row_num +1, 5200 2 + col_offset, 3 + col_offset, row_num, row_num +1,
5186 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0); 5201 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0);
5187 gtk_widget_show(med->widget); 5202 gtk_widget_show(med->widget);
5188 } 5203 }
5198 GtkWidget *texts_obox, 5213 GtkWidget *texts_obox,
5199 GSList *multi_text_items) 5214 GSList *multi_text_items)
5200 { 5215 {
5201 GSList *multi_text; 5216 GSList *multi_text;
5202 MultiTextData *mtd; 5217 MultiTextData *mtd;
5203 GtkWidget *frame; 5218 GtkWidget *frame;
5204 GtkWidget *hbox; 5219 GtkWidget *sw;
5205 GtkWidget *vscrollbar;
5206 5220
5207 if(*texts_ibox != NULL) { 5221 if(*texts_ibox != NULL) {
5208 gtk_widget_destroy(GTK_WIDGET (*texts_ibox)); 5222 gtk_widget_destroy(GTK_WIDGET (*texts_ibox));
5209 } 5223 }
5210 *texts_ibox = gtk_vbox_new(FALSE, 5); 5224 *texts_ibox = gtk_vbox_new(FALSE, 5);
5211 gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox); 5225 gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox);
5212 5226
5213 for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) { 5227 for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) {
5214 mtd = (MultiTextData *) multi_text->data; 5228 mtd = (MultiTextData *) multi_text->data;
5215 frame = gtk_frame_new(mtd->label); 5229 frame = gtk_frame_new(mtd->label);
5230 sw = gtk_scrolled_window_new(NULL, NULL);
5231 gtk_container_set_border_width(GTK_CONTAINER(sw), 5);
5232 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
5233 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
5234 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw),
5235 GTK_SHADOW_IN);
5236 gtk_widget_set_size_request(sw, 300, 100);
5237 gtk_container_add(GTK_CONTAINER (frame), sw);
5216 gtk_container_add(GTK_CONTAINER (*texts_ibox), frame); 5238 gtk_container_add(GTK_CONTAINER (*texts_ibox), frame);
5217 hbox = gtk_hbox_new(FALSE, 0); 5239 mtd->textbox = gtk_text_view_new();
5218 gtk_container_add(GTK_CONTAINER (frame), hbox); 5240 gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE);
5219 mtd->textbox = gtk_text_new(NULL, NULL); 5241 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD);
5220 gtk_text_set_editable(GTK_TEXT(mtd->textbox), TRUE); 5242 gtk_text_buffer_set_text(
5221 gtk_text_set_word_wrap(GTK_TEXT(mtd->textbox), TRUE); 5243 gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)),
5222 gtk_widget_set_usize(mtd->textbox, 300, 100); 5244 mtd->text?mtd->text:"", -1);
5223 gtk_text_insert(GTK_TEXT(mtd->textbox), NULL, NULL, NULL, mtd->text?mtd->text:"", -1); 5245 gtk_container_add(GTK_CONTAINER (sw), mtd->textbox);
5224 gtk_box_pack_start(GTK_BOX (hbox), mtd->textbox, FALSE, FALSE, 0);
5225 vscrollbar = gtk_vscrollbar_new (GTK_TEXT(mtd->textbox)->vadj);
5226 gtk_box_pack_start(GTK_BOX (hbox), vscrollbar, FALSE, FALSE, 0);
5227 gtk_widget_show(mtd->textbox); 5246 gtk_widget_show(mtd->textbox);
5228 gtk_widget_show (vscrollbar); 5247 gtk_widget_show(sw);
5229 gtk_widget_show(hbox);
5230 gtk_widget_show(frame); 5248 gtk_widget_show(frame);
5231 } 5249 }
5232 5250
5233 gtk_widget_show(*texts_ibox); 5251 gtk_widget_show(*texts_ibox);
5234 } 5252 }
5351 for(list = b->multi_text_items; list != NULL; list = list->next) { 5369 for(list = b->multi_text_items; list != NULL; list = list->next) {
5352 if(((MultiTextData *) list->data)->text != NULL) { 5370 if(((MultiTextData *) list->data)->text != NULL) {
5353 g_free(((MultiTextData *) list->data)->text); 5371 g_free(((MultiTextData *) list->data)->text);
5354 } 5372 }
5355 ((MultiTextData *) list->data)->text = 5373 ((MultiTextData *) list->data)->text =
5356 gtk_editable_get_chars((GtkEditable *) (((MultiTextData *) list->data)->textbox), 5374 gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE);
5357 0, -1);
5358 } 5375 }
5359 5376
5360 5377
5361 tmp = b->custom(b); 5378 tmp = b->custom(b);
5362 5379