diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-24 11:48:31 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-24 11:48:31 +0000 |
commit | 171e81205e357e0d54283a63997ed58ff97d54a9 (patch) | |
tree | 2fe6f4cb440569e07d151564446433fb84b83839 /plugins/UserInfoEx/svc_avatar.cpp | |
parent | 1e92bf5cf72665b5fec103a0a70d734340725539 (diff) |
UserInfoEx, Variables: changed folder structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@1160 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/UserInfoEx/svc_avatar.cpp')
-rw-r--r-- | plugins/UserInfoEx/svc_avatar.cpp | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/plugins/UserInfoEx/svc_avatar.cpp b/plugins/UserInfoEx/svc_avatar.cpp deleted file mode 100644 index f9d5515f52..0000000000 --- a/plugins/UserInfoEx/svc_avatar.cpp +++ /dev/null @@ -1,247 +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_avatar.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_protocols.h"
-#include "m_png.h"
-#include "m_avatars.h"
-
-namespace NServices
-{
- namespace NAvatar
- {
-
- static HANDLE ghChangedHook = NULL;
-
- static INT GetContactAvatarFileName(LPCTSTR zodiac, LPSTR szFileName, INT cchFileName)
- {
- if (!CallService(MS_DB_GETPROFILEPATH, (WPARAM)cchFileName, (LPARAM)szFileName))
- {
- size_t len = mir_strlen(szFileName);
-
- CHAR tmp[64];
-
- if (WideCharToMultiByte(CP_ACP, 0, zodiac, 64, tmp, SIZEOF(tmp),0,0) > 0)
- {
- mir_snprintf(szFileName + len, cchFileName - len, "\\avatars\\%s.png", tmp);
- }
-
- return !PathFileExistsA(szFileName);
- }
- return 1;
- }
-
- /**
- *
- *
- **/
- static VOID SetZodiacAvatar(HANDLE hContact)
- {
- MAnnivDate mtb;
-
- // try to load birthday for contact
- if (!mtb.DBGetBirthDate(hContact))
- {
- MZodiac zodiac;
- //ICONINFO iinfo;
- CHAR szFileName[MAX_PATH];
-
- // get zodiac for birthday
- zodiac = mtb.Zodiac();
-
- if (!GetContactAvatarFileName(zodiac.pszName, szFileName, SIZEOF(szFileName)))
- {
- // extract the bitmap from the icon
- //GetIconInfo(zodiac.hIcon, &iinfo);
-
- // save the bitmap to a file used as avatar later
- //if (!SaveBitmapAsAvatar(iinfo.hbmColor, szFileName))
- {
- if (!CallService(MS_AV_SETAVATAR, (WPARAM)hContact, (LPARAM)szFileName))
- {
- DB::Setting::WriteByte(hContact, "ContactPhoto", "IsZodiac", 1);
- }
- }
- }
- }
- }
-
- VOID DeleteAvatar(HANDLE hContact)
- {
- if (hContact && DB::Setting::GetByte(hContact, "ContactPhoto", "IsZodiac", FALSE))
- {
- //AVATARCACHEENTRY *ace;
- LPSTR szProto = DB::Contact::Proto(hContact);
-
- DB::Setting::Delete(hContact, "ContactPhoto", "File");
- DB::Setting::Delete(hContact, "ContactPhoto", "RFile");
- DB::Setting::Delete(hContact, "ContactPhoto", "Backup");
- DB::Setting::Delete(hContact, "ContactPhoto", "ImageHash");
-
- DB::Setting::WriteByte(hContact, "ContactPhoto", "IsZodiac", 0);
-
- /*
- ace = (AVATARCACHEENTRY *)CallService(MS_AV_GETMYAVATAR, NULL, (LPARAM)szProto);
- if (ace)
- {
- if (!CallService(MS_AV_SETAVATAR, (WPARAM)hContact, (LPARAM)ace->szFilename))
- {
- DB::Setting::WriteByte(hContact, "ContactPhoto", "IsZodiac", 0);
- }
- }
- */
- }
- }
-
-
- /**
- *
- *
- **/
- static INT OnAvatarChanged(HANDLE hContact, AVATARCACHEENTRY *ace)
- {
- if (hContact)
- {
- // check valid parameters
- if (ace)
- {
- if (// check for correct structure
- ace->cbSize == sizeof(AVATARCACHEENTRY) &&
- // set zodiac as avatar either if the desired avatar is invalid or a general protocol picture
- ((ace->dwFlags & AVS_PROTOPIC) || !(ace->dwFlags & AVS_BITMAP_VALID)))
- {
- if (!DB::Setting::GetByte(hContact, "ContactPhoto", "IsZodiac", 0))
- {
- SetZodiacAvatar(hContact);
- }
- }
- else
- {
- DB::Setting::WriteByte(hContact, "ContactPhoto", "IsZodiac", 0);
- }
- }
-
- // avatar was deleted, so we can set up a zodiac avatar
- else
- {
- SetZodiacAvatar(hContact);
- }
- }
- return 0;
- }
-
- /**
- *
- *
- **/
- VOID Enable(BOOLEAN bEnable)
- {
- HANDLE hContact;
- DBVARIANT dbv;
-
- if (bEnable && !ghChangedHook)
- {
-
- //walk through all the contacts stored in the DB
- for (hContact = DB::Contact::FindFirst();
- hContact != NULL;
- hContact = DB::Contact::FindNext(hContact))
- {
- // don't set if avatar is locked!
- if (!DB::Setting::GetByte(hContact, "ContactPhoto", "Locked", 0))
- {
- BOOLEAN bInvalidAvatar = TRUE;
-
- // the relative file is valid
- if (!DB::Setting::GetAString(hContact, "ContactPhoto", "RFile", &dbv))
- {
- CHAR absolute[MAX_PATH];
- absolute[0] = '\0';
-
- // check if file exists
- if (!CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM)dbv.pszVal, (LPARAM)absolute))
- {
- FILE *f = fopen(absolute, "rb");
- if (f) {
- bInvalidAvatar = FALSE;
- fclose(f);
- }
- }
- DB::Variant::Free(&dbv);
- }
-
- // the absolute file is valid
- if (bInvalidAvatar && !DBGetContactSetting(hContact, "ContactPhoto", "File", &dbv))
- {
- FILE *f = fopen(dbv.pszVal, "rb");
- if (f) {
- bInvalidAvatar = FALSE;
- fclose(f);
- }
- DB::Variant::Free(&dbv);
- }
-
- // set the zodiac as avatar
- if (bInvalidAvatar) {
- SetZodiacAvatar(hContact);
- }
- }
- }
- ghChangedHook = HookEvent(ME_AV_AVATARCHANGED, (MIRANDAHOOK) OnAvatarChanged);
- }
- else if (!bEnable && ghChangedHook)
- {
- UnhookEvent(ghChangedHook);
- ghChangedHook = NULL;
-
- //walk through all the contacts stored in the DB
- for (hContact = DB::Contact::FindFirst();
- hContact != NULL;
- hContact = DB::Contact::FindNext(hContact))
- {
- DeleteAvatar(hContact);
- }
- }
- }
-
-
- /**
- * name: OnModulesLoaded
- * desc: initialize stuff, which require all standard modules to bee loaded
- * params: none
- * return: 0
- **/
- VOID OnModulesLoaded()
- {
- Enable(DB::Setting::GetByte(SET_ZODIAC_AVATARS, FALSE));
- }
-
- } /* namespace NAvatar */
-} /* namespace NServices */
\ No newline at end of file |