summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/VKontakte/src/version.h2
-rw-r--r--protocols/VKontakte/src/vk_proto.cpp9
-rw-r--r--protocols/VKontakte/src/vk_proto.h4
-rw-r--r--protocols/VKontakte/src/vk_thread.cpp13
4 files changed, 27 insertions, 1 deletions
diff --git a/protocols/VKontakte/src/version.h b/protocols/VKontakte/src/version.h
index d06a5cb1d2..a2e00333e9 100644
--- a/protocols/VKontakte/src/version.h
+++ b/protocols/VKontakte/src/version.h
@@ -1,7 +1,7 @@
#define __MAJOR_VERSION 0
#define __MINOR_VERSION 1
#define __RELEASE_NUM 17
-#define __BUILD_NUM 3
+#define __BUILD_NUM 4
#include <stdver.h>
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp
index 885c2c1205..968fa8512d 100644
--- a/protocols/VKontakte/src/vk_proto.cpp
+++ b/protocols/VKontakte/src/vk_proto.cpp
@@ -239,6 +239,7 @@ void CVkProto::InitMenus()
CreateProtoService(PS_GETALLSERVERHISTORYFORCONTACT, &CVkProto::SvcGetAllServerHistoryForContact);
CreateProtoService(PS_GETALLSERVERHISTORY, &CVkProto::SvcGetAllServerHistory);
CreateProtoService(PS_VISITPROFILE, &CVkProto::SvcVisitProfile);
+ CreateProtoService(PS_GOTOSITEIM, &CVkProto::SvcGoToSiteIM);
CreateProtoService(PS_CREATECHAT, &CVkProto::SvcCreateChat);
CreateProtoService(PS_ADDASFRIEND, &CVkProto::SvcAddAsFriend);
CreateProtoService(PS_DELETEFRIEND, &CVkProto::SvcDeleteFriend);
@@ -265,6 +266,13 @@ void CVkProto::InitMenus()
SET_UID(mi, 0x828cc50e, 0x398d, 0x43a2, 0xbf, 0xd3, 0xa9, 0x96, 0x47, 0x9d, 0x52, 0xff);
m_hContactMenuItems[CMI_VISITPROFILE] = Menu_AddContactMenuItem(&mi, m_szModuleName);
+ mi.pszService = PS_GOTOSITEIM;
+ mi.position = -200001000 + CMI_GOTOSITEIM;
+ mi.hIcolibItem = g_plugin.getIconHandle(IDI_FORWARD);
+ mi.name.w = LPGENW("Go to site IM");
+ SET_UID(mi, 0x681c7e6f, 0x34fa, 0x4184, 0x81, 0x6f, 0x43, 0x00, 0x51, 0xe7, 0xad, 0x42);
+ m_hContactMenuItems[CMI_GOTOSITEIM] = Menu_AddContactMenuItem(&mi, m_szModuleName);
+
mi.pszService = PS_MARKMESSAGESASREAD;
mi.position = -200001000 + CMI_MARKMESSAGESASREAD;
mi.hIcolibItem = g_plugin.getIconHandle(IDI_MARKMESSAGESASREAD);
@@ -402,6 +410,7 @@ int CVkProto::OnPreBuildContactMenu(WPARAM hContact, LPARAM)
bool bisBroadcast = !(IsEmpty(ptrW(db_get_wsa(hContact, m_szModuleName, "AudioUrl"))));
bool bIsGroup = IsGroupUser(hContact);
Menu_ShowItem(m_hContactMenuItems[CMI_VISITPROFILE], iUserId != VK_FEED_USER);
+ Menu_ShowItem(m_hContactMenuItems[CMI_GOTOSITEIM], iUserId != VK_FEED_USER);
Menu_ShowItem(m_hContactMenuItems[CMI_MARKMESSAGESASREAD], iUserId != VK_FEED_USER);
Menu_ShowItem(m_hContactMenuItems[CMI_WALLPOST], !isChatRoom(hContact));
Menu_ShowItem(m_hContactMenuItems[CMI_ADDASFRIEND], !bisFriend && !isChatRoom(hContact) && iUserId != VK_FEED_USER && !bIsGroup);
diff --git a/protocols/VKontakte/src/vk_proto.h b/protocols/VKontakte/src/vk_proto.h
index 368735e235..3003efbf80 100644
--- a/protocols/VKontakte/src/vk_proto.h
+++ b/protocols/VKontakte/src/vk_proto.h
@@ -29,6 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PS_GETALLSERVERHISTORYFORCONTACT "/GetAllServerHystoryForContact"
#define PS_GETALLSERVERHISTORY "/GetAllServerHystory"
#define PS_VISITPROFILE "/VisitProfile"
+#define PS_GOTOSITEIM "/GoToSiteIM"
#define PS_ADDASFRIEND "/AddAsFriend"
#define PS_DELETEFRIEND "/DeleteFriend"
#define PS_BANUSER "/BanUser"
@@ -94,6 +95,7 @@ struct CVkProto : public PROTO<CVkProto>
//==== Menus ==========================================================================
INT_PTR __cdecl SvcVisitProfile(WPARAM hContact, LPARAM);
+ INT_PTR __cdecl SvcGoToSiteIM(WPARAM hContact, LPARAM);
INT_PTR __cdecl SvcAddAsFriend(WPARAM hContact, LPARAM);
INT_PTR __cdecl SvcWipeNonFriendContacts(WPARAM, LPARAM);
INT_PTR __cdecl SvcDeleteFriend(WPARAM hContact, LPARAM);
@@ -159,6 +161,7 @@ private:
CMI_CHATCHANGETOPIC,
CMI_CHATINVITEUSER,
CMI_VISITPROFILE,
+ CMI_GOTOSITEIM,
CMI_MARKMESSAGESASREAD,
CMI_WALLPOST,
CMI_ADDASFRIEND,
@@ -190,6 +193,7 @@ private:
PMI_GETALLSERVERHISTORY,
PMI_WIPENONFRIENDS,
PMI_VISITPROFILE,
+ PMI_GOTOSITEIM,
PMI_COUNT
};
diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp
index 178809ddbe..6a02bcdd9f 100644
--- a/protocols/VKontakte/src/vk_thread.cpp
+++ b/protocols/VKontakte/src/vk_thread.cpp
@@ -1142,4 +1142,17 @@ INT_PTR __cdecl CVkProto::SvcVisitProfile(WPARAM hContact, LPARAM)
Utils_OpenUrlW(wszUrl);
return 0;
+}
+
+INT_PTR __cdecl CVkProto::SvcGoToSiteIM(WPARAM hContact, LPARAM)
+{
+ debugLogA("CVkProto::SvcGoToSiteIM");
+
+ VKUserID_t iUserId = ReadVKUserID(hContact);
+ if (isChatRoom(hContact))
+ iUserId += VK_CHAT_MIN;
+ CMStringW wszUrl(FORMAT, L"https://vk.com/im/convo/%d?entrypoint=list_all", iUserId);
+
+ Utils_OpenUrlW(wszUrl);
+ return 0;
} \ No newline at end of file