annotate src/gaim-socket.h @ 4469:d76095396a0e

[gaim-migrate @ 4744] Phase 2 of the conversation rewrite! Did you think I was done? Okay everybody, the prefs page was slightly redesigned. Not much, though. It needs an overhaul, and still, not everything works.. What we have now is: Conversations | |- IMs |- Chats `- Tabs But that's not the good part of this patch. Oh no, not close. You see, in Conversations, we now have a "Placement" drop-down box. Though this prefs page is ugly and will eventually be redesigned, this gives you the opportunity to set one of a number of different types of conversation placement options. The defaults are: - Last created window: Adds the new conversation to the last created window, like how things have been lately. - New window: Adds the new conversation to a brand new window, every time. Tabs are still there, so you can drag them between windows if you want to manually group them. - By group: This is my new favorite. This will put the new conversation in whatever window it finds first that has another member from that same group on your buddy list. If it doesn't find one, it creates a new window. If the person you IM'd or the person who IM'd you is not on your list, it gets put in a window with other people not on your list. These are the only ones implemented, but don't think you're limited to that. You see, we have new API functions for registering these Conversation Placement functions. All a plugin would need to do is to write a function, take into account OPT_CONVO_COMBINE (oh yeah, "Show IMs and chats in same tabbed window" works again), make sure the conversation is added _somewhere_, and then just register that function. If the plugin is loaded, the user can select it from the existing drop-down box. Cool, huh? Make sure to unregister the function when the plugin is unloaded. Have fun. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Thu, 30 Jan 2003 09:22:15 +0000
parents 3da42b64304e
children fa6395637e2c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3478
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /*
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * gaim-remote
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 *
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 * Copyright (C) 2002, Sean Egan <bj91704@binghamton.edu>
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 *
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * (at your option) any later version.
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 *
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * GNU General Public License for more details.
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 *
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 *
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 */
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 #ifndef _GAIM_SOCKET_H_
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 #define _GAIM_SOCKET_H_
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 struct gaim_cui_packet {
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 guchar type;
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27 guchar subtype;
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 guint32 length;
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 char *data;
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 };
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 void cui_send_packet (int fd, struct gaim_cui_packet *p);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34 gint gaim_connect_to_session(gint session);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 gboolean gaim_session_exists(int sess);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 struct gaim_cui_packet *cui_packet_new(guchar type, guchar subtype);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 void cui_packet_free(struct gaim_cui_packet *p);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 void cui_packet_append_string(struct gaim_cui_packet *p, char *str);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 void cui_packet_append_char(struct gaim_cui_packet *p, char c);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 void cui_packet_append_raw(struct gaim_cui_packet *p, char *str, int len);
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44 #endif /* _GAIM_SOCKET_H_ */