view src/proxy.h @ 10559:c354b70d8502

[gaim-migrate @ 11937] (09:14:16) LSchiere2: um, my new tabs are appearing on the wrong size (09:14:20) LSchiere2: s/size/side/ (09:14:24) LSchiere2: and i can't drag and drop them (09:15:01) SeanEgn: Unimportant! It's coming out ;) (09:15:11) SeanEgn: But, yeah, the wrong size was just a silly mistake (09:17:07) LSchiere2: and control-tab is backwards also (09:17:28) SeanEgn: well, actually ctrl-tab is the correct direction. (09:17:40) SeanEgn: But because the tabs are in the wrong direction, it seems to go the wrong way. (09:17:52) SeanEgn: But it does indeed go from tab 0 to tab 1 to tab 2. (09:18:06) LSchiere2: i see (09:19:29) SeanEgn: Actually, it might be a GTK bug (09:20:06) LSchiere2: i am displeased (09:20:13) SeanEgn: but if you change GTK_PACK_END to GTK_PACK_START, in gtk_notebook_set_tab_label_packing(), it should probably change. (09:20:17) LSchiere2: on a side note, i do not remember gtk being in the list of upgraded packages (09:20:23) SeanEgn: I would assume the way we want it is _END (09:20:44) SeanEgn: no, it's new code that I added that's causing this. (09:21:00) LSchiere2: which file? (09:21:04) SeanEgn: The "bug" is symantic. I would expect GTK_PACK_END to pack new tabs to the right of everything. (09:21:05) SeanEgn: gtkconv.c (09:21:16) SeanEgn: because that's what packing in the end ususally does. (09:21:25) SeanEgn: here it seems to pack to the left of everything. committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Mon, 31 Jan 2005 14:36:26 +0000
parents 9fdbfe832fac
children 03a244acce57
line wrap: on
line source

/**
 * @file proxy.h Proxy 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_PROXY_H_
#define _GAIM_PROXY_H_

#include <glib.h>
#include "eventloop.h"

/**
 * A type of proxy connection.
 */
typedef enum
{
	GAIM_PROXY_USE_GLOBAL = -1,  /**< Use the global proxy information. */
	GAIM_PROXY_NONE = 0,         /**< No proxy.                         */
	GAIM_PROXY_HTTP,             /**< HTTP proxy.                       */
	GAIM_PROXY_SOCKS4,           /**< SOCKS 4 proxy.                    */
	GAIM_PROXY_SOCKS5,           /**< SOCKS 5 proxy.                    */
	GAIM_PROXY_USE_ENVVAR        /**< Use environmental settings.       */

} GaimProxyType;

/**
 * Information on proxy settings.
 */
typedef struct
{
	GaimProxyType type;   /**< The proxy type.  */

	char *host;           /**< The host.        */
	int   port;           /**< The port number. */
	char *username;       /**< The username.    */
	char *password;       /**< The password.    */

} GaimProxyInfo;


#include "account.h"

#ifdef __cplusplus
extern "C" {
#endif

/**************************************************************************/
/** @name Proxy structure API                                             */
/**************************************************************************/
/*@{*/

/**
 * Get the handle for the proxy system.
 *
 * @return the handle to the proxy system
 */
void *gaim_proxy_get_handle();

/**
 * Creates a proxy information structure.
 *
 * @return The proxy information structure.
 */
GaimProxyInfo *gaim_proxy_info_new(void);

/**
 * Destroys a proxy information structure.
 *
 * @param info The proxy information structure to destroy.
 */
void gaim_proxy_info_destroy(GaimProxyInfo *info);

/**
 * Sets the type of proxy.
 *
 * @param info The proxy information.
 * @param type The proxy type.
 */
void gaim_proxy_info_set_type(GaimProxyInfo *info, GaimProxyType type);

/**
 * Sets the proxy host.
 *
 * @param info The proxy information.
 * @param host The host.
 */
void gaim_proxy_info_set_host(GaimProxyInfo *info, const char *host);

/**
 * Sets the proxy port.
 *
 * @param info The proxy information.
 * @param port The port.
 */
void gaim_proxy_info_set_port(GaimProxyInfo *info, int port);

/**
 * Sets the proxy username.
 *
 * @param info     The proxy information.
 * @param username The username.
 */
void gaim_proxy_info_set_username(GaimProxyInfo *info, const char *username);

/**
 * Sets the proxy password.
 *
 * @param info     The proxy information.
 * @param password The password.
 */
void gaim_proxy_info_set_password(GaimProxyInfo *info, const char *password);

/**
 * Returns the proxy's type.
 *
 * @param info The proxy information.
 *
 * @return The type.
 */
GaimProxyType gaim_proxy_info_get_type(const GaimProxyInfo *info);

/**
 * Returns the proxy's host.
 *
 * @param info The proxy information.
 *
 * @return The host.
 */
const char *gaim_proxy_info_get_host(const GaimProxyInfo *info);

/**
 * Returns the proxy's port.
 *
 * @param info The proxy information.
 *
 * @return The port.
 */
int gaim_proxy_info_get_port(const GaimProxyInfo *info);

/**
 * Returns the proxy's username.
 *
 * @param info The proxy information.
 *
 * @return The username.
 */
const char *gaim_proxy_info_get_username(const GaimProxyInfo *info);

/**
 * Returns the proxy's password.
 *
 * @param info The proxy information.
 *
 * @return The password.
 */
const char *gaim_proxy_info_get_password(const GaimProxyInfo *info);

/*@}*/

/**************************************************************************/
/** @name Global Proxy API                                                */
/**************************************************************************/
/*@{*/

/**
 * Returns gaim's global proxy information.
 *
 * @return The global proxy information.
 */
GaimProxyInfo *gaim_global_proxy_get_info(void);

/*@}*/

/**************************************************************************/
/** @name Proxy API                                                       */
/**************************************************************************/
/*@{*/

/**
 * Initializes the proxy subsystem.
 */
void gaim_proxy_init(void);

/**
 * Makes a connection to the specified host and port.
 *
 * @param account The account making the connection.
 * @param host    The destination host.
 * @param port    The destination port.
 * @param func    The input handler function.
 * @param data    User-defined data.
 *
 * @return The socket handle.
 */
int gaim_proxy_connect(GaimAccount *account, const char *host, int port,
					   GaimInputFunction func, gpointer data);

/**
 * Makes a connection through a SOCKS5 proxy.
 *
 * @param gpi     The GaimProxyInfo specifying the proxy settings
 * @param host    The destination host.
 * @param port    The destination port.
 * @param func    The input handler function.
 * @param data    User-defined data.
 *
 * @return The socket handle.
 */
int gaim_proxy_connect_socks5(GaimProxyInfo *gpi, const char *host, int port,
					   GaimInputFunction func, gpointer data);

/*@}*/

#ifdef __cplusplus
}
#endif

#endif /* _GAIM_PROXY_H_ */