From 3b55a62fdcb1f8222de3c2c8fbed530792c419a0 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 12 Oct 2012 14:53:57 +0000 Subject: GTalkExt, ICQ, IRC, Jabber: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1890 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/JabberG/src/jabber_list.h | 202 ++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 protocols/JabberG/src/jabber_list.h (limited to 'protocols/JabberG/src/jabber_list.h') diff --git a/protocols/JabberG/src/jabber_list.h b/protocols/JabberG/src/jabber_list.h new file mode 100644 index 0000000000..503a479ece --- /dev/null +++ b/protocols/JabberG/src/jabber_list.h @@ -0,0 +1,202 @@ +/* + +Jabber Protocol Plugin for Miranda IM +Copyright ( C ) 2002-04 Santithorn Bunchua +Copyright ( C ) 2005-12 George Hazan +Copyright ( C ) 2007 Maxim Mluhov + +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 _JABBER_LIST_H_ +#define _JABBER_LIST_H_ + +#include "jabber_caps.h" + +typedef enum { + LIST_ROSTER, // Roster list + 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_FTRECV, + LIST_BOOKMARK, + LIST_VCARD_TEMP, + LIST_FTIQID +} 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; + + +struct JABBER_XEP0232_SOFTWARE_INFO +{ + TCHAR* szOs; + TCHAR* szOsVersion; + TCHAR* szSoftware; + TCHAR* szSoftwareVersion; + TCHAR* szXMirandaCoreVersion; + BOOL bXMirandaIsUnicode; + BOOL bXMirandaIsAlpha; + BOOL bXMirandaIsDebug; + JABBER_XEP0232_SOFTWARE_INFO() { + ZeroMemory( this, sizeof( JABBER_XEP0232_SOFTWARE_INFO )); + } + ~JABBER_XEP0232_SOFTWARE_INFO() { + mir_free(szOs); + mir_free(szOsVersion); + mir_free(szSoftware); + mir_free(szSoftwareVersion); + mir_free(szXMirandaCoreVersion); + } +}; + +struct JABBER_RESOURCE_STATUS +{ + int status; + TCHAR* resourceName; + TCHAR* nick; + TCHAR* statusMessage; + TCHAR* software; + TCHAR* version; + TCHAR* system; + signed char priority; // resource priority, -128..+127 + time_t idleStartTime;// XEP-0012 support + JABBER_GC_AFFILIATION affiliation; + JABBER_GC_ROLE role; + TCHAR* szRealJid; // real jid for jabber conferences + + // XEP-0115 support + TCHAR* szCapsNode; + TCHAR* szCapsVer; + TCHAR* szCapsExt; + DWORD dwVersionRequestTime; + DWORD dwDiscoInfoRequestTime; + JabberCapsBits jcbCachedCaps; + JabberCapsBits jcbManualDiscoveredCaps; + + // XEP-0085 gone event support + BOOL bMessageSessionActive; + JABBER_XEP0232_SOFTWARE_INFO* pSoftwareInfo; +}; + +struct JABBER_LIST_ITEM +{ + JABBER_LIST list; + TCHAR* jid; + + // LIST_ROSTER + // jid = jid of the contact + TCHAR* nick; + int resourceCount; + JABBER_RESOURCE_STATUS *resource; + JABBER_RESOURCE_STATUS itemResource; // resource for jids without /resource node + int lastSeenResource; // index to resource[x] which was last seen active + int manualResource; // manually set index to resource[x] +// 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* group; + TCHAR* photoFileName; + TCHAR* messageEventIdStr; + + // LIST_AGENT + // jid = jid of the agent + 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; + int iChatState; + // BOOL bAutoJoin; // chat sessio was started via auto-join + + // LIST_FILE + // jid = string representation of port number + filetransfer* ft; + WORD port; + + // LIST_BYTE + // jid = string representation of port number + JABBER_BYTE_TRANSFER *jbt; + + JABBER_IBB_TRANSFER *jibb; + + // LIST_FTRECV + // jid = string representation of stream id ( sid ) + // ft = file transfer data + + //LIST_BOOKMARK + // jid = room JID + // TCHAR* nick; // my nick in this chat room + // TCHAR* name; // name of the bookmark + // TCHAR* type; // type of bookmark ("url" or "conference") + TCHAR* password; // password for room + BOOL bAutoJoin; + + BOOL bUseResource; +}; + +struct JABBER_HTTP_AVATARS +{ + char * Url; + HANDLE hContact; + + JABBER_HTTP_AVATARS(const TCHAR* tUrl, HANDLE thContact) + : Url(mir_t2a(tUrl)), hContact(thContact) {} + + ~JABBER_HTTP_AVATARS() { mir_free(Url); } + + static int compare(const JABBER_HTTP_AVATARS *p1, const JABBER_HTTP_AVATARS *p2) + { return strcmp(p1->Url, p2->Url); } +}; + +#endif -- cgit v1.2.3