| 4104 { |
4104 { |
| 4105 gaim_blist_add_chat(chat, group, NULL); |
4105 gaim_blist_add_chat(chat, group, NULL); |
| 4106 } |
4106 } |
| 4107 |
4107 |
| 4108 gtk_widget_destroy(data->window); |
4108 gtk_widget_destroy(data->window); |
| |
4109 g_free(data->default_chat_name); |
| 4109 g_list_free(data->entries); |
4110 g_list_free(data->entries); |
| 4110 |
|
| 4111 g_free(data); |
4111 g_free(data); |
| 4112 } |
4112 } |
| 4113 |
4113 |
| 4114 static void |
4114 static void |
| 4115 add_chat_resp_cb(GtkWidget *w, int resp, GaimGtkAddChatData *data) |
4115 add_chat_resp_cb(GtkWidget *w, int resp, GaimGtkAddChatData *data) |
| 4258 GtkWidget *rowbox; |
4259 GtkWidget *rowbox; |
| 4259 GtkWidget *hbox; |
4260 GtkWidget *hbox; |
| 4260 GtkWidget *vbox; |
4261 GtkWidget *vbox; |
| 4261 GtkWidget *img; |
4262 GtkWidget *img; |
| 4262 |
4263 |
| |
4264 if (account != NULL) { |
| |
4265 gc = gaim_account_get_connection(account); |
| |
4266 |
| |
4267 if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat == NULL) { |
| |
4268 gaim_notify_error(gc, NULL, _("This protocol does not support chat rooms."), NULL); |
| |
4269 return; |
| |
4270 } |
| |
4271 } else { |
| |
4272 /* Find an account with chat capabilities */ |
| |
4273 for (l = gaim_connections_get_all(); l != NULL; l = l->next) { |
| |
4274 gc = (GaimConnection *)l->data; |
| |
4275 |
| |
4276 if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat != NULL) { |
| |
4277 account = gaim_connection_get_account(gc); |
| |
4278 break; |
| |
4279 } |
| |
4280 } |
| |
4281 |
| |
4282 if (account == NULL) { |
| |
4283 gaim_notify_error(NULL, NULL, |
| |
4284 _("You are not currently signed on with any " |
| |
4285 "protocols that have the ability to chat."), NULL); |
| |
4286 return; |
| |
4287 } |
| |
4288 } |
| |
4289 |
| 4263 data = g_new0(GaimGtkAddChatData, 1); |
4290 data = g_new0(GaimGtkAddChatData, 1); |
| |
4291 data->account = account; |
| |
4292 data->default_chat_name = g_strdup(name); |
| 4264 |
4293 |
| 4265 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, |
4294 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, |
| 4266 GTK_ICON_SIZE_DIALOG); |
4295 GTK_ICON_SIZE_DIALOG); |
| 4267 |
4296 |
| 4268 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
4297 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
| 4269 |
|
| 4270 data->default_chat_name = name; |
|
| 4271 |
|
| 4272 if (account != NULL) |
|
| 4273 { |
|
| 4274 data->account = account; |
|
| 4275 } |
|
| 4276 else |
|
| 4277 { |
|
| 4278 /* Select an account with chat capabilities */ |
|
| 4279 for (l = gaim_connections_get_all(); l != NULL; l = l->next) |
|
| 4280 { |
|
| 4281 gc = (GaimConnection *)l->data; |
|
| 4282 |
|
| 4283 if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat != NULL) |
|
| 4284 { |
|
| 4285 data->account = gaim_connection_get_account(gc); |
|
| 4286 break; |
|
| 4287 } |
|
| 4288 } |
|
| 4289 } |
|
| 4290 |
|
| 4291 if (data->account == NULL) |
|
| 4292 { |
|
| 4293 gaim_notify_error(NULL, NULL, |
|
| 4294 _("You are not currently signed on with any " |
|
| 4295 "protocols that have the ability to chat."), NULL); |
|
| 4296 return; |
|
| 4297 } |
|
| 4298 |
4298 |
| 4299 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
4299 data->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 4300 |
4300 |
| 4301 data->window = gtk_dialog_new_with_buttons(_("Add Chat"), |
4301 data->window = gtk_dialog_new_with_buttons(_("Add Chat"), |
| 4302 NULL, GTK_DIALOG_NO_SEPARATOR, |
4302 NULL, GTK_DIALOG_NO_SEPARATOR, |