aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-dialogs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk/empathy-contact-dialogs.c')
-rw-r--r--libempathy-gtk/empathy-contact-dialogs.c234
1 files changed, 0 insertions, 234 deletions
diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c
deleted file mode 100644
index 5f885e854..000000000
--- a/libempathy-gtk/empathy-contact-dialogs.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Copyright (C) 2007-2008 Collabora Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Authors: Xavier Claessens <xclaesse@gmail.com>
- * Danielle Madeley <danielle.madeley@collabora.co.uk>
- */
-
-#include <config.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <gtk/gtk.h>
-#include <glib/gi18n-lib.h>
-
-#include <telepathy-glib/account-manager.h>
-
-#include <libempathy/empathy-utils.h>
-
-#include "empathy-contact-dialogs.h"
-#include "empathy-contact-widget.h"
-#include "empathy-ui-utils.h"
-
-static GList *information_dialogs = NULL;
-static GtkWidget *new_contact_dialog = NULL;
-
-static gint
-contact_dialogs_find (GtkDialog *dialog,
- EmpathyContact *contact)
-{
- GtkWidget *contact_widget;
- EmpathyContact *this_contact;
-
- contact_widget = g_object_get_data (G_OBJECT (dialog), "contact_widget");
- this_contact = empathy_contact_widget_get_contact (contact_widget);
-
- return contact != this_contact;
-}
-
-/*
- * Information dialog
- */
-
-static void
-contact_dialogs_response_cb (GtkDialog *dialog,
- gint response,
- GList **dialogs)
-{
- *dialogs = g_list_remove (*dialogs, dialog);
- gtk_widget_destroy (GTK_WIDGET (dialog));
-}
-
-void
-empathy_contact_information_dialog_show (EmpathyContact *contact,
- GtkWindow *parent)
-{
- GtkWidget *dialog;
- GtkWidget *button;
- GtkWidget *contact_widget;
- GList *l;
-
- g_return_if_fail (EMPATHY_IS_CONTACT (contact));
-
- l = g_list_find_custom (information_dialogs,
- contact,
- (GCompareFunc) contact_dialogs_find);
- if (l) {
- gtk_window_present (GTK_WINDOW (l->data));
- return;
- }
-
- /* Create dialog */
- dialog = gtk_dialog_new ();
- gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
- gtk_window_set_title (GTK_WINDOW (dialog),
- empathy_contact_get_alias (contact));
-
- /* Close button */
- button = gtk_button_new_with_label (GTK_STOCK_CLOSE);
- gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
- gtk_dialog_add_action_widget (GTK_DIALOG (dialog),
- button,
- GTK_RESPONSE_CLOSE);
- gtk_widget_set_can_default (button, TRUE);
- gtk_window_set_default (GTK_WINDOW (dialog), button);
- gtk_widget_show (button);
-
- /* Contact info widget */
- contact_widget = empathy_contact_widget_new (contact,
- EMPATHY_CONTACT_WIDGET_SHOW_LOCATION |
- EMPATHY_CONTACT_WIDGET_SHOW_DETAILS);
- gtk_container_set_border_width (GTK_CONTAINER (contact_widget), 8);
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
- contact_widget,
- TRUE, TRUE, 0);
- gtk_widget_show (contact_widget);
-
- g_object_set_data (G_OBJECT (dialog), "contact_widget", contact_widget);
- information_dialogs = g_list_prepend (information_dialogs, dialog);
-
- g_signal_connect (dialog, "response",
- G_CALLBACK (contact_dialogs_response_cb),
- &information_dialogs);
-
- if (parent) {
- gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
- }
-
- gtk_widget_show (dialog);
-}
-
-/*
- * New contact dialog
- */
-
-static void
-can_add_contact_to_account (TpAccount *account,
- EmpathyAccountChooserFilterResultCallback callback,
- gpointer callback_data,
- gpointer user_data)
-{
- TpConnection *connection;
- gboolean result;
-
- connection = tp_account_get_connection (account);
- if (connection == NULL) {
- callback (FALSE, callback_data);
- return;
- }
-
- result = tp_connection_get_can_change_contact_list (connection);
-
- callback (result, callback_data);
-}
-
-static void
-new_contact_response_cb (GtkDialog *dialog,
- gint response,
- GtkWidget *contact_widget)
-{
- EmpathyContact *contact;
-
- contact = empathy_contact_widget_get_contact (contact_widget);
-
- if (contact && response == GTK_RESPONSE_OK) {
- empathy_contact_add_to_contact_list (contact, "");
- }
-
- new_contact_dialog = NULL;
- gtk_widget_destroy (GTK_WIDGET (dialog));
-}
-
-void
-empathy_new_contact_dialog_show (GtkWindow *parent)
-{
- empathy_new_contact_dialog_show_with_contact (parent, NULL);
-}
-
-void
-empathy_new_contact_dialog_show_with_contact (GtkWindow *parent,
- EmpathyContact *contact)
-{
- GtkWidget *dialog;
- GtkWidget *button;
- GtkWidget *contact_widget;
-
- if (new_contact_dialog) {
- gtk_window_present (GTK_WINDOW (new_contact_dialog));
- return;
- }
-
- /* Create dialog */
- dialog = gtk_dialog_new ();
- gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
- gtk_window_set_title (GTK_WINDOW (dialog), _("New Contact"));
-
- /* Cancel button */
- button = gtk_button_new_with_label (GTK_STOCK_CANCEL);
- gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
- gtk_dialog_add_action_widget (GTK_DIALOG (dialog),
- button,
- GTK_RESPONSE_CANCEL);
- gtk_widget_show (button);
-
- /* Add button */
- button = gtk_button_new_with_label (GTK_STOCK_ADD);
- gtk_button_set_use_stock (GTK_BUTTON (button), TRUE);
- gtk_dialog_add_action_widget (GTK_DIALOG (dialog),
- button,
- GTK_RESPONSE_OK);
- gtk_widget_show (button);
-
- /* Contact info widget */
- contact_widget = empathy_contact_widget_new (contact,
- EMPATHY_CONTACT_WIDGET_EDIT_ALIAS |
- EMPATHY_CONTACT_WIDGET_EDIT_ACCOUNT |
- EMPATHY_CONTACT_WIDGET_EDIT_ID |
- EMPATHY_CONTACT_WIDGET_EDIT_GROUPS);
- gtk_container_set_border_width (GTK_CONTAINER (contact_widget), 8);
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
- contact_widget,
- TRUE, TRUE, 0);
- empathy_contact_widget_set_account_filter (contact_widget,
- can_add_contact_to_account,
- NULL);
- gtk_widget_show (contact_widget);
-
- new_contact_dialog = dialog;
-
- g_signal_connect (dialog, "response",
- G_CALLBACK (new_contact_response_cb),
- contact_widget);
-
- if (parent) {
- gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
- }
-
- gtk_widget_show (dialog);
-}