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 */