From da9f6e8a856fc87172fb0d5997c607b4a930c102 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 20 Jul 2012 09:19:04 +0000 Subject: IEView, IgnoreState: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1070 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/IgnoreState/main.cpp | 288 ------------------------------------------- 1 file changed, 288 deletions(-) delete mode 100644 plugins/IgnoreState/main.cpp (limited to 'plugins/IgnoreState/main.cpp') diff --git a/plugins/IgnoreState/main.cpp b/plugins/IgnoreState/main.cpp deleted file mode 100644 index c68e6f6d2d..0000000000 --- a/plugins/IgnoreState/main.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/* - IgnoreState plugin for Miranda-IM (www.miranda-im.org) - (c) 2010 by Kildor - - 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" - -HINSTANCE g_hInst; - -HANDLE hHookModulesLoaded = NULL, hSystemOKToExit = NULL, hOptInitialise = NULL, hIcoLibIconsChanged = NULL; -HANDLE hHookExtraIconsRebuild = NULL, hHookExtraIconsApply = NULL, hContactSettingChanged = NULL; -HANDLE hPrebuildContactMenu = NULL; -HANDLE hExtraIcon = NULL; -int hLangpack; - -INT currentFilter = 0; -//static int bUseMirandaSettings = 0; - -IconExtraColumn g_IECIgnoreFull = {0}; -IconExtraColumn g_IECIgnorePart = {0}; -IconExtraColumn g_IECIgnoreMess = {0}; -IconExtraColumn g_IECClear = {0}; - - - - -INT clistIcon = 0; //Icon slot to use -//DWORD dMask = IGNOREEVENT_USERONLINE; // by default hide online notification - -//DWORD dIgnore = 0x0; - -PLUGININFOEX pluginInfo={ - sizeof(PLUGININFOEX), - __PLUGIN_NAME, - PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), - __DESCRIPTION, - __AUTHOR, - __AUTHOREMAIL, - __COPYRIGHT, - __AUTHORWEB, - UNICODE_AWARE, - {0xa6872bcd, 0xf2a1, 0x41b8, {0xb2, 0xf1, 0xdd, 0x7c, 0xec, 0x05, 0x57, 0x34}} - // a6872bcd-f2a1-41b8-b2f1-dd7cec055734 -}; - -extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) -{ - g_hInst = hinstDLL; - return TRUE; -} - -// плагининфо -extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) -{ - return &pluginInfo; -} - -extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_IGNORESRATE, MIID_LAST}; - -int onSystemOKToExit(WPARAM wParam,LPARAM lParam) -{ - UnhookEvent(hHookModulesLoaded); - UnhookEvent(hHookExtraIconsRebuild); - UnhookEvent(hHookExtraIconsApply); - UnhookEvent(hOptInitialise); - UnhookEvent(hSystemOKToExit); - if (hIcoLibIconsChanged) UnhookEvent(hIcoLibIconsChanged); - if (hContactSettingChanged) - UnhookEvent(hContactSettingChanged); - - return 0; -} - - -inline BOOL checkState(int type) -{ - return ((currentFilter>>(type-1))&1); -} - - -INT_PTR isIgnored(HANDLE hContact, int type) -{ - int i = 0, all = 0, filtered = 0; - - if (type == IGNOREEVENT_ALL) - { - int cii = SIZEOF(ii); - for (i = 1; i < cii; i++) - { - if (isIgnored(hContact, ii[i].type)) - { -// checkState(ii[i].type) ? filtered++ : all++; - ii[i].filtered ? filtered++ : all++; - } - } - return (all+filtered == cii-1) ? 1 : (all > 0 ? -1 : 0) ; - } - else - return CallService(MS_IGNORE_ISIGNORED, (WPARAM)hContact, (LPARAM)type); -} - -int onExtraImageApplying(WPARAM wParam, LPARAM lParam) -{ - HANDLE hContact = (HANDLE)wParam; - int ignore = isIgnored(hContact, IGNOREEVENT_ALL); - if (hExtraIcon != NULL) - { - if (ignore == 1) - { - ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_full"); - } - else if (ignore == 0) - { - ExtraIcon_SetIcon(hExtraIcon, hContact, ""); - } - else if (isIgnored((HANDLE)wParam, IGNOREEVENT_MESSAGE)) - { - ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_mess"); - } - else - { - ExtraIcon_SetIcon(hExtraIcon, hContact, "ignore_part"); - } - } - else - { - if (ignore == 1) - { - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnoreFull); - } - else if (ignore == 0) - { - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECClear); - } - else if (isIgnored((HANDLE)wParam, IGNOREEVENT_MESSAGE)) - { - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnoreMess); - } - else - { - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM) wParam, (LPARAM) &g_IECIgnorePart); - } - } - return 0; -} - - -int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam) -{ - g_IECIgnoreMess.cbSize = sizeof(IconExtraColumn); - g_IECIgnoreMess.ColumnType = clistIcon; - g_IECIgnorePart.cbSize = sizeof(IconExtraColumn); - g_IECIgnorePart.ColumnType = clistIcon; - g_IECIgnoreFull.cbSize = sizeof(IconExtraColumn); - g_IECIgnoreFull.ColumnType = clistIcon; - - if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON)) - { - g_IECIgnoreMess.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_mess"), (LPARAM)0); - g_IECIgnorePart.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_part"), (LPARAM)0); - g_IECIgnoreFull.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)(HICON) CallService(MS_SKIN2_GETICON, 0, (LPARAM)"ignore_full"), (LPARAM)0); - } - return 0; -} - -static VOID init_icolib (void) -{ - SKINICONDESC sid = {0}; - ZeroMemory(&sid, sizeof(sid)); - TCHAR tszFile[MAX_PATH]; - sid.cbSize = sizeof(sid); - sid.flags = SIDF_ALL_TCHAR; - int i = 0; - - sid.ptszSection = _T(MODULENAME); - GetModuleFileName(g_hInst, tszFile, MAX_PATH); - sid.ptszDefaultFile = tszFile; - - for ( i = 0; i < SIZEOF(iconList); i++ ) { - sid.pszName = iconList[i].szName; - sid.ptszDescription = iconList[i].szDescr; - sid.iDefaultIndex = -iconList[i].defIconID; - iconList[i].hIconLibItem = Skin_AddIcon(&sid); - } -} - -VOID fill_filter(void) -{ - bUseMirandaSettings = DBGetContactSettingByte(NULL, MODULENAME, "UseMirandaSettings", 0); - - currentFilter = bUseMirandaSettings ? DBGetContactSettingDword(NULL, "Ignore", "Default1", 0) : DBGetContactSettingDword(NULL, MODULENAME, "Filter", 0x8); - - int i = 0, cii = SIZEOF(ii); - - for (; i< cii; i++) - { - if (checkState((ii[i].type))) - ii[i].filtered = true; - else - ii[i].filtered = false; - } -} - -int onModulesLoaded(WPARAM wParam,LPARAM lParam) -{ - hOptInitialise = HookEvent(ME_OPT_INITIALISE, onOptInitialise); - - //IcoLib support - init_icolib(); - fill_filter(); - - hExtraIcon = ExtraIcon_Register("ignore", "IgnoreState", "ignore_full"); - - if (hExtraIcon != NULL) - { - // Set initial value for all contacts - HANDLE hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDFIRST, 0, 0); - while (hContact != NULL) - { - onExtraImageApplying((WPARAM)hContact, NULL); - hContact = (HANDLE) CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM) hContact, 0); - } - } - else - { - hIcoLibIconsChanged = HookEvent(ME_SKIN2_ICONSCHANGED, onExtraImageListRebuild); - hHookExtraIconsRebuild = HookEvent(ME_CLIST_EXTRA_LIST_REBUILD, onExtraImageListRebuild); - hHookExtraIconsApply = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, onExtraImageApplying); - onExtraImageListRebuild(0,0); - } - - return 0; -} - - -int onContactSettingChanged(WPARAM wParam,LPARAM lParam) -{ - DBCONTACTWRITESETTING *cws=(DBCONTACTWRITESETTING*)lParam; - if (!lstrcmpA(cws->szModule,"Ignore") & !lstrcmpA(cws->szSetting,"Mask1")) { - onExtraImageApplying(wParam, lParam); - } - if ((HANDLE)wParam ==0) - if (!lstrcmpA(cws->szModule,MODULENAME) & !lstrcmpA(cws->szSetting,"Filter") || - bUseMirandaSettings && (!lstrcmpA(cws->szModule,"Ignore") & !lstrcmpA(cws->szSetting,"Default1")) - ) { - fill_filter(); - } - - return 0; -} - -extern "C" int __declspec(dllexport) Load(void) -{ - - mir_getLP(&pluginInfo); - - hHookModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, onModulesLoaded); - hSystemOKToExit = HookEvent(ME_SYSTEM_OKTOEXIT,onSystemOKToExit); - hContactSettingChanged = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, onContactSettingChanged); - - clistIcon = DBGetContactSettingByte(NULL, MODULENAME, "AdvancedIcon", DefaultSlot); - - g_IECClear.cbSize = sizeof(IconExtraColumn); - g_IECClear.ColumnType = clistIcon; - g_IECClear.hImage = (HANDLE) -1; - - return 0; -} - -extern "C" int __declspec(dllexport) Unload(void) -{ - return 0; -} -- cgit v1.2.3