diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2014-07-21 21:12:43 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2014-07-21 21:12:43 +0000 |
commit | 2e784e23903934a362dc52e3cd2c8ed742a64557 (patch) | |
tree | b49ab948f101ec780309bc177fc860331a97cd03 /plugins/Clist_mw/src/clc.cpp | |
parent | 37ed485afc5f1733c1fafb2180886d54b7fd7f3d (diff) |
Clist_mw moved to deprecated
git-svn-id: http://svn.miranda-ng.org/main/trunk@9914 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Clist_mw/src/clc.cpp')
-rw-r--r-- | plugins/Clist_mw/src/clc.cpp | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/plugins/Clist_mw/src/clc.cpp b/plugins/Clist_mw/src/clc.cpp deleted file mode 100644 index a3c382c1cc..0000000000 --- a/plugins/Clist_mw/src/clc.cpp +++ /dev/null @@ -1,319 +0,0 @@ -/*
-
-Miranda NG: the free IM client for Microsoft* Windows*
-
-Copyright (c) 2012-14 Miranda NG project (http://miranda-ng.org),
-Copyright (c) 2000-03 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 "commonheaders.h"
-
-int DefaultImageListColorDepth = ILC_COLOR32;
-
-HIMAGELIST himlCListClc;
-
-static HANDLE hSettingChanged1;
-
-int BgStatusBarChange(WPARAM wParam, LPARAM lParam);
-
-int BgClcChange(WPARAM wParam, LPARAM lParam);
-int OnFrameTitleBarBackgroundChange(WPARAM wParam, LPARAM lParam);
-
-void InitDisplayNameCache(SortedList *list);
-void FreeDisplayNameCache(SortedList *list);
-
-void UnloadCLUIModule( void );
-
-extern int sortByStatus;
-struct ClcContact * hitcontact = NULL;
-
-extern LRESULT ( CALLBACK *saveContactListControlWndProc )(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-static int stopStatusUpdater = 0;
-void StatusUpdaterThread(void*)
-{
- int i,curdelay,lastcheck = 0;
- MCONTACT hContact = db_find_first();
-
- SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_LOWEST);
-
- while (!stopStatusUpdater) {
- curdelay = db_get_b(hContact,"CList","StatusMsgAutoDelay",15000);
- if (curdelay<5000) curdelay = 5000;
-
- if ((int)(GetTickCount()-lastcheck)>curdelay)
- {
- lastcheck = GetTickCount();
- if ( db_get_b(hContact,"CList","StatusMsgAuto",0)) {
- for (i = 0; i<5; i++) {
- if (hContact != NULL) {
- ClcCacheEntry *pdnce = (ClcCacheEntry *)pcli->pfnGetCacheEntry(hContact);
- if (pdnce && !pdnce->protoNotExists && pdnce->szProto)
- CallContactService(hContact, PSS_GETAWAYMSG, 0, 0);
-
- hContact = db_find_next(hContact);
- }
- if (hContact == NULL) {
- hContact = db_find_first();
- if (hContact == NULL)
- break;
- }
- Sleep(500);
- }
- }
- }
- //Sleep( db_get_b(hContact,"CList","StatusMsgAutoDelay",100));
- Sleep(200);
- }
-}
-
-HMENU BuildGroupPopupMenu( ClcGroup* group )
-{
- return (HMENU)CallService(MS_CLIST_MENUBUILDSUBGROUP,(WPARAM)group,0);
-}
-
-void SortClcByTimer (HWND hwnd)
-{
- KillTimer(hwnd,TIMERID_DELAYEDRESORTCLC);
- SetTimer(hwnd,TIMERID_DELAYEDRESORTCLC,db_get_b(NULL,"CLUI","DELAYEDTIMER",200),NULL);
-}
-
-static int ClcSettingChanged(WPARAM hContact, LPARAM lParam)
-{
- DBCONTACTWRITESETTING *cws = (DBCONTACTWRITESETTING*)lParam;
-
- if (hContact != NULL && !strcmp(cws->szModule, META_PROTO) && !strcmp(cws->szSetting, "ParentMeta"))
- pcli->pfnClcBroadcast(INTM_NAMEORDERCHANGED, 0, 0);
-
- if (hContact != NULL && !strcmp(cws->szModule, "CList")) {
- if (!strcmp(cws->szSetting, "noOffline"))
- pcli->pfnClcBroadcast(INTM_NAMEORDERCHANGED, hContact, lParam);
- else if (!strcmp(cws->szSetting, "StatusMsg"))
- pcli->pfnClcBroadcast(INTM_STATUSMSGCHANGED, hContact, lParam);
- }
- return 0;
-}
-
-static int ClcModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("Status bar background")"/StatusBar"), 0);
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("List background")"/CLC"), 0);
- CallService(MS_BACKGROUNDCONFIG_REGISTER, (WPARAM)(LPGEN("Frames title bar background")"/FrameTitleBar"), 0);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, BgClcChange);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, BgStatusBarChange);
- HookEvent(ME_BACKGROUNDCONFIG_CHANGED, OnFrameTitleBarBackgroundChange);
- return 0;
-}
-
-static int ClcShutdown(WPARAM wParam, LPARAM lParam)
-{
- UnhookEvent(hSettingChanged1);
- UnloadCLUIModule();
- return 0;
-}
-
-LRESULT CALLBACK ContactListControlWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- struct ClcData *dat = (struct ClcData*)GetWindowLongPtr(hwnd, 0);
- if (msg >= CLM_FIRST && msg < CLM_LAST)
- return pcli->pfnProcessExternalMessages(hwnd, dat, msg, wParam, lParam);
-
- switch (msg) {
- case WM_CREATE:
- dat = (struct ClcData*)mir_calloc(sizeof(struct ClcData));
- SetWindowLongPtr(hwnd, 0, (LONG_PTR)dat);
- InitDisplayNameCache(&dat->lCLCContactsCache);
- break;
-
- case INTM_ICONCHANGED:
- {
- int recalcScrollBar = 0, shouldShow;
- MCONTACT hSelItem = NULL;
- struct ClcContact *selcontact = NULL;
- ClcCacheEntry *cacheEntry = GetContactFullCacheEntry(wParam);
-
- WORD status;
- int needsResort = 0;
-
- char *szProto = cacheEntry->szProto;
- if (szProto == NULL)
- status = ID_STATUS_OFFLINE;
- else
- status = cacheEntry->status;
-
- // this means an offline msg is flashing, so the contact should be shown
- shouldShow = (GetWindowLongPtr(hwnd, GWL_STYLE) & CLS_SHOWHIDDEN || !cacheEntry->bIsHidden) &&
- (!pcli->pfnIsHiddenMode(dat, status) || cacheEntry->noHiddenOffline || pcli->pfnGetContactIcon(wParam) != LOWORD(lParam));
-
- ClcContact *contact;
- ClcGroup *group;
- if (!FindItem(hwnd, dat, wParam, &contact, &group, NULL)) {
- if (shouldShow && CallService(MS_DB_CONTACT_IS, wParam, 0)) {
- if (dat->selection >= 0 && GetRowByIndex(dat, dat->selection, &selcontact, NULL) != -1)
- hSelItem = (MCONTACT)pcli->pfnContactToHItem(selcontact);
- AddContactToTree(hwnd, dat, wParam, 0, 0);
- needsResort = 1;
- recalcScrollBar = 1;
- FindItem(hwnd, dat, wParam, &contact, NULL, NULL);
- if (contact) {
- contact->iImage = (WORD)lParam;
- pcli->pfnNotifyNewContact(hwnd, wParam);
- dat->needsResort = 1;
- }
- }
- }
- else {
- //item in list already
- DWORD style = GetWindowLongPtr(hwnd, GWL_STYLE);
- if (contact->iImage == (WORD)lParam) break;
- if (sortByStatus) dat->needsResort = 1;
-
- if (!shouldShow && !(style & CLS_NOHIDEOFFLINE) && (style & CLS_HIDEOFFLINE || group->hideOffline)) {
- if (dat->selection >= 0 && GetRowByIndex(dat, dat->selection, &selcontact, NULL) != -1)
- hSelItem = (MCONTACT)pcli->pfnContactToHItem(selcontact);
- RemoveItemFromGroup(hwnd, group, contact, 0);
- recalcScrollBar = 1;
- dat->needsResort = 1;
- }
- else {
- int oldflags;
- contact->iImage = (WORD)lParam;
- oldflags = contact->flags;
- if (!pcli->pfnIsHiddenMode(dat, status) || cacheEntry->noHiddenOffline) contact->flags |= CONTACTF_ONLINE;
- else contact->flags &= ~CONTACTF_ONLINE;
- if (oldflags != contact->flags)
- dat->needsResort = 1;
- }
- }
- if (hSelItem) {
- ClcGroup *selgroup;
- if (FindItem(hwnd, dat, hSelItem, &selcontact, &selgroup, NULL))
- dat->selection = GetRowsPriorTo(&dat->list, selgroup, List_IndexOf((SortedList*)&selgroup->cl, selcontact));
- else
- dat->selection = -1;
- }
-
- SortClcByTimer(hwnd);
- if (recalcScrollBar) RecalcScrollBar(hwnd, dat);
- goto LBL_Exit;
- }
- case INTM_STATUSMSGCHANGED:
- {
- DBVARIANT dbv;
-
- if (!(dat->style & CLS_SHOWSTATUSMESSAGES))
- break;
-
- ClcContact *contact;
- ClcGroup *group;
- if (FindItem(hwnd, dat, wParam, &contact, &group, NULL) && contact != NULL) {
- contact->flags &= ~CONTACTF_STATUSMSG;
- if (!db_get_ts(wParam, "CList", "StatusMsg", &dbv)) {
- int j;
- if (dbv.ptszVal == NULL || _tcslen(dbv.ptszVal) == 0) break;
- lstrcpyn(contact->szStatusMsg, dbv.ptszVal, SIZEOF(contact->szStatusMsg));
- for (j = (int)_tcslen(contact->szStatusMsg) - 1; j >= 0; j--) {
- if (contact->szStatusMsg[j] == '\r' || contact->szStatusMsg[j] == '\n' || contact->szStatusMsg[j] == '\t') {
- contact->szStatusMsg[j] = ' ';
- }
- }
- db_free(&dbv);
- if (contact->szStatusMsg[0] != 0) {
- contact->flags |= CONTACTF_STATUSMSG;
- dat->needsResort = TRUE;
- }
- }
- }
-
- InvalidateRect(hwnd, NULL, TRUE);
-
- SortClcByTimer(hwnd);
- RecalcScrollBar(hwnd, dat);
- goto LBL_Exit;
- }
-
- case WM_TIMER:
- if (wParam == TIMERID_DELAYEDREPAINT) {
- KillTimer(hwnd, TIMERID_DELAYEDREPAINT);
- InvalidateRect(hwnd, NULL, FALSE);
- break;
- }
-
- if (wParam == TIMERID_SUBEXPAND) {
- KillTimer(hwnd, TIMERID_SUBEXPAND);
- if (hitcontact) {
- if (hitcontact->SubExpanded) hitcontact->SubExpanded = 0; else hitcontact->SubExpanded = 1;
- db_set_b(hitcontact->hContact, "CList", "Expanded", hitcontact->SubExpanded);
- }
- hitcontact = NULL;
- dat->needsResort = 1;
- SortCLC(hwnd, dat, 1);
- RecalcScrollBar(hwnd, dat);
- break;
- }
- break;
-
- case WM_DESTROY:
- FreeDisplayNameCache(&dat->lCLCContactsCache);
- stopStatusUpdater = 1;
- break;
- }
-
- LRESULT res = saveContactListControlWndProc(hwnd, msg, wParam, lParam);
- switch (msg) {
- case WM_CREATE:
- mir_forkthread(StatusUpdaterThread, 0);
- break;
- }
- return res;
-
-LBL_Exit:
- return DefWindowProc(hwnd, msg, wParam, lParam);
-}
-
-int LoadCLCModule(void)
-{
- LoadCLUIFramesModule();
-
- himlCListClc = (HIMAGELIST)CallService(MS_CLIST_GETICONSIMAGELIST, 0, 0);
-
- HookEvent(ME_SYSTEM_MODULESLOADED, ClcModulesLoaded);
- hSettingChanged1 = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, ClcSettingChanged);
- HookEvent(ME_OPT_INITIALISE, ClcOptInit);
- HookEvent(ME_SYSTEM_SHUTDOWN, ClcShutdown);
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static INT_PTR CLUIGetCapsService(WPARAM wParam, LPARAM lParam)
-{
- switch (wParam) {
- case CLUICAPS_FLAGS1:
- return CLUIF_HIDEEMPTYGROUPS | CLUIF_DISABLEGROUPS | CLUIF_HASONTOPOPTION | CLUIF_HASAUTOHIDEOPTION;
- case CLUICAPS_FLAGS2:
- return MAKELONG(EXTRA_ICON_COUNT, 1);
- }
- return 0;
-}
-
-int PreloadCLCModule()
-{
- CreateServiceFunction(MS_CLUI_GETCAPS, CLUIGetCapsService);
- return 0;
-}
|