Mercurial > pidgin.yaz
comparison src/dialogs.c @ 4183:e6810f691393
[gaim-migrate @ 4414]
More gtk2 goodness
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Fri, 03 Jan 2003 07:26:22 +0000 |
parents | 05a456d5f799 |
children | c46c977cfc9e |
comparison
equal
deleted
inserted
replaced
4182:05a456d5f799 | 4183:e6810f691393 |
---|---|
953 struct addbuddy *a = g_new0(struct addbuddy, 1); | 953 struct addbuddy *a = g_new0(struct addbuddy, 1); |
954 | 954 |
955 g_free(filename); | 955 g_free(filename); |
956 a->gc = gc; | 956 a->gc = gc; |
957 | 957 |
958 a->window = gtk_dialog_new_with_buttons("", GTK_WINDOW(blist), GTK_DIALOG_MODAL, | 958 a->window = gtk_dialog_new_with_buttons(_("Gaim - Add Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, |
959 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); | 959 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
960 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK); | 960 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK); |
961 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6); | 961 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6); |
962 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | 962 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); |
963 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | 963 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); |
1116 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | 1116 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
1117 | 1117 |
1118 a->entry = gtk_entry_new(); | 1118 a->entry = gtk_entry_new(); |
1119 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); | 1119 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); |
1120 gtk_widget_grab_focus(a->entry); | 1120 gtk_widget_grab_focus(a->entry); |
1121 | |
1121 if (buddy != NULL) | 1122 if (buddy != NULL) |
1122 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); | 1123 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); |
1123 g_signal_connect(GTK_OBJECT(a->entry), "activate", G_CALLBACK(do_add_buddy), a); | 1124 |
1125 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); | |
1124 | 1126 |
1125 label = gtk_label_new(_("Alias")); | 1127 label = gtk_label_new(_("Alias")); |
1126 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 1128 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
1127 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | 1129 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
1128 | 1130 |
1129 a->entry_for_alias = gtk_entry_new(); | 1131 a->entry_for_alias = gtk_entry_new(); |
1130 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); | 1132 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); |
1131 if (alias != NULL) | 1133 if (alias != NULL) |
1132 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); | 1134 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); |
1135 gtk_entry_set_activates_default (GTK_ENTRY(a->entry_for_alias), TRUE); | |
1133 | 1136 |
1134 label = gtk_label_new(_("Group")); | 1137 label = gtk_label_new(_("Group")); |
1135 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 1138 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
1136 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); | 1139 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); |
1137 | 1140 |
4299 | 4302 |
4300 /*------------------------------------------------------------------------*/ | 4303 /*------------------------------------------------------------------------*/ |
4301 /* The dialog for renaming groups */ | 4304 /* The dialog for renaming groups */ |
4302 /*------------------------------------------------------------------------*/ | 4305 /*------------------------------------------------------------------------*/ |
4303 | 4306 |
4304 static void do_rename_group(GtkObject *obj, GtkWidget *entry) | 4307 static void do_rename_group(GtkObject *obj, int resp, GtkWidget *entry) |
4305 { | 4308 { |
4306 const char *new_name; | 4309 const char *new_name; |
4307 struct group *g; | 4310 struct group *g; |
4308 struct group *orig; | 4311 struct group *orig; |
4309 struct gaim_connection *gc; | 4312 struct gaim_connection *gc; |
4310 | 4313 |
4311 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); | 4314 if (resp == GTK_RESPONSE_OK) { |
4312 g = gtk_object_get_user_data(obj); | 4315 |
4313 | 4316 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); |
4314 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { | 4317 g = gtk_object_get_user_data(GTK_OBJECT(entry)); |
4315 char *prevname; | 4318 |
4316 gc = g->gc; | 4319 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { |
4317 | 4320 char *prevname; |
4318 if ((orig = find_group(g->gc, new_name)) != NULL && g_strcasecmp(new_name, g->name)) { | 4321 gc = g->gc; |
4319 orig->members = g_slist_concat(orig->members, g->members); | 4322 |
4320 handle_group_rename(orig, g->name); | 4323 if ((orig = find_group(g->gc, new_name)) != NULL && g_strcasecmp(new_name, g->name)) { |
4321 g->gc->groups = g_slist_remove(g->gc->groups, g); | 4324 orig->members = g_slist_concat(orig->members, g->members); |
4322 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); | 4325 handle_group_rename(orig, g->name); |
4323 serv_rename_group(gc, g, new_name); | 4326 g->gc->groups = g_slist_remove(g->gc->groups, g); |
4324 g_free(g); | 4327 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); |
4325 } else { | 4328 serv_rename_group(gc, g, new_name); |
4326 prevname = g_strdup(g->name); | 4329 g_free(g); |
4327 serv_rename_group(gc, g, new_name); | 4330 } else { |
4328 g_snprintf(g->name, sizeof(g->name), "%s", new_name); | 4331 prevname = g_strdup(g->name); |
4329 handle_group_rename(g, prevname); | 4332 serv_rename_group(gc, g, new_name); |
4330 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); | 4333 g_snprintf(g->name, sizeof(g->name), "%s", new_name); |
4331 g_free(prevname); | 4334 handle_group_rename(g, prevname); |
4335 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); | |
4336 g_free(prevname); | |
4337 } | |
4338 do_export(gc); | |
4332 } | 4339 } |
4333 do_export(gc); | |
4334 } | 4340 } |
4335 | 4341 |
4336 destroy_dialog(rename_dialog, rename_dialog); | 4342 destroy_dialog(rename_dialog, rename_dialog); |
4337 } | 4343 } |
4338 | 4344 |
4339 void show_rename_group(GtkWidget *unused, struct group *g) | 4345 void show_rename_group(GtkWidget *unused, struct group *g) |
4340 { | 4346 { |
4341 GtkWidget *mainbox; | 4347 |
4342 GtkWidget *frame; | 4348 GtkWidget *hbox, *vbox; |
4343 GtkWidget *fbox; | 4349 GtkWidget *label; |
4344 GtkWidget *bbox; | 4350 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
4345 GtkWidget *button; | 4351 GtkWidget *img = gtk_image_new_from_file(filename); |
4346 GtkWidget *name_entry; | 4352 GtkWidget *name_entry; |
4347 GtkWidget *label; | 4353 |
4354 g_free(filename); | |
4348 | 4355 |
4349 if (!rename_dialog) { | 4356 if (!rename_dialog) { |
4350 GAIM_DIALOG(rename_dialog); | 4357 rename_dialog = gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, |
4351 gtk_window_set_role(GTK_WINDOW(rename_dialog), "rename_dialog"); | 4358 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
4352 gtk_window_set_policy(GTK_WINDOW(rename_dialog), FALSE, TRUE, TRUE); | 4359 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK); |
4353 gtk_window_set_title(GTK_WINDOW(rename_dialog), _("Gaim - Rename Group")); | 4360 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6); |
4354 g_signal_connect(GTK_OBJECT(rename_dialog), "destroy", | 4361 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); |
4355 G_CALLBACK(destroy_dialog), rename_dialog); | 4362 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE); |
4356 gtk_widget_realize(rename_dialog); | 4363 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12); |
4357 | 4364 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6); |
4358 mainbox = gtk_vbox_new(FALSE, 5); | 4365 |
4359 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); | 4366 hbox = gtk_hbox_new(FALSE, 12); |
4360 gtk_container_add(GTK_CONTAINER(rename_dialog), mainbox); | 4367 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox); |
4361 | 4368 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
4362 frame = gtk_frame_new(_("Rename Group")); | 4369 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
4363 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); | 4370 |
4364 | 4371 vbox = gtk_vbox_new(FALSE, 0); |
4365 fbox = gtk_hbox_new(FALSE, 5); | 4372 gtk_container_add(GTK_CONTAINER(hbox), vbox); |
4366 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); | 4373 |
4367 gtk_container_add(GTK_CONTAINER(frame), fbox); | 4374 label = gtk_label_new(_("Please enter a new name for the selected group.\n")); |
4368 | 4375 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
4369 label = gtk_label_new(_("New name:")); | 4376 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
4370 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); | 4377 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
4371 | 4378 |
4379 hbox = gtk_hbox_new(FALSE, 6); | |
4380 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
4381 | |
4382 label = gtk_label_new(NULL); | |
4383 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
4384 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
4385 | |
4372 name_entry = gtk_entry_new(); | 4386 name_entry = gtk_entry_new(); |
4373 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0); | 4387 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); |
4374 gtk_object_set_user_data(GTK_OBJECT(name_entry), g); | 4388 gtk_object_set_user_data(GTK_OBJECT(name_entry), g); |
4375 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); | 4389 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); |
4376 g_signal_connect(GTK_OBJECT(name_entry), "activate", | 4390 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0); |
4377 G_CALLBACK(do_rename_group), name_entry); | 4391 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); |
4378 gtk_widget_grab_focus(name_entry); | 4392 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry)); |
4379 | 4393 |
4380 bbox = gtk_hbox_new(FALSE, 5); | 4394 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry); |
4381 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); | |
4382 | |
4383 button = picture_button(rename_dialog, _("OK"), ok_xpm); | |
4384 gtk_object_set_user_data(GTK_OBJECT(button), g); | |
4385 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
4386 g_signal_connect(GTK_OBJECT(button), "clicked", | |
4387 G_CALLBACK(do_rename_group), name_entry); | |
4388 | |
4389 button = picture_button(rename_dialog, _("Cancel"), cancel_xpm); | |
4390 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
4391 g_signal_connect(GTK_OBJECT(button), "clicked", | |
4392 G_CALLBACK(destroy_dialog), rename_dialog); | |
4393 | 4395 |
4394 } | 4396 } |
4395 | 4397 |
4396 gtk_widget_show_all(rename_dialog); | 4398 gtk_widget_show_all(rename_dialog); |
4399 gtk_widget_grab_focus(GTK_WIDGET(name_entry)); | |
4397 } | 4400 } |
4398 | 4401 |
4399 | 4402 |
4400 /*------------------------------------------------------------------------*/ | 4403 /*------------------------------------------------------------------------*/ |
4401 /* The dialog for renaming buddies */ | 4404 /* The dialog for renaming buddies */ |