From e44e7d0d204198d771a328d1553f6c3fcc548395 Mon Sep 17 00:00:00 2001 From: kreol13 Date: Thu, 21 Apr 2011 13:05:15 +0000 Subject: ups... git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@5 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- svc_phone.cpp | 309 ---------------------------------------------------------- 1 file changed, 309 deletions(-) delete mode 100644 svc_phone.cpp (limited to 'svc_phone.cpp') diff --git a/svc_phone.cpp b/svc_phone.cpp deleted file mode 100644 index 4ddf2a1..0000000 --- a/svc_phone.cpp +++ /dev/null @@ -1,309 +0,0 @@ -/* -UserinfoEx plugin for Miranda IM - -Copyright: -ฉ 2006-2010 DeathAxe, Yasnovidyashii, Merlin, K. Romanov, Kreol - -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 : $HeadURL: https://userinfoex.googlecode.com/svn/trunk/svc_phone.cpp $ -Revision : $Revision: 187 $ -Last change on : $Date: 2010-09-08 16:05:54 +0400 (ะกั€, 08 ัะตะฝ 2010) $ -Last change by : $Author: ing.u.horn $ - -=============================================================================== -*/ -#include "commonheaders.h" -#include "m_icq.h" - -enum EPhoneType -{ - PHONE_NONE, - PHONE_NORMAL, - PHONE_SMS -}; - -static HANDLE ghMenuItem = NULL; -static HANDLE ghExtraIconDef[2] = { INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE }; -static HANDLE ghExtraIconSvc = INVALID_HANDLE_VALUE; - -static HANDLE hChangedHook = NULL; -static HANDLE hApplyIconHook = NULL; -static HANDLE hRebuildIconsHook = NULL; - -/** - * This function reads the contact's phone number from database and returns its type. - * - * @param hContact - handle to contact to read email from - * - * @retval PHONE_SMS: The phone supports sms, so is a cellular - * @retval PHONE_NORMAL: The phone is a normal phone - * @retval PHONE_NONE: The contact does not provide any phone number - **/ -static INT_PTR Get(HANDLE hContact) -{ - INT_PTR nType = PHONE_NONE; - - // ignore owner - if (hContact != NULL) - { - LPCSTR pszProto = DB::Contact::Proto(hContact); - if (pszProto != NULL) - { - LPCSTR e[2][4] = { - { SET_CONTACT_CELLULAR, SET_CONTACT_PHONE, "MyPhone0" }, - { SET_CONTACT_COMPANY_CELLULAR, SET_CONTACT_COMPANY_PHONE, "MyCompanyPhone0" } - }; - - INT i, j; - LPSTR pszPhone; - - for (i = 0; (i < 2) && (nType == PHONE_NONE); i++) - { - for (j = 0; (j < 3) && (nType == PHONE_NONE); j++) - { - pszPhone = DB::Setting::GetAStringEx(hContact, USERINFO, pszProto, e[i][j]); - if (pszPhone) - { - nType = (strstr(pszPhone, " SMS")) ? PHONE_SMS : PHONE_NORMAL; - MIR_FREE(pszPhone); - break; - } - } - } - } - } - return nType; -} - -/*********************************************************************************************************** - * Event Handler functions - ***********************************************************************************************************/ - -static INT OnCListRebuildIcons(WPARAM wParam, LPARAM lParam) -{ - HICON hIcon = IcoLib_GetIcon(ICO_BTN_PHONE); - ghExtraIconDef[0] = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)hIcon, 0); - CallService(MS_SKIN2_RELEASEICON,(WPARAM)hIcon,0); - hIcon = IcoLib_GetIcon(ICO_BTN_CELLULAR); - ghExtraIconDef[1] = (HANDLE)CallService(MS_CLIST_EXTRA_ADD_ICON, (WPARAM)hIcon, 0); - CallService(MS_SKIN2_RELEASEICON,(WPARAM)hIcon,0); - return 0; -} - -/** - * Notification handler for clist extra icons to be applied for a contact. - * - * @param wParam - handle to the contact whose extra icon is to apply - * @param lParam - not used - **/ -static INT OnCListApplyIcons(HANDLE hContact, LPARAM) -{ - if (!myGlobals.ExtraIconsServiceExist) - { - IconExtraColumn iec; - iec.cbSize = sizeof(IconExtraColumn); - iec.ColumnType = EXTRA_ICON_SMS; - switch (Get(hContact)) - { - case PHONE_NORMAL: - { - iec.hImage = ghExtraIconDef[0]; - } - break; - - case PHONE_SMS: - { - iec.hImage = ghExtraIconDef[1]; - } - break; - - default: - { - iec.hImage = INVALID_HANDLE_VALUE; - } - } - CallService(MS_CLIST_EXTRA_SET_ICON, (WPARAM)hContact, (LPARAM)&iec); - } - else - { - EXTRAICON ico; - - ZeroMemory(&ico, sizeof(ico)); - ico.cbSize = sizeof(ico); - ico.hContact = hContact; - ico.hExtraIcon = ghExtraIconSvc; - switch (Get(hContact)) - { - case PHONE_NORMAL: - { - ico.icoName = ICO_BTN_PHONE; - } - break; - - case PHONE_SMS: - { - ico.icoName = ICO_BTN_CELLULAR; - } - break; - - default: - { - ico.icoName = (char *)0; - } - } - CallService(MS_EXTRAICON_SET_ICON, (WPARAM)&ico, 0); - } - return 0; -} - -/** - * Notification handler for changed contact settings - * - * @param wParam - (HANDLE)hContact - * @param lParam - (DBCONTACTWRITESETTING*)pdbcws - **/ -static INT OnContactSettingChanged(HANDLE hContact, DBCONTACTWRITESETTING* pdbcws) -{ - if (hContact && pdbcws && pdbcws->szSetting && - ((pdbcws->value.type & DBVTF_VARIABLELENGTH) || (pdbcws->value.type == DBVT_DELETED)) && - (!strcmp(pdbcws->szSetting, SET_CONTACT_PHONE) || - !strcmp(pdbcws->szSetting, SET_CONTACT_CELLULAR) || - !strcmp(pdbcws->szSetting, SET_CONTACT_COMPANY_PHONE) || - !strcmp(pdbcws->szSetting, SET_CONTACT_COMPANY_CELLULAR) || - !strncmp(pdbcws->szSetting, "MyPhone0", 8))) - { - OnCListApplyIcons(hContact, 0); - } - return 0; -} - -/*********************************************************************************************************** - * public Module Interface functions - ***********************************************************************************************************/ - -/** - * Force all icons to be reloaded. - * - * @param wParam - handle to the contact whose extra icon is to apply - * @param lParam - not used - **/ -VOID SvcPhoneApplyCListIcons() -{ - HANDLE hContact; - - //walk through all the contacts stored in the DB - for (hContact = DB::Contact::FindFirst(); hContact != NULL; hContact = DB::Contact::FindNext(hContact)) - { - OnCListApplyIcons(hContact, 0); - } -} - -/** - * Enable or disable the replacement of clist extra icons. - * - * @param bEnable - determines whether icons are enabled or not - * @param bUpdateDB - if true the database setting is updated, too. - **/ -VOID SvcPhoneEnableExtraIcons(BOOLEAN bEnable, BOOLEAN bUpdateDB) -{ - if (myGlobals.HaveCListExtraIcons) - { - if (bUpdateDB) - { - DB::Setting::WriteByte(SET_CLIST_EXTRAICON_PHONE, bEnable); - } - - // force module enabled, if extraicon plugin was found - if (bEnable) - { - // hook events - if (hChangedHook == NULL) - { - hChangedHook = HookEvent(ME_DB_CONTACT_SETTINGCHANGED, (MIRANDAHOOK)OnContactSettingChanged); - } - if (hApplyIconHook == NULL) - { - hApplyIconHook = HookEvent(ME_CLIST_EXTRA_IMAGE_APPLY, (MIRANDAHOOK)OnCListApplyIcons); - } - if (myGlobals.ExtraIconsServiceExist) - { - if (ghExtraIconSvc == INVALID_HANDLE_VALUE) - { - EXTRAICON_INFO ico; - - ZeroMemory(&ico, sizeof(ico)); - ico.cbSize = sizeof(ico); - ico.type = EXTRAICON_TYPE_ICOLIB; - ico.name = "sms"; //must be the same as the group name in extraicon - ico.description = "(uinfoex)"; - ico.descIcon = ICO_BTN_CELLULAR; - ghExtraIconSvc = (HANDLE)CallService(MS_EXTRAICON_REGISTER, (WPARAM)&ico, 0); - } - } - else if (hRebuildIconsHook == NULL) - { - hRebuildIconsHook = HookEvent(ME_CLIST_EXTRA_LIST_REBUILD, (MIRANDAHOOK)OnCListRebuildIcons); - OnCListRebuildIcons(0, 0); - } - } - else - { - if (hChangedHook) - { - UnhookEvent(hChangedHook); - hChangedHook = NULL; - } - if (hApplyIconHook) - { - UnhookEvent(hApplyIconHook); - hApplyIconHook = NULL; - } - if (hRebuildIconsHook) - { - UnhookEvent(hRebuildIconsHook); - hRebuildIconsHook = NULL; - } - } - SvcPhoneApplyCListIcons(); - } -} - -/** - * This function initially loads the module uppon startup. - **/ -VOID SvcPhoneLoadModule() -{ - SvcPhoneEnableExtraIcons( - myGlobals.ExtraIconsServiceExist || - DB::Setting::GetByte(SET_CLIST_EXTRAICON_PHONE, DEFVAL_CLIST_EXTRAICON_PHONE), FALSE); -} - -/** - * This function unloads the Email module. - * - * @param none - * - * @return nothing - **/ -VOID SvcPhoneUnloadModule() -{ - // unhook event handlers - UnhookEvent(hChangedHook); hChangedHook = NULL; - UnhookEvent(hApplyIconHook); hApplyIconHook = NULL; - UnhookEvent(hRebuildIconsHook); hRebuildIconsHook = NULL; -} -- cgit v1.2.3