void CAimProto::InitMainMenus(void) { CMenuItem mi; mi.root = Menu_GetProtocolRoot(this); mi.pszService = "/ManageAccount"; CreateProtoService(mi.pszService, &CAimProto::ManageAccount); mi.position = 201001; mi.hIcolibItem = GetIconHandle("aim"); mi.name.a = LPGEN("Manage Account"); hMainMenu[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/InstantIdle"; CreateProtoService(mi.pszService, &CAimProto::InstantIdle); mi.position = 201002; mi.hIcolibItem = GetIconHandle("idle"); mi.name.a = LPGEN("Instant Idle"); hMainMenu[1] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/JoinChatRoom"; CreateProtoService(mi.pszService, &CAimProto::JoinChatUI); mi.position = 201003; mi.hIcolibItem = GetIconHandle("aol"); mi.name.a = LPGEN( "Join Chat Room" ); hMainMenu[2] = Menu_AddProtoMenuItem(&mi, m_szModuleName); }
void addProtoStatusMenuItem(char *protoName) { PROTOACCOUNT *pdescr = Proto_GetAccount(protoName); if (pdescr == nullptr || pdescr->ppro == nullptr) return; HGENMENU hRoot = Menu_GetProtocolRoot(pdescr->ppro); if (hRoot == nullptr) return; char buf[200]; mir_snprintf(buf, "CSList/ShowList/%s", protoName); if (!ServiceExists(buf)) CreateServiceFunctionParam(buf, showList, (LPARAM)protoName); CMenuItem mi(g_plugin); mi.flags = CMIF_UNICODE; mi.hIcolibItem = forms[0].hIcoLibItem; mi.name.w = MODULENAME; mi.position = 2000040000; mi.pszService = buf; mi.root = hRoot; Menu_AddStatusMenuItem(&mi); RegisterHotkeys(buf, pdescr->tszAccountName, pdescr->iOrder); }
void WhatsAppProto::InitMenu() { CMenuItem mi; mi.flags = (isOnline() ? 0 : CMIF_GRAYED); mi.position = 201001; mi.pszService = "/CreateGroup"; CreateProtoService(mi.pszService, &WhatsAppProto::OnCreateGroup); mi.root = Menu_GetProtocolRoot(this); mi.name.a = LPGEN("Create group"); mi.hIcolibItem = GetIconHandle("createGroup"); m_hMenuCreateGroup = Menu_AddProtoMenuItem(&mi, m_szModuleName); }
int CSkypeProto::OnInitStatusMenu() { CMenuItem mi; mi.root = Menu_GetProtocolRoot(this); mi.pszService = "/CreateNewChat"; CreateProtoService(mi.pszService, &CSkypeProto::SvcCreateChat); mi.name.a = LPGEN("Create new chat"); mi.position = SMI_POSITION + SMI_CREATECHAT; mi.hIcolibItem = GetIconHandle(IDI_CONFERENCE); Menu_AddProtoMenuItem(&mi, m_szModuleName); return 0; }
HGENMENU CMraProto::CListCreateMenu(LONG lPosition, LONG lPopupPosition, BOOL bIsMain, const IconItem *pgdiItems, size_t dwCount, HGENMENU *hResult) { if (!pgdiItems || !dwCount || !hResult) return NULL; char szServiceFunction[MAX_PATH]; CMenuItem mi; HGENMENU hRootMenu, (__stdcall *fnAddFunc)(TMO_MenuItem*, const char*); if (bIsMain) { fnAddFunc = Menu_AddProtoMenuItem; hRootMenu = Menu_GetProtocolRoot(this); if (hRootMenu == NULL) { mi.name.t = m_tszUserName; mi.flags = CMIF_TCHAR | CMIF_KEEPUNTRANSLATED; mi.hIcolibItem = g_hMainIcon; hRootMenu = Menu_AddProtoMenuItem(&mi); } mi.position = 20003; mi.root = hRootMenu; } else { fnAddFunc = Menu_AddContactMenuItem; mi.position = lPosition; } SET_UID(mi, 0x83C8B6A7, 0xEC0D, 0x41D6, 0x8A, 0x0E, 0xAC, 0x90, 0x8C, 0xEE, 0xAF, 0xFE); mi.flags = 0; mi.name.a = LPGEN("Services..."); mi.hIcolibItem = g_hMainIcon; hRootMenu = fnAddFunc(&mi, m_szModuleName); UNSET_UID(mi); mi.flags = CMIF_SYSTEM; mi.root = hRootMenu; mi.pszService = szServiceFunction; for (size_t i = 0; i < dwCount; i++) { mi.pszService = pgdiItems[i].szName; mi.position = int(lPosition + i); mi.hIcolibItem = pgdiItems[i].hIcolib; mi.name.a = pgdiItems[i].szDescr; hResult[i] = fnAddFunc(&mi, m_szModuleName); Menu_ConfigureItem(hResult[i], MCI_OPT_EXECPARAM, lPopupPosition); } return hRootMenu; }
int TwitterProto::OnBuildStatusMenu(WPARAM, LPARAM) { CMenuItem mi; mi.root = Menu_GetProtocolRoot(this); mi.flags = CMIF_TCHAR; mi.position = 1001; Menu_AddStatusMenuItem(&mi, m_szModuleName); // TODO: Disable this menu item when offline // "Send Tweet..." mi.pszService = "/Tweet"; CreateProtoService(mi.pszService, &TwitterProto::OnTweet); mi.name.t = LPGENT("Send Tweet..."); mi.position = 200001; mi.hIcolibItem = GetIconHandle("tweet"); Menu_AddStatusMenuItem(&mi, m_szModuleName); return 0; }
void CMsnProto::MsnInitMainMenu(void) { CMenuItem mi; mi.root = Menu_GetProtocolRoot(this); #ifdef OBSOLETE mi.pszService = MS_SET_NICKNAME_UI; CreateProtoService(mi.pszService, &CMsnProto::SetNicknameUI); mi.position = 201001; mi.hIcolibItem = GetIconHandle(IDI_MSN); mi.name.a = LPGEN("Set &Nickname"); menuItemsMain[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName); #endif mi.pszService = MSN_INVITE; CreateProtoService(mi.pszService, &CMsnProto::MsnInviteCommand); mi.position = 201002; mi.hIcolibItem = GetIconHandle(IDI_INVITE); mi.name.a = LPGEN("Create &Chat"); menuItemsMain[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = MS_GOTO_INBOX; CreateProtoService(mi.pszService, &CMsnProto::MsnGotoInbox); mi.position = 201003; mi.hIcolibItem = GetIconHandle(IDI_INBOX); mi.name.a = LPGEN("Display &Hotmail Inbox"); menuItemsMain[1] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = MS_EDIT_PROFILE; CreateProtoService(mi.pszService, &CMsnProto::MsnEditProfile); mi.position = 201004; mi.hIcolibItem = GetIconHandle(IDI_PROFILE); mi.name.a = LPGEN("View &Profile"); menuItemsMain[2] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = MS_EDIT_ALERTS; CreateProtoService(mi.pszService, &CMsnProto::MsnSetupAlerts); mi.position = 201004; mi.hIcolibItem = GetIconHandle(IDI_PROFILE); mi.name.a = LPGEN("Setup Live &Alerts"); menuItemsMain[3] = Menu_AddProtoMenuItem(&mi, m_szModuleName); MSN_EnableMenuItems(m_iStatus >= ID_STATUS_ONLINE); }
void CVkProto::InitMenus() { HookProtoEvent(ME_CLIST_PREBUILDCONTACTMENU, &CVkProto::OnPreBuildContactMenu); //Contact Menu Services CreateProtoService(PS_GETSERVERHISTORYLAST1DAY, &CVkProto::SvcGetServerHistoryLast1Day); CreateProtoService(PS_GETSERVERHISTORYLAST3DAY, &CVkProto::SvcGetServerHistoryLast3Day); CreateProtoService(PS_GETSERVERHISTORYLAST7DAY, &CVkProto::SvcGetServerHistoryLast7Day); CreateProtoService(PS_GETSERVERHISTORYLAST30DAY, &CVkProto::SvcGetServerHistoryLast30Day); CreateProtoService(PS_GETSERVERHISTORYLAST90DAY, &CVkProto::SvcGetServerHistoryLast90Day); CreateProtoService(PS_GETALLSERVERHISTORY, &CVkProto::SvcGetAllServerHistory); CreateProtoService(PS_VISITPROFILE, &CVkProto::SvcVisitProfile); CreateProtoService(PS_CREATECHAT, &CVkProto::SvcCreateChat); CreateProtoService(PS_ADDASFRIEND, &CVkProto::SvcAddAsFriend); CreateProtoService(PS_DELETEFRIEND, &CVkProto::SvcDeleteFriend); CreateProtoService(PS_BANUSER, &CVkProto::SvcBanUser); CreateProtoService(PS_REPORTABUSE, &CVkProto::SvcReportAbuse); CreateProtoService(PS_DESTROYKICKCHAT, &CVkProto::SvcDestroyKickChat); CreateProtoService(PS_OPENBROADCAST, &CVkProto::SvcOpenBroadcast); CreateProtoService(PS_LOADVKNEWS, &CVkProto::SvcLoadVKNews); CreateProtoService(PS_SETSTATUSMSG, &CVkProto::SvcSetStatusMsg); CreateProtoService(PS_WALLPOST, &CVkProto::SvcWallPost); CMenuItem mi; mi.root = Menu_GetProtocolRoot(this); // Proto menu mi.pszService = PS_CREATECHAT; mi.position = 10009 + PMI_CREATECHAT; mi.hIcolibItem = Skin_GetIconHandle(SKINICON_CHAT_JOIN); mi.name.a = LPGEN("Create new chat"); SET_UID(mi, 0xc217748d, 0x7218, 0x4a62, 0xab, 0x37, 0x9, 0x58, 0x6a, 0x88, 0x71, 0x3e); g_hProtoMenuItems[PMI_CREATECHAT] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = PS_SETSTATUSMSG; mi.position = 10009 + PMI_SETSTATUSMSG; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_STATUS)); mi.name.a = LPGEN("Status message"); SET_UID(mi, 0x696bd932, 0xeee4, 0x4c4c, 0xa6, 0xf8, 0xb3, 0x72, 0xdf, 0xc6, 0xfa, 0xd1); g_hProtoMenuItems[PMI_SETSTATUSMSG] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = PS_WALLPOST; mi.position = 10009 + PMI_WALLPOST; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_WALL)); mi.name.a = LPGEN("Send message to my wall"); SET_UID(mi, 0x50a80044, 0xdddd, 0x47e6, 0x9e, 0x90, 0x32, 0x7b, 0x88, 0x13, 0x21, 0x4e); g_hProtoMenuItems[PMI_WALLPOST] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = PS_LOADVKNEWS; mi.position = 10009 + PMI_LOADVKNEWS; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_NOTIFICATION)); mi.name.a = LPGEN("Load news from VK"); SET_UID(mi, 0x7c449456, 0xb731, 0x48cc, 0x9c, 0x4e, 0x20, 0xe4, 0x66, 0x7a, 0x16, 0x23); g_hProtoMenuItems[PMI_LOADVKNEWS] = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = PS_VISITPROFILE; mi.position = 10009 + PMI_VISITPROFILE; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_VISITPROFILE)); mi.name.a = LPGEN("Visit profile"); SET_UID(mi, 0x9550515e, 0x2a45, 0x4913, 0x95, 0x1a, 0x1e, 0xfa, 0x7, 0xc6, 0x2d, 0x60); g_hProtoMenuItems[PMI_VISITPROFILE] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Contact Menu Items mi.root = NULL; mi.flags = CMIF_TCHAR; mi.pszService = PS_VISITPROFILE; mi.position = -200001000 + CMI_VISITPROFILE; mi.name.t = LPGENT("Visit profile"); SET_UID(mi, 0x828cc50e, 0x398d, 0x43a2, 0xbf, 0xd3, 0xa9, 0x96, 0x47, 0x9d, 0x52, 0xff); g_hContactMenuItems[CMI_VISITPROFILE] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_WALLPOST; mi.position = -200001000 + CMI_WALLPOST; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_WALL)); mi.name.t = LPGENT("Send message to user\'s wall"); SET_UID(mi, 0xd8841aaf, 0x15f6, 0x4be9, 0x9f, 0x4f, 0x16, 0xa9, 0x47, 0x6a, 0x19, 0x81); g_hContactMenuItems[CMI_WALLPOST] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_ADDASFRIEND; mi.position = -200001000 + CMI_ADDASFRIEND; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_FRIENDADD)); mi.name.t = LPGENT("Add as friend"); SET_UID(mi, 0xf11b9a7f, 0x569, 0x4023, 0xb0, 0xd6, 0xa3, 0x16, 0xf6, 0xd4, 0xfb, 0xb5); g_hContactMenuItems[CMI_ADDASFRIEND] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_DELETEFRIEND; mi.position = -200001000 + CMI_DELETEFRIEND; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_FRIENDDEL)); mi.name.t = LPGENT("Delete from friend list"); SET_UID(mi, 0x1e26514, 0x854f, 0x4e60, 0x8c, 0xf8, 0xab, 0xaa, 0xe0, 0xc3, 0xa5, 0xa7); g_hContactMenuItems[CMI_DELETEFRIEND] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_BANUSER; mi.position = -200001000 + CMI_BANUSER; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_BAN)); mi.name.t = LPGENT("Ban user"); SET_UID(mi, 0x7ba06bab, 0xf770, 0x4938, 0x9c, 0x76, 0xef, 0x40, 0xbc, 0x55, 0x0, 0x9b); g_hContactMenuItems[CMI_BANUSER] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_REPORTABUSE; mi.position = -200001000 + CMI_REPORTABUSE; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_ABUSE)); mi.name.t = LPGENT("Report abuse"); SET_UID(mi, 0x56454cb9, 0xd80, 0x4050, 0xbe, 0xfc, 0x2c, 0xf6, 0x10, 0x2a, 0x7d, 0x19); g_hContactMenuItems[CMI_REPORTABUSE] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_DESTROYKICKCHAT; mi.position = -200001000 + CMI_DESTROYKICKCHAT; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_FRIENDDEL)); mi.name.t = LPGENT("Destroy room"); SET_UID(mi, 0x4fa6e75a, 0x30cd, 0x4482, 0xae, 0x8f, 0x0, 0x38, 0xd0, 0x17, 0x33, 0xcd); g_hContactMenuItems[CMI_DESTROYKICKCHAT] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_OPENBROADCAST; mi.position = -200001000 + CMI_OPENBROADCAST; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_BROADCAST)); mi.name.t = LPGENT("Open broadcast"); SET_UID(mi, 0x85251a06, 0xf734, 0x4985, 0x8c, 0x36, 0x6f, 0x66, 0x46, 0xf9, 0xa0, 0x10); g_hContactMenuItems[CMI_OPENBROADCAST] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_LOADVKNEWS; mi.position = -200001000 + CMI_LOADVKNEWS; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_NOTIFICATION)); mi.name.t = LPGENT("Load news from VK"); SET_UID(mi, 0xe1f6888b, 0x21ae, 0x409f, 0x82, 0xa2, 0x7b, 0x72, 0xef, 0x47, 0x9, 0xc0); g_hContactMenuItems[CMI_LOADVKNEWS] = Menu_AddContactMenuItem(&mi, m_szModuleName); // Sync history menu mi.pszService = PS_GETSERVERHISTORY; mi.position = -200001000 + CMI_GETSERVERHISTORY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("Reload messages from vk.com..."); SET_UID(mi, 0xc6b59e9f, 0x5250, 0x4146, 0xb6, 0xf3, 0x2d, 0xe1, 0x4, 0x3b, 0x95, 0xf5); g_hContactMenuItems[CMI_GETSERVERHISTORY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.root = g_hContactMenuItems[CMI_GETSERVERHISTORY]; mi.pszService = PS_GETSERVERHISTORYLAST1DAY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETSERVERHISTORYLAST1DAY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for last 1 day"); SET_UID(mi, 0x508dce88, 0x1a9a, 0x4dd7, 0x90, 0xf4, 0x41, 0x35, 0x7b, 0xc3, 0x17, 0xed); g_hContactHistoryMenuItems[CHMI_GETSERVERHISTORYLAST1DAY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_GETSERVERHISTORYLAST3DAY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETSERVERHISTORYLAST3DAY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for last 3 days"); SET_UID(mi, 0x9a878764, 0x5bbf, 0x433a, 0xbd, 0x50, 0xa9, 0xb9, 0x16, 0x1f, 0x99, 0x29); g_hContactHistoryMenuItems[CHMI_GETSERVERHISTORYLAST3DAY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_GETSERVERHISTORYLAST7DAY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETSERVERHISTORYLAST7DAY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for last week"); SET_UID(mi, 0xc6482460, 0xd280, 0x4596, 0x97, 0x4b, 0xf7, 0xfa, 0x6d, 0xe, 0xd5, 0xda); g_hContactHistoryMenuItems[CHMI_GETSERVERHISTORYLAST7DAY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_GETSERVERHISTORYLAST30DAY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETSERVERHISTORYLAST30DAY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for last 30 days"); SET_UID(mi, 0xc48e8a9f, 0x2860, 0x4d5b, 0xa8, 0xdf, 0xb8, 0x3f, 0xdf, 0x7b, 0xa2, 0xba); g_hContactHistoryMenuItems[CHMI_GETSERVERHISTORYLAST30DAY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_GETSERVERHISTORYLAST90DAY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETSERVERHISTORYLAST90DAY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for last 90 days"); SET_UID(mi, 0xd8e30530, 0xa585, 0x4672, 0xa6, 0x39, 0x18, 0xc9, 0xc9, 0xcb, 0xc7, 0x7d); g_hContactHistoryMenuItems[CHMI_GETSERVERHISTORYLAST90DAY] = Menu_AddContactMenuItem(&mi, m_szModuleName); mi.pszService = PS_GETALLSERVERHISTORY; mi.position = -200001000 + CMI_GETSERVERHISTORY + 100 + CHMI_GETALLSERVERHISTORY; mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_HISTORY)); mi.name.t = LPGENT("for all time"); SET_UID(mi, 0xaee3d02b, 0x3667, 0x47c8, 0x9f, 0x43, 0x14, 0xb7, 0xab, 0x52, 0x14, 0x94); g_hContactHistoryMenuItems[CHMI_GETALLSERVERHISTORY] = Menu_AddContactMenuItem(&mi, m_szModuleName); }
void CYahooProto::MenuMainInit(void) { CMenuItem mi; mi.flags = 0; mi.root = Menu_GetProtocolRoot(this); // Show custom status menu mi.pszService = YAHOO_SET_CUST_STAT; CreateProtoService(mi.pszService, &CYahooProto::SetCustomStatCommand); mi.position = 290000; mi.hIcolibItem = GetIconHandle(IDI_SET_STATUS); mi.name.a = LPGEN("Set &Custom Status"); menuItemsAll[0] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Edit My profile mi.pszService = YAHOO_EDIT_MY_PROFILE; CreateProtoService(mi.pszService, &CYahooProto::OnEditMyProfile); mi.position = 290005; mi.hIcolibItem = GetIconHandle(IDI_PROFILE); mi.name.a = LPGEN("&Edit My Profile"); menuItemsAll[1] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Show My profile mi.pszService = YAHOO_SHOW_MY_PROFILE; CreateProtoService(mi.pszService, &CYahooProto::OnShowMyProfileCommand); mi.position = 290006; mi.hIcolibItem = GetIconHandle(IDI_PROFILE); mi.name.a = LPGEN("&My Profile"); menuItemsAll[2] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Show Yahoo mail mi.pszService = YAHOO_YAHOO_MAIL; CreateProtoService(mi.pszService, &CYahooProto::OnGotoMailboxCommand); mi.position = 290010; mi.hIcolibItem = GetIconHandle(IDI_INBOX); mi.name.a = LPGEN("&Yahoo Mail"); menuItemsAll[3] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Show Address Book mi.pszService = YAHOO_AB; CreateProtoService(mi.pszService, &CYahooProto::OnABCommand); mi.position = 290015; mi.hIcolibItem = GetIconHandle(IDI_YAB); mi.name.a = LPGEN("&Address Book"); menuItemsAll[4] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Show Calendar mi.pszService = YAHOO_CALENDAR; CreateProtoService(mi.pszService, &CYahooProto::OnCalendarCommand); mi.position = 290017; mi.hIcolibItem = GetIconHandle(IDI_CALENDAR); mi.name.a = LPGEN("&Calendar"); menuItemsAll[5] = Menu_AddProtoMenuItem(&mi, m_szModuleName); // Join chatroom mi.pszService = "/JoinChatRoom"; CreateProtoService(mi.pszService, &CYahooProto::CreateConference); mi.position = 290018; mi.hIcolibItem = GetIconHandle(IDI_YAHOO); mi.name.a = LPGEN("Create Conference"); menuItemsAll[6] = Menu_AddProtoMenuItem(&mi, m_szModuleName); }
void CJabberProto::MenuInit() { CMenuItem mi; mi.root = m_hMenuRoot = Menu_GetProtocolRoot(this); mi.flags = CMIF_UNMOVABLE; // "Bookmarks..." mi.pszService = "/Bookmarks"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleBookmarks); mi.name.a = LPGEN("Bookmarks"); mi.position = 200001; mi.hIcolibItem = GetIconHandle(IDI_BOOKMARKS); m_hMenuBookmarks = Menu_AddProtoMenuItem(&mi, m_szModuleName); // "Services..." mi.pszService = NULL; mi.name.a = LPGEN("Services..."); mi.position = 200003; mi.hIcolibItem = GetIconHandle(IDI_SERVICE_DISCOVERY); HGENMENU hMenuServicesRoot = Menu_AddProtoMenuItem(&mi, m_szModuleName); // "Service Discovery..." mi.root = hMenuServicesRoot; mi.pszService = "/ServiceDiscovery"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleServiceDiscovery); mi.name.a = LPGEN("Service Discovery"); mi.position = 2000050001; mi.hIcolibItem = GetIconHandle(IDI_SERVICE_DISCOVERY); m_hMenuServiceDiscovery = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/SD/MyTransports"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleServiceDiscoveryMyTransports); mi.name.a = LPGEN("Registered Transports"); mi.position = 2000050003; mi.hIcolibItem = GetIconHandle(IDI_TRANSPORTL); m_hMenuSDMyTransports = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/SD/Transports"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleServiceDiscoveryTransports); mi.name.a = LPGEN("Local Server Transports"); mi.position = 2000050004; mi.hIcolibItem = GetIconHandle(IDI_TRANSPORT); m_hMenuSDTransports = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/SD/Conferences"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleServiceDiscoveryConferences); mi.name.a = LPGEN("Browse chatrooms"); mi.position = 2000050005; mi.hIcolibItem = GetIconHandle(IDI_GROUP); m_hMenuSDConferences = Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/Groupchat"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleJoinGroupchat); mi.name.a = LPGEN("Create/Join group chat"); mi.position = 2000050006; mi.hIcolibItem = GetIconHandle(IDI_GROUP); m_hMenuGroupchat = Menu_AddProtoMenuItem(&mi, m_szModuleName); // "Change Password..." mi.pszService = "/ChangePassword"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleChangePassword); mi.name.a = LPGEN("Change Password"); mi.position = 2000050007; mi.hIcolibItem = GetIconHandle(IDI_KEYS); m_hMenuChangePassword = Menu_AddProtoMenuItem(&mi, m_szModuleName); // "Roster editor" mi.pszService = "/RosterEditor"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleRosterControl); mi.name.a = LPGEN("Roster editor"); mi.position = 2000050009; mi.hIcolibItem = GetIconHandle(IDI_AGENTS); m_hMenuRosterControl = Menu_AddProtoMenuItem(&mi, m_szModuleName); // "XML Console" mi.pszService = "/XMLConsole"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleConsole); mi.name.a = LPGEN("XML Console"); mi.position = 2000050010; mi.hIcolibItem = GetIconHandle(IDI_CONSOLE); Menu_AddProtoMenuItem(&mi, m_szModuleName); mi.pszService = "/Notes"; CreateProtoService(mi.pszService, &CJabberProto::OnMenuHandleNotes); mi.name.a = LPGEN("Notes"); mi.position = 2000050011; mi.hIcolibItem = GetIconHandle(IDI_NOTES); m_hMenuNotes = Menu_AddProtoMenuItem(&mi, m_szModuleName); BuildPrivacyMenu(); if (m_menuItemsStatus) BuildPrivacyListsMenu(false); ////////////////////////////////////////////////////////////////////////////////////// // build priority menu m_priorityMenuVal = 0; m_priorityMenuValSet = false; mi.pszService = NULL; mi.position = 200006; mi.root = m_hMenuRoot; mi.name.a = LPGEN("Resource priority"); mi.flags = CMIF_UNMOVABLE | CMIF_HIDDEN; m_hMenuPriorityRoot = Menu_AddProtoMenuItem(&mi); TCHAR szName[128]; char srvFce[MAX_PATH + 64]; mi.pszService = srvFce; mi.name.t = szName; mi.position = 2000040000; mi.flags = CMIF_UNMOVABLE | CMIF_TCHAR | CMIF_KEEPUNTRANSLATED; mi.root = m_hMenuPriorityRoot; mir_snprintf(srvFce, "/menuSetPriority/%d", 0); bool needServices = !ProtoServiceExists(m_szModuleName, srvFce); if (needServices) CreateProtoServiceParam(srvFce, &CJabberProto::OnMenuSetPriority, 0); int steps[] = { 10, 5, 1, 0, -1, -5, -10 }; for (int i = 0; i < _countof(steps); i++) { if (!steps[i]) { mi.position += 100000; continue; } mir_snprintf(srvFce, "/menuSetPriority/%d", steps[i]); if (steps[i] > 0) { mir_sntprintf(szName, TranslateT("Increase priority by %d"), steps[i]); mi.hIcolibItem = GetIconHandle(IDI_ARROW_UP); } else { mir_sntprintf(szName, TranslateT("Decrease priority by %d"), -steps[i]); mi.hIcolibItem = GetIconHandle(IDI_ARROW_DOWN); } if (needServices) CreateProtoServiceParam(srvFce, &CJabberProto::OnMenuSetPriority, (LPARAM)steps[i]); mi.position++; Menu_AddProtoMenuItem(&mi, m_szModuleName); } UpdatePriorityMenu((short)getWord("Priority", 0)); ////////////////////////////////////////////////////////////////////////////////////// // finalize status menu m_pepServices.RebuildMenu(); CheckMenuItems(); NotifyFastHook(hStatusMenuInit, (WPARAM)m_hMenuRoot, (LPARAM)(IJabberInterface*)this); }