diff options
author | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-04-21 14:14:52 +0000 |
---|---|---|
committer | watcherhd <watcherhd@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb> | 2011-04-21 14:14:52 +0000 |
commit | cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c (patch) | |
tree | 30df260fdc5a1b5a7049c2f8cac8b7ef17513d6d /miranda-wine/protocols/JabberG/jabber_list.h | |
parent | 19b6f534d2e784a1e120bf52c4aa07004798f473 (diff) |
svn.miranda.im is moving to a new home!
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
Diffstat (limited to 'miranda-wine/protocols/JabberG/jabber_list.h')
-rw-r--r-- | miranda-wine/protocols/JabberG/jabber_list.h | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/miranda-wine/protocols/JabberG/jabber_list.h b/miranda-wine/protocols/JabberG/jabber_list.h new file mode 100644 index 0000000..dabd81f --- /dev/null +++ b/miranda-wine/protocols/JabberG/jabber_list.h @@ -0,0 +1,174 @@ +/*
+
+Jabber Protocol Plugin for Miranda IM
+Copyright ( C ) 2002-04 Santithorn Bunchua
+Copyright ( C ) 2005-06 George Hazan
+
+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.
+
+File name : $Source: /cvsroot/miranda/miranda/protocols/JabberG/jabber_list.h,v $
+Revision : $Revision: 3651 $
+Last change on : $Date: 2006-08-30 16:54:52 +0400 (Срд, 30 Авг 2006) $
+Last change by : $Author: ghazan $
+
+*/
+
+#ifndef _JABBER_LIST_H_
+#define _JABBER_LIST_H_
+
+typedef enum {
+ LIST_ROSTER, // Roster list
+ LIST_AGENT, // Agent list to show on the Jabber Agents dialog
+ LIST_CHATROOM, // Groupchat room currently joined
+ LIST_ROOM, // Groupchat room list to show on the Jabber groupchat dialog
+ LIST_FILE, // Current file transfer session
+ LIST_BYTE, // Bytestream sending connection
+ LIST_FTSEND,
+ LIST_FTRECV
+} JABBER_LIST;
+
+typedef enum {
+ SUB_NONE,
+ SUB_TO,
+ SUB_FROM,
+ SUB_BOTH
+} JABBER_SUBSCRIPTION;
+
+typedef enum {
+ AFFILIATION_NONE,
+ AFFILIATION_OUTCAST,
+ AFFILIATION_MEMBER,
+ AFFILIATION_ADMIN,
+ AFFILIATION_OWNER
+} JABBER_GC_AFFILIATION;
+
+typedef enum {
+ ROLE_NONE,
+ ROLE_VISITOR,
+ ROLE_PARTICIPANT,
+ ROLE_MODERATOR
+} JABBER_GC_ROLE;
+
+typedef enum { // initial default to RSMODE_LASTSEEN
+ RSMODE_SERVER, // always let server decide ( always send correspondence without resouce name )
+ RSMODE_LASTSEEN, // use the last seen resource ( or let server decide if haven't seen anything yet )
+ RSMODE_MANUAL // specify resource manually ( see the defaultResource field - must not be NULL )
+} JABBER_RESOURCE_MODE;
+
+#define CLIENT_CAP_READY ( 1<<0 ) // have already done disco#info query
+#define CLIENT_CAP_SI ( 1<<1 ) // stream initiation ( si ) profile
+#define CLIENT_CAP_SIFILE ( 1<<2 ) // file transfer si profile
+#define CLIENT_CAP_BYTESTREAM ( 1<<3 ) // socks5 bytestream
+#define CLIENT_CAP_CHATSTAT ( 1<<4 ) // http://jabber.org/protocol/chatstates support (JEP-0085)
+
+#define AGENT_CAP_REGISTER ( 1<<13 )
+#define AGENT_CAP_SEARCH ( 1<<14 )
+#define AGENT_CAP_GROUPCHAT ( 1<<15 )
+
+#define CLIENT_CAP_FILE ( CLIENT_CAP_SI | CLIENT_CAP_SIFILE )
+
+struct JABBER_RESOURCE_STATUS
+{
+ int status;
+ TCHAR* resourceName;
+ TCHAR* statusMessage;
+ TCHAR* software;
+ TCHAR* version;
+ TCHAR* system;
+ unsigned int cap; // 0 = haven't done disco#info yet, see CLIENT_CAP_*
+ JABBER_GC_AFFILIATION affiliation;
+ JABBER_GC_ROLE role;
+};
+
+struct JABBER_LIST_ITEM
+{
+ JABBER_LIST list;
+ TCHAR* jid;
+
+ // LIST_ROSTER
+ // jid = jid of the contact
+ TCHAR* nick;
+ int resourceCount;
+ int status; // Main status, currently useful for transport where no resource information is kept.
+ // On normal contact, this is the same status as shown on contact list.
+ JABBER_RESOURCE_STATUS *resource;
+ int defaultResource; // index to resource[x] which is the default, negative ( -1 ) means no resource is chosen yet
+ JABBER_RESOURCE_MODE resourceMode;
+ JABBER_SUBSCRIPTION subscription;
+ TCHAR* statusMessage; // Status message when the update is to JID with no resource specified ( e.g. transport user )
+ TCHAR* group;
+ char* photoFileName;
+ int idMsgAckPending;
+ TCHAR* messageEventIdStr;
+ BOOL wantComposingEvent;
+ WORD cap; // See CLIENT_CAP_* above
+
+ // LIST_AGENT
+ // jid = jid of the agent
+ // WORD cap; // See AGENT_CAP_* above
+ TCHAR* name;
+ TCHAR* service;
+
+ // LIST_ROOM
+ // jid = room JID
+ // char* name; // room name
+ TCHAR* type; // room type
+
+ // LIST_CHATROOM
+ // jid = room JID
+ // char* nick; // my nick in this chat room ( SPECIAL: in TXT )
+ // JABBER_RESOURCE_STATUS *resource; // participant nicks in this room
+ BOOL bChatActive;
+ HWND hwndGcListBan;
+ HWND hwndGcListAdmin;
+ HWND hwndGcListOwner;
+
+ // LIST_FILE
+ // jid = string representation of port number
+ filetransfer* ft;
+ WORD port;
+
+ // LIST_BYTE
+ // jid = string representation of port number
+ JABBER_BYTE_TRANSFER *jbt;
+
+ // LIST_FTSEND
+ // jid = string representation of iq id
+ // ft = file transfer data
+ // jbt
+
+ // LIST_FTRECV
+ // jid = string representation of stream id ( sid )
+ // ft = file transfer data
+};
+
+void JabberListInit( void );
+void JabberListUninit( void );
+void JabberListWipe( void );
+int JabberListExist( JABBER_LIST list, const TCHAR* jid );
+JABBER_LIST_ITEM *JabberListAdd( JABBER_LIST list, const TCHAR* jid );
+void JabberListRemove( JABBER_LIST list, const TCHAR* jid );
+void JabberListRemoveList( JABBER_LIST list );
+void JabberListRemoveByIndex( int index );
+int JabberListFindNext( JABBER_LIST list, int fromOffset );
+JABBER_LIST_ITEM *JabberListGetItemPtr( JABBER_LIST list, const TCHAR* jid );
+JABBER_LIST_ITEM *JabberListGetItemPtrFromIndex( int index );
+
+int JabberListAddResource( JABBER_LIST list, const TCHAR* jid, int status, const TCHAR* statusMessage );
+void JabberListRemoveResource( JABBER_LIST list, const TCHAR* jid );
+TCHAR* JabberListGetBestResourceNamePtr( const TCHAR* jid );
+TCHAR* JabberListGetBestClientResourceNamePtr( const TCHAR* jid );
+
+#endif
|