Mercurial > pidgin
changeset 1397:d2799e0672ee
[gaim-migrate @ 1407]
there. this should fix things
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 09 Jan 2001 09:37:01 +0000 |
parents | df7c3cacac92 |
children | f6b0cf1f4c3b |
files | src/buddy.c src/dialogs.c |
diffstat | 2 files changed, 108 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/buddy.c Tue Jan 09 09:16:19 2001 +0000 +++ b/src/buddy.c Tue Jan 09 09:37:01 2001 +0000 @@ -380,9 +380,14 @@ } } -void pressed_alias(GtkWidget *widget, struct buddy_show *b) +void pressed_alias_bs(GtkWidget *widget, struct buddy_show *b) { - alias_dialog(b); + alias_dialog_bs(b); +} + +void pressed_alias_bud(GtkWidget *widget, struct buddy *b) +{ + alias_dialog_bud(b); } void handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b) @@ -423,7 +428,7 @@ button = gtk_menu_item_new_with_label(_("Alias")); gtk_signal_connect(GTK_OBJECT(button), "activate", - GTK_SIGNAL_FUNC(pressed_alias), b); + GTK_SIGNAL_FUNC(pressed_alias_bs), b); gtk_menu_append(GTK_MENU(menu), button); gtk_widget_show(button); @@ -478,7 +483,7 @@ { struct group *g = find_group_by_buddy(b->gc, b->name); struct group_show *gs = find_group_show(g->name); - struct buddy_show *bs; + struct buddy_show *bs = NULL; GtkCTreeNode *node = gtk_ctree_find_by_row_data(GTK_CTREE(edittree), NULL, b); g_snprintf(b->show, sizeof(b->show), "%s", b->name); gtk_ctree_node_set_text(GTK_CTREE(edittree), node, 0, b->name); @@ -520,14 +525,11 @@ event->button, event->time); } else if (*type == EDIT_BUDDY) { struct buddy *b = (struct buddy *)type; - struct group *g = find_group_by_buddy(b->gc, b->name); - struct group_show *gs = find_group_show(g->name); - struct buddy_show *bs = find_buddy_show(gs, b->name); menu = gtk_menu_new(); button = gtk_menu_item_new_with_label(_("Alias")); gtk_signal_connect(GTK_OBJECT(button), "activate", - GTK_SIGNAL_FUNC(pressed_alias), bs); + GTK_SIGNAL_FUNC(pressed_alias_bud), b); gtk_menu_append(GTK_MENU(menu), button); gtk_widget_show(button);
--- a/src/dialogs.c Tue Jan 09 09:16:19 2001 +0000 +++ b/src/dialogs.c Tue Jan 09 09:37:01 2001 +0000 @@ -3413,7 +3413,7 @@ return; } -static void do_alias(GtkWidget *w, struct buddy_show *b) +static void do_alias_bs(GtkWidget *w, struct buddy_show *b) { GSList *c = b->connlist; struct gaim_connection *g; @@ -3432,7 +3432,7 @@ build_edit_tree(); } -void alias_dialog(struct buddy_show *b) +void alias_dialog_bs(struct buddy_show *b) { GtkWidget *frame; GtkWidget *vbox; @@ -3443,17 +3443,8 @@ GtkWidget *topbox; static int a, c; - if (aliasdlg) { - gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name); - gtk_widget_show(aliasdlg); - gtk_signal_disconnect(GTK_OBJECT(add), a); - gtk_signal_disconnect(GTK_OBJECT(aliasname), c); - a = gtk_signal_connect(GTK_OBJECT(add), "clicked", - GTK_SIGNAL_FUNC(do_alias), b); - c = gtk_signal_connect(GTK_OBJECT(aliasname), "activate", - GTK_SIGNAL_FUNC(do_alias), b); - return; - } + if (aliasdlg) + gtk_widget_destroy(aliasdlg); aliasdlg = gtk_window_new(GTK_WINDOW_DIALOG); gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE); @@ -3502,9 +3493,9 @@ gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg); a = gtk_signal_connect(GTK_OBJECT(add), "clicked", - GTK_SIGNAL_FUNC(do_alias), b); + GTK_SIGNAL_FUNC(do_alias_bs), b); c = gtk_signal_connect(GTK_OBJECT(aliasname), "activate", - GTK_SIGNAL_FUNC(do_alias), b); + GTK_SIGNAL_FUNC(do_alias_bs), b); /* Finish up */ gtk_widget_show(add); gtk_widget_show(cancel); @@ -3524,3 +3515,95 @@ gtk_widget_show(aliasdlg); } + +static void do_alias_bud(GtkWidget *w, struct buddy *b) +{ + g_snprintf(b->show, sizeof(b->show), "%s", gtk_entry_get_text(GTK_ENTRY(aliasname))); + do_export(0, 0); + destroy_dialog(aliasdlg, aliasdlg); + build_edit_tree(); +} + +void alias_dialog_bud(struct buddy *b) +{ + GtkWidget *frame; + GtkWidget *vbox; + GtkWidget *bbox; + GtkWidget *cancel; + static GtkWidget *add = NULL; + GtkWidget *label; + GtkWidget *topbox; + static int a, c; + + if (aliasdlg) + gtk_widget_destroy(aliasdlg); + + aliasdlg = gtk_window_new(GTK_WINDOW_DIALOG); + gtk_window_set_policy(GTK_WINDOW(aliasdlg), FALSE, FALSE, TRUE); + gtk_window_set_wmclass(GTK_WINDOW(aliasdlg), "alias_dialog", "Gaim"); + gtk_widget_realize(aliasdlg); + dialogwindows = g_list_prepend(dialogwindows, aliasdlg); + + bbox = gtk_hbox_new(TRUE, 10); + topbox = gtk_hbox_new(FALSE, 5); + vbox = gtk_vbox_new(FALSE, 5); + + aliasentry = gtk_entry_new(); + aliasname = gtk_entry_new(); + /* Put the buttons in the box */ + + add = picture_button(aliasdlg, _("Alias"), add_xpm); + + cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm); + + gtk_box_pack_start(GTK_BOX(bbox), add, FALSE, FALSE, 5); + gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); + + frame = gtk_frame_new(NULL); + gtk_frame_set_label(GTK_FRAME(frame), _("Alias Buddy")); + + label = gtk_label_new(_("Buddy")); + gtk_widget_show(label); + gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(topbox), aliasentry, FALSE, FALSE, 5); + gtk_entry_set_editable(GTK_ENTRY(aliasentry), FALSE); + label = gtk_label_new(_("Alias")); + gtk_widget_show(label); + gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); + gtk_box_pack_start(GTK_BOX(topbox), aliasname, FALSE, FALSE, 5); + + gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name); + gtk_entry_set_text(GTK_ENTRY(aliasname), b->show); + + /* And the boxes in the box */ + gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); + gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); + + /* Handle closes right */ + gtk_signal_connect(GTK_OBJECT(aliasdlg), "destroy", + GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg); + gtk_signal_connect(GTK_OBJECT(cancel), "clicked", + GTK_SIGNAL_FUNC(destroy_dialog), aliasdlg); + a = gtk_signal_connect(GTK_OBJECT(add), "clicked", + GTK_SIGNAL_FUNC(do_alias_bud), b); + c = gtk_signal_connect(GTK_OBJECT(aliasname), "activate", + GTK_SIGNAL_FUNC(do_alias_bud), b); + /* Finish up */ + gtk_widget_show(add); + gtk_widget_show(cancel); + gtk_widget_show(aliasentry); + gtk_widget_show(aliasname); + gtk_widget_show(topbox); + gtk_widget_show(bbox); + gtk_widget_show(vbox); + gtk_widget_show(frame); + gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Gaim - Alias Buddy")); + gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasentry); + gtk_container_add(GTK_CONTAINER(frame), vbox); + gtk_container_add(GTK_CONTAINER(aliasdlg), frame); + gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5); + gtk_widget_realize(aliasdlg); + aol_icon(aliasdlg->window); + + gtk_widget_show(aliasdlg); +}