From 0ecb2acfd7b21881521526b7a764094a882804ce Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Wed, 5 Jun 2013 09:50:27 +0000 Subject: - Skype: fix chat message encoding git-svn-id: http://svn.miranda-ng.org/main/trunk@4885 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Skype/src/skype_chat.cpp | 60 +++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 23 deletions(-) (limited to 'protocols') diff --git a/protocols/Skype/src/skype_chat.cpp b/protocols/Skype/src/skype_chat.cpp index 311e9ce570..6a032ab25c 100644 --- a/protocols/Skype/src/skype_chat.cpp +++ b/protocols/Skype/src/skype_chat.cpp @@ -3,22 +3,37 @@ #include #include -wchar_t *CSkypeProto::Roles[] = -{ - L"Creator", - L"Admin", - L"Speaker", - L"Writer", - L"Retried", - L"Outlaw" +enum NICK_LIST_MENU +{ + ICM_CANCEL, + + ICM_DETAILS, + ICM_AUTH_REQUEST, + ICM_CONF_INVITE, + ICM_ROLE, ICM_ROLE_ADMIN, ICM_ROLE_SPEAKER, ICM_ROLE_WRITER, ICM_ROLE_SPECTATOR, + ICM_KICK, ICM_BAN, + ICM_COPY_SID, ICM_COPY_URI }; -#define SKYPE_CHAT_GROUP_OWNER 0 -#define SKYPE_CHAT_GROUP_ADMIN 1 -#define SKYPE_CHAT_GROUP_SPEAKER 2 -#define SKYPE_CHAT_GROUP_WIRTER 3 -#define SKYPE_CHAT_GROUP_RETRIED 4 -#define SKYPE_CHAT_GROUP_OUTLAW 5 +static struct gc_item crListItems[] = +{ + { LPGENT("&User details"), ICM_DETAILS, MENU_ITEM, FALSE }, +// { LPGENT("&Request auth"), ICM_AUTH_REQUEST, MENU_ITEM, TRUE }, + { NULL, 0, MENU_SEPARATOR, FALSE }, +// { LPGENT("Invite to conferance"), ICM_CONF_INVITE, MENU_ITEM, TRUE }, +// { NULL, 0, MENU_SEPARATOR, FALSE }, + { LPGENT("Set &role"), ICM_ROLE, MENU_NEWPOPUP, TRUE }, + { LPGENT("&Administrator"), ICM_ROLE_ADMIN, MENU_POPUPITEM, TRUE }, + { LPGENT("&Speaker"), ICM_ROLE_SPEAKER, MENU_POPUPITEM, TRUE }, + { LPGENT("&Writer"), ICM_ROLE_WRITER, MENU_POPUPITEM, TRUE }, + { LPGENT("&Listener"), ICM_ROLE_SPECTATOR, MENU_POPUPITEM, TRUE }, + { NULL, 0, MENU_SEPARATOR, FALSE }, + { LPGENT("&Kick"), ICM_KICK, MENU_ITEM, TRUE }, + { LPGENT("Outlaw (&ban)"), ICM_BAN, MENU_ITEM, TRUE }, + { NULL, 0, MENU_SEPARATOR, FALSE }, + { LPGENT("Copy &skypename"), ICM_COPY_SID, MENU_ITEM, FALSE }, + { LPGENT("Copy room &uri"), ICM_COPY_URI, MENU_ITEM, FALSE } +}; static const COLORREF crCols[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; @@ -331,7 +346,7 @@ void ChatRoom::OnEvent(const ConversationRef &conversation, const MessageRef &me ptrW sid = ::mir_utf8decodeW(data); message->GetPropBodyXml(data); - ptrW text =::mir_a2u(CSkypeProto::RemoveHtml(data)); + ptrW text =::mir_utf8decodeW(CSkypeProto::RemoveHtml(data)); uint timestamp; message->GetPropTimestamp(timestamp); @@ -923,14 +938,10 @@ int __cdecl CSkypeProto::OnGCEventHook(WPARAM, LPARAM lParam) case GC_USER_NICKLISTMENU: switch (gch->dwData) { - case 10: + case NICK_LIST_MENU::ICM_DETAILS: ::CallService(MS_USERINFO_SHOWDIALOG, (WPARAM)this->GetContactBySid(gch->ptszUID), 0); break; - case 20: - ::CallService(MS_HISTORY_SHOWCONTACTHISTORY, (WPARAM)this->GetContactBySid(gch->ptszUID), 0); - break; - case 110: this->LeaveChat(gch->pDest->ptszID); break; @@ -950,12 +961,13 @@ int __cdecl CSkypeProto::OnGCMenuHook(WPARAM, LPARAM lParam) GC_INFO gci = {0}; gci.Flags = BYID | DATA; gci.pszModule = gcmi->pszModule; + gci.pszID = gcmi->pszID; ::CallServiceSync(MS_GC_GETINFO, 0, (LPARAM)&gci); ChatRoom *room = (ChatRoom *)gci.dwItemData; - if (room == NULL)// || ::stricmp(gcmi->pszModule, room->ppro->m_szModuleName)) + if (room == NULL || ::stricmp(gcmi->pszModule, this->m_szModuleName)) return 0; if (gcmi->Type == MENU_ON_LOG) @@ -970,13 +982,15 @@ int __cdecl CSkypeProto::OnGCMenuHook(WPARAM, LPARAM lParam) } else if (gcmi->Type == MENU_ON_NICKLIST) { - static const struct gc_item Items[] = + /*static const struct gc_item Items[] = { { TranslateT("User &details"), 10, MENU_ITEM, FALSE }, { TranslateT("User &history"), 20, MENU_ITEM, FALSE }, }; gcmi->nItems = SIZEOF(Items); - gcmi->Item = (gc_item*)Items; + gcmi->Item = (gc_item*)Items;*/ + gcmi->nItems = SIZEOF(crListItems); + gcmi->Item = crListItems; } return 0; -- cgit v1.2.3