view src/privacy.h @ 9459:dbeca8eca296

[gaim-migrate @ 10283] (08:24:24) LSchiere: nosnilmot: https://sourceforge.net/tracker/?func=detail&atid=100235&aid=972285&group_id=235 (08:37:39) nosnilmot: LSchiere: the only way I can reproduce anything like what's reported in that bug is by having the formatting toolbar disabled in prefs, and manually enabling it each time I start a new conversation (08:38:12) LSchiere: nosnilmot: can you fix that case? ;-) (08:38:34) nosnilmot: LSchiere: I doubt it (08:38:42) LSchiere: :-/ (08:39:00) nosnilmot: that would seem to be a stupid case to support, if the user really wants the formatting toolbar then they should just enable it in prefs! (08:39:51) LSchiere: now that's not quite so true. i've got it globally disabled and i've been known to enable it just long enough to remember the code to a smiley i've forgotten (08:40:52) nosnilmot: actually... how about if I try to check if the formatting toolbar is present, and if it's presence doesn't match preferences, don't save the conv size? (08:41:10) LSchiere: that works committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Tue, 06 Jul 2004 12:58:29 +0000
parents 068db3a28cf6
children f03dce7ea408
line wrap: on
line source

/**
 * @file privacy.h Privacy API
 * @ingroup core
 *
 * gaim
 *
 * Gaim is the legal property of its developers, whose names are too numerous
 * to list here.  Please refer to the COPYRIGHT file distributed with this
 * source distribution.
 *
 * 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 _GAIM_PRIVACY_H_
#define _GAIM_PRIVACY_H_

#include "account.h"

/**
 * Privacy data types.
 */
typedef enum _GaimPrivacyType
{
	GAIM_PRIVACY_ALLOW_ALL = 1,
	GAIM_PRIVACY_DENY_ALL,
	GAIM_PRIVACY_ALLOW_USERS,
	GAIM_PRIVACY_DENY_USERS,
	GAIM_PRIVACY_ALLOW_BUDDYLIST
} GaimPrivacyType;

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Privacy core/UI operations.
 */
typedef struct
{
	void (*permit_added)(GaimAccount *account, const char *name);
	void (*permit_removed)(GaimAccount *account, const char *name);
	void (*deny_added)(GaimAccount *account, const char *name);
	void (*deny_removed)(GaimAccount *account, const char *name);

} GaimPrivacyUiOps;

/**
 * Adds a user to the account's permit list.
 *
 * @param account    The account.
 * @param name       The name of the user to add to the list.
 * @param local_only If TRUE, only the local list is updated, and not
 *                   the server.
 *
 * @return TRUE if the user was added successfully, or @c FALSE otherwise.
 */
gboolean gaim_privacy_permit_add(GaimAccount *account, const char *name,
								 gboolean local_only);

/**
 * Removes a user from the account's permit list.
 *
 * @param account    The account.
 * @param name       The name of the user to add to the list.
 * @param local_only If TRUE, only the local list is updated, and not
 *                   the server.
 *
 * @return TRUE if the user was removed successfully, or @c FALSE otherwise.
 */
gboolean gaim_privacy_permit_remove(GaimAccount *account, const char *name,
									gboolean local_only);

/**
 * Adds a user to the account's deny list.
 *
 * @param account    The account.
 * @param name       The name of the user to add to the list.
 * @param local_only If TRUE, only the local list is updated, and not
 *                   the server.
 *
 * @return TRUE if the user was added successfully, or @c FALSE otherwise.
 */
gboolean gaim_privacy_deny_add(GaimAccount *account, const char *name,
							   gboolean local_only);

/**
 * Removes a user from the account's deny list.
 *
 * @param account    The account.
 * @param name       The name of the user to add to the list.
 * @param local_only If TRUE, only the local list is updated, and not
 *                   the server.
 *
 * @return TRUE if the user was removed successfully, or @c FALSE otherwise.
 */
gboolean gaim_privacy_deny_remove(GaimAccount *account, const char *name,
								  gboolean local_only);

/**
 * Sets the UI operations structure for the privacy subsystem.
 *
 * @param ops The UI operations structure.
 */
void gaim_privacy_set_ui_ops(GaimPrivacyUiOps *ops);

/**
 * Returns the UI operations structure for the privacy subsystem.
 *
 * @return The UI operations structure.
 */
GaimPrivacyUiOps *gaim_privacy_get_ui_ops(void);

/**
 * Initializes the privacy subsystem.
 */
void gaim_privacy_init(void);

#ifdef __cplusplus
}
#endif

#endif /* _GAIM_PRIVACY_H_ */