summaryrefslogtreecommitdiff
path: root/plugins/Clist_modern/modern_contact.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Clist_modern/modern_contact.cpp')
-rw-r--r--plugins/Clist_modern/modern_contact.cpp219
1 files changed, 0 insertions, 219 deletions
diff --git a/plugins/Clist_modern/modern_contact.cpp b/plugins/Clist_modern/modern_contact.cpp
deleted file mode 100644
index 7b1ba95544..0000000000
--- a/plugins/Clist_modern/modern_contact.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-
-Miranda IM: the free IM client for Microsoft* Windows*
-
-Copyright 2000-2008 Miranda ICQ/IM project,
-all portions of this codebase are copyrighted to the people
-listed in contributors.txt.
-
-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.
-*/
-#include "hdr/modern_commonheaders.h"
-#include "m_clui.h"
-#include "hdr/modern_clist.h"
-#include "hdr/modern_commonprototypes.h"
-
-struct
-{
- int m_cache_nStatus,order;
-} statusModeOrder[] = {
- {ID_STATUS_OFFLINE,500},
- {ID_STATUS_ONLINE,10},
- {ID_STATUS_AWAY,200},
- {ID_STATUS_DND,110},
- {ID_STATUS_NA,450},
- {ID_STATUS_OCCUPIED,100},
- {ID_STATUS_FREECHAT,0},
- {ID_STATUS_INVISIBLE,20},
- {ID_STATUS_ONTHEPHONE,150},
- {ID_STATUS_OUTTOLUNCH,425}};
-
-static int GetContactStatus(HANDLE hContact)
-{
- return (GetContactCachedStatus(hContact));
-}
-
-
-void cli_ChangeContactIcon(HANDLE hContact,int iIcon,int add)
-{
- corecli.pfnChangeContactIcon((HANDLE) hContact,(int) iIcon,(int) add);
-}
-
-static int GetStatusModeOrdering(int statusMode)
-{
- int i;
- for (i=0;i < SIZEOF(statusModeOrder);i++)
- if (statusModeOrder[i].m_cache_nStatus == statusMode) return statusModeOrder[i].order;
- return 1000;
-}
-
-
-DWORD CompareContacts2_getLMTime(HANDLE hContact)
-{
- HANDLE hDbEvent;
- DBEVENTINFO dbei = {0};
-
- hDbEvent = (HANDLE)CallService(MS_DB_EVENT_FINDLAST, (WPARAM)hContact, 0);
- while(hDbEvent) {
- dbei.cbSize = sizeof(dbei);
- dbei.pBlob = 0;
- dbei.cbBlob = 0;
- CallService(MS_DB_EVENT_GET, (WPARAM)hDbEvent, (LPARAM)&dbei);
- if (dbei.eventType == EVENTTYPE_MESSAGE && !(dbei.flags & DBEF_SENT))
- return dbei.timestamp;
- hDbEvent = (HANDLE)CallService(MS_DB_EVENT_FINDPREV, (WPARAM)hDbEvent, 0);
- }
- return 0;
-}
-
-#define SAFESTRING(a) a?a:""
-#define SAFETSTRING(a) a?a:_T("")
-
-int GetProtoIndex(char * szName)
-{
- PROTOACCOUNT **accs = NULL;
- int accCount = 0;
- int i;
- if ( !szName) return -1;
- ProtoEnumAccounts( &accCount, &accs );
- for (i=0; i < accCount; i++)
- if ( !mir_strcmpi(szName,accs[i]->szModuleName))
- return accs[i]->iOrder;
- return -1;
-}
-
-int CompareContacts2(const struct ClcContact *contact1,const struct ClcContact *contact2, int by)
-{
-
- HANDLE a;
- HANDLE b;
- TCHAR *namea, *nameb;
- int statusa,statusb;
- char *szProto1,*szProto2;
-
- if ((INT_PTR)contact1 < 100 || (INT_PTR)contact2 < 100) return 0;
-
- a = contact1->hContact;
- b = contact2->hContact;
-
- namea = (TCHAR *)contact1->szText;
- statusa = GetContactCachedStatus(contact1->hContact);
- szProto1 = contact1->proto;
-
- nameb = (TCHAR *)contact2->szText;
- statusb = GetContactCachedStatus(contact2->hContact);
- szProto2 = contact2->proto;
-
-
- if (by == SORTBY_STATUS)
- { //status
- int ordera,orderb;
- ordera = GetStatusModeOrdering(statusa);
- orderb = GetStatusModeOrdering(statusb);
- if (ordera != orderb) return ordera-orderb;
- else return 0;
- }
-
-
- if (g_CluiData.fSortNoOfflineBottom == 0 && (statusa == ID_STATUS_OFFLINE) != (statusb == ID_STATUS_OFFLINE)) { //one is offline: offline goes below online
- return 2*(statusa == ID_STATUS_OFFLINE)-1;
- }
-
- if (by == SORTBY_NAME)
- { //name
- return mir_tstrcmpi(namea,nameb);
- }
- if (by == SORTBY_NAME_LOCALE)
- { //name
- static int LocaleId = -1;
- if (LocaleId == -1) LocaleId = CallService(MS_LANGPACK_GETLOCALE,0,0);
- return (CompareString(LocaleId,NORM_IGNORECASE,SAFETSTRING(namea),-1,SAFETSTRING(nameb),-1))-2;
- }
- else if (by == SORTBY_LASTMSG)
- { //last message
- DWORD ta = CompareContacts2_getLMTime(a);
- DWORD tb = CompareContacts2_getLMTime(b);
- return tb-ta;
- }
- else if (by == SORTBY_PROTO)
- {
- int rc = GetProtoIndex(szProto1)-GetProtoIndex(szProto2);
-
- if (rc != 0 && (szProto1 != NULL && szProto2 != NULL)) return rc;
- }
- else if (by == SORTBY_RATE)
- return contact2->bContactRate-contact1->bContactRate;
- // else :o)
- return 0;
-}
-
-int cliCompareContacts(const struct ClcContact *contact1,const struct ClcContact *contact2)
-{
- int i, r;
- for (i=0; i < SIZEOF(g_CluiData.bSortByOrder); i++)
- {
- r = CompareContacts2(contact1, contact2, g_CluiData.bSortByOrder[i]);
- if (r != 0)
- return r;
- }
- return 0;
-}
-
-#undef SAFESTRING
-
-INT_PTR ContactChangeGroup(WPARAM wParam,LPARAM lParam)
-{
- CallService(MS_CLUI_CONTACTDELETED,wParam,0);
- if ((HANDLE)lParam == NULL)
- db_unset((HANDLE)wParam,"CList","Group");
- else
- db_set_ws((HANDLE)wParam,"CList","Group",pcli->pfnGetGroupName(lParam, NULL));
- CallService(MS_CLUI_CONTACTADDED,wParam,ExtIconFromStatusMode((HANDLE)wParam,(char*)CallService(MS_PROTO_GETCONTACTBASEPROTO,wParam,0),GetContactStatus((HANDLE)wParam)));
- return 0;
-}
-
-INT_PTR ToggleHideOffline(WPARAM wParam,LPARAM lParam)
-{
- return pcli->pfnSetHideOffline((WPARAM)-1,0);
-}
-
-INT_PTR ToggleGroups(WPARAM wParam,LPARAM lParam)
-{
-
- db_set_b(NULL, "CList", "UseGroups",
- (BYTE) !db_get_b(NULL, "CList", "UseGroups", SETTING_USEGROUPS_DEFAULT));
- pcli->pfnLoadContactTree();
- return 0;
-}
-
-INT_PTR SetUseGroups(WPARAM wParam, LPARAM lParam)
-{
- int newVal = !(GetWindowLongPtr(pcli->hwndContactTree,GWL_STYLE)&CLS_USEGROUPS);
- if ( wParam != -1 )
- {
- if ( !newVal == wParam ) return 0;
- newVal = wParam;
- }
- db_set_b(NULL,"CList","UseGroups",(BYTE)newVal);
- SendMessage(pcli->hwndContactTree,CLM_SETUSEGROUPS,newVal,0);
- return 0;
-}
-
-INT_PTR ToggleSounds(WPARAM wParam,LPARAM lParam)
-{
- db_set_b(NULL, "Skin", "UseSound",
- (BYTE) !db_get_b(NULL, "Skin", "UseSound", SETTING_ENABLESOUNDS_DEFAULT ));
- return 0;
-}