view plugins/gevolution/gevolution.h @ 12220:64254fbabc7b

[gaim-migrate @ 14522] SF Patch #1363787 from Bartosz Oler "This is a fix to the 'Find buddies' command in which, after the search results window was closed, prpl's internal state was not cleared. A minor modification in the notify API was required. This patch also adds a few more notifications for the user." There also appears to be a few unrelated GG prpl updates in here. I noticed that more strings are marked for translation now. I made several changes to this patch. I also found out that we're not honoring the callbacks passed in to the notify API. That's a bug since we document them. I'm not in the mood to fix it. I changed GCallback to GHookFunc as it has the right type (whereas GCallback did not). The name isn't too bad either. I didn't really want to create a new callback function typedef. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Fri, 25 Nov 2005 01:33:10 +0000
parents 5a8bc4b1f5b6
children
line wrap: on
line source

/*
 * Evolution integration plugin for Gaim
 *
 * Copyright (C) 2003 Christian Hammond.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program 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
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 */
#ifndef _GEVOLUTION_H_
#define _GEVOLUTION_H_

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <libebook/e-book.h>

enum
{
	ADDRBOOK_COLUMN_NAME,
	ADDRBOOK_COLUMN_URI,
	NUM_ADDRBOOK_COLUMNS
};

typedef struct
{
	GtkListStore *sources;
	EBook *active_book;
	GList *contacts;

} GevoAddrbooksSelector;

typedef struct
{
	GaimAccount *account;
	char *username;

	EBook *book;

	GtkWidget *win;
	GtkWidget *treeview;
	GtkWidget *addrbooks_combo;
	GtkWidget *search_field;
	GtkWidget *group_combo;
	GtkWidget *select_button;
	GtkWidget *account_optmenu;
	GtkListStore *model;

	GtkTreeModel *addrbooks;
	GList *contacts;

} GevoAddBuddyDialog;

typedef struct
{
	gboolean person_only;

	GaimAccount *account;
	GaimBuddy *buddy;

	EBook *book;
	EContact *contact;

	GtkWidget *win;
	GtkWidget *accounts_menu;
	GtkWidget *screenname;
	GtkWidget *firstname;
	GtkWidget *lastname;
	GtkWidget *email;
	GtkWidget *group_combo;
	GtkWidget *add_button;

	char *buddy_icon;

} GevoNewPersonDialog;

typedef struct
{
	GaimBuddy *buddy;

	EBook *book;

	GtkWidget *win;
	GtkWidget *treeview;
	GtkWidget *addrbooks_combo;
	GtkWidget *search_field;
	GtkWidget *assoc_button;
	GtkWidget *imhtml;
	GtkListStore *model;

	GtkTreeModel *addrbooks;
	GList *contacts;

} GevoAssociateBuddyDialog;

void gevo_add_buddy_dialog_show(GaimAccount *account, const char *username,
								const char *group, const char *alias);
void gevo_add_buddy_dialog_add_person(GevoAddBuddyDialog *dialog,
									  EContact *contact,
									  const char *name, GaimAccount *account,
									  const char *screenname);

void gevo_new_person_dialog_show(EBook *book, EContact *contact,
								 GaimAccount *account, const char *username,
								 const char *group, GaimBuddy *buddy,
								 gboolean person_only);

void gevo_add_buddy(GaimAccount *account, const char *group_name,
					const char *screenname, const char *alias);
GList *gevo_get_groups(void);

EContactField gevo_prpl_get_field(GaimAccount *account, GaimBuddy *buddy);
gboolean gevo_prpl_is_supported(GaimAccount *account, GaimBuddy *buddy);
gboolean gevo_load_addressbook(const gchar *uri, EBook **book, GError **error);

GevoAssociateBuddyDialog *gevo_associate_buddy_dialog_new(GaimBuddy *buddy);

GtkTreeModel *gevo_addrbooks_model_new(void);
void gevo_addrbooks_model_unref(GtkTreeModel *model);
void gevo_addrbooks_model_populate(GtkTreeModel *model);
EContact *gevo_search_buddy_in_contacts(GaimBuddy *buddy, EBookQuery *query);

#endif /* _GEVOLUTION_H_ */