From 7aff1e4cb053394db57c2814d5fe1e6493e0cc75 Mon Sep 17 00:00:00 2001 From: watcherhd Date: Sat, 26 Nov 2011 14:19:43 +0000 Subject: Project folders rename part 2 git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@214 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- gender/main.cpp | 474 -------------------------------------------------------- 1 file changed, 474 deletions(-) delete mode 100644 gender/main.cpp (limited to 'gender/main.cpp') diff --git a/gender/main.cpp b/gender/main.cpp deleted file mode 100644 index c11060a..0000000 --- a/gender/main.cpp +++ /dev/null @@ -1,474 +0,0 @@ -/* - Show Contact Gender plugin for Miranda-IM (www.miranda-im.org) - (c) 2006-2011 by Thief - - 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 : $URL: http://svn.miranda.im/mainrepo/gender/trunk/main.cpp $ - Revision : $Rev: 1688 $ - Last change on : $Date: 2011-01-22 19:44:43 +0200 (Сб, 22 янв 2011) $ - Last change by : $Author: Thief $ - -*/ - -#include "commonheaders.h" - -HINSTANCE g_hInst; -PLUGINLINK *pluginLink; -static HANDLE hHookModulesLoaded = NULL, hSystemOKToExit = NULL, hOptInitialise = NULL, hIcoLibIconsChanged = NULL; -static HANDLE hHookExtraIconsRebuild = NULL, hHookExtraIconsApply = NULL, hContactMenu = NULL; -static HANDLE hContactMenuMale = NULL, hContactMenuFemale = NULL, hContactMenuNotDef = NULL, hHookPrebuildContactMenu = NULL; -static HANDLE hSetMale = NULL, hSetFemale = NULL, hSetUndef = NULL, hGenderGetIcon = NULL; - -HANDLE g_hExtraIcon = NULL; -HANDLE g_hIconMale, g_hIconFemale, g_hIconMenu; -IconExtraColumn g_IECMale = {0}; -IconExtraColumn g_IECFemale = {0}; -IconExtraColumn g_IECUndef = {0}; -IconExtraColumn g_IECClear = {0}; - -int clistIcon = 0; // Icon slot to use -byte bEnableClistIcon = 1; // do we need clist icon? -byte bDrawNoGenderIcon = 0; // enable icon when no info? -byte bContactMenuItems = 1; // do we need a contact menu items? -byte bMetaAvail = 0; // metacontacts installed? - -extern int onOptInitialise(WPARAM wParam, LPARAM lParam); - -PLUGININFOEX pluginInfo={ -sizeof(PLUGININFOEX), -#ifdef WIN64 - "Show Contact Gender (x64)", -#else - "Show Contact Gender", -#endif - PLUGIN_MAKE_VERSION(0,0,2,1), - "Shows contacts gender as an icon in contact list", - "Thief, idea by nile, icons by a0x", - "thief@miranda.im", - "2006-2011 Alexander Turyak", - "http://thief.miranda.im/", - UNICODE_AWARE, - 0, //doesn't replace anything built-in -#ifdef WIN64 - { 0x3a99592e, 0x20d5, 0x4b72, { 0xa5, 0x96, 0xe6, 0x7d, 0xd7, 0x13, 0xde, 0xfb } } // {3A99592E-20D5-4B72-A596-E67DD713DEFB} -#else - {0xfb1c17e0, 0x77fc, 0x45a7, {0x9c, 0x8b, 0xe2, 0xbe, 0xf4, 0xf5, 0x6b, 0x28}} /* FB1C17E0-77FC-45A7-9C8B-E2BEF4F56B28 */ -#endif -}; - -extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) -{ - g_hInst = hinstDLL; - return TRUE; -} - -/* 0FF3991A-5505-479D-A2E0-53DD31C6DFA7 */ -#define MIID_GENDER {0x0ff3991a, 0x5505, 0x479d, {0xa2, 0xe0, 0x53, 0xdd, 0x31, 0xc6, 0xdf, 0xa7}} - -extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) -{ - static const MUUID interfaces[] = {MIID_GENDER, MIID_LAST}; - return interfaces; -} - -extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) -{ - return &pluginInfo; -} - -void setIcon(HANDLE hContact, unsigned int gender) -{ - if (g_hExtraIcon != NULL) - { - char *ico; - switch (gender) - { - case 77: ico = "male_icon"; break; - case 70: ico = "female_icon"; break; - default: ico = (bDrawNoGenderIcon ? "menu_icon" : NULL); break; - } - ExtraIcon_SetIcon(g_hExtraIcon, hContact, ico); - } - else - { - IconExtraColumn *col; - switch (gender) - { - case 77: col = &g_IECMale; break; - case 70: col = &g_IECFemale; break; - default: col = (bDrawNoGenderIcon ? &g_IECUndef : &g_IECClear); break; - } - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)col); - } -} - -int onExtraImageApplying(WPARAM wParam, LPARAM lParam) -{ - if (g_hExtraIcon == NULL && !bEnableClistIcon) return 0; - - HANDLE hContact = (HANDLE)wParam; - if (bMetaAvail) - { - HANDLE hMetacontact = (HANDLE)CallService(MS_MC_GETMOSTONLINECONTACT, wParam, 0); - if (hMetacontact != NULL) hContact = hMetacontact; - } - - char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); - if (!proto) return 0; - - if (DBGetContactSettingByte((HANDLE)wParam, proto, "ChatRoom", 0)) return 0; - - unsigned int gender = DBGetContactSettingByte(hContact, "UserInfo", "Gender", DBGetContactSettingByte(hContact, proto, "Gender", 0)); - - setIcon(hContact, gender); - if ((HANDLE)wParam != hContact) - setIcon((HANDLE)wParam, gender); - - return 0; -} - -int onExtraImageListRebuild(WPARAM wParam, LPARAM lParam) -{ - g_IECMale.cbSize = sizeof(IconExtraColumn); - g_IECMale.ColumnType = clistIcon; - g_IECFemale.cbSize = sizeof(IconExtraColumn); - g_IECFemale.ColumnType = clistIcon; - g_IECUndef.cbSize = sizeof(IconExtraColumn); - g_IECUndef.ColumnType = clistIcon; - - if (ServiceExists(MS_CLIST_EXTRA_ADD_ICON)) - { - if(hIcoLibIconsChanged) - { - g_IECMale.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)g_hIconMale), (LPARAM)0); - g_IECFemale.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)g_hIconFemale), (LPARAM)0); - g_IECUndef.hImage = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)g_hIconMenu), (LPARAM)0); - } - } - - return 0; -} - -// Returns gender icon for specific contact -INT_PTR GetIcon(WPARAM wParam, LPARAM lParam) -{ - char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); - unsigned short gender = DBGetContactSettingByte((HANDLE)wParam, "UserInfo", "Gender", DBGetContactSettingByte((HANDLE)wParam, proto, "Gender", 0)); - - if (gender > 0) - { - if (gender == 77) return CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)g_hIconMale); - else if (gender == 70) return CallService(MS_SKIN2_GETICONBYHANDLE, 0, (LPARAM)g_hIconFemale); - } - - return 0; -} - -int onPrebuildContactMenu(WPARAM wParam, LPARAM lParam) -{ - char *proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, wParam, 0); - - if (!proto) return 0; - - CLISTMENUITEM mi = {0}; - mi.cbSize = sizeof(CLISTMENUITEM); - - - if (DBGetContactSettingByte((HANDLE)wParam, proto, "ChatRoom", 0) || !(CallProtoService(proto, PS_GETCAPS, PFLAGNUM_1, 0) & PF1_IMSEND)) - mi.flags = CMIM_FLAGS | CMIF_HIDDEN; - else - mi.flags = CMIM_FLAGS; - - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenu, (LPARAM)&mi); - - unsigned short gender = DBGetContactSettingByte((HANDLE)wParam, proto, "Gender", DBGetContactSettingByte((HANDLE)wParam, "UserInfo", "Gender", 0)); - - CLISTMENUITEM mitem = {0}; - mitem.cbSize = sizeof(CLISTMENUITEM); - mitem.flags = CMIM_FLAGS; - - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuMale, (LPARAM)&mitem); - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuFemale, (LPARAM)&mitem); - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuNotDef, (LPARAM)&mitem); - - mitem.flags = CMIM_FLAGS | CMIF_CHECKED; - - switch (gender) - { - case 77: - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuMale, (LPARAM)&mitem); - break; - case 70: - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuFemale, (LPARAM)&mitem); - break; - case 0: - CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hContactMenuNotDef, (LPARAM)&mitem); - break; - } - - return 0; -} - -void setGender(HANDLE hContact, unsigned int gender) -{ - DBWriteContactSettingByte(hContact, "UserInfo", "Gender", gender); - setIcon(hContact, gender); - - int metasnum = (bMetaAvail ? CallService(MS_MC_GETNUMCONTACTS,(WPARAM)hContact,0) : 0); - for(int i=0; i