示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
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);
}
示例#4
0
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;
}
示例#5
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;
}
示例#6
0
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;
}
示例#7
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);
}
示例#8
0
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);
}
示例#9
0
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);
}
示例#10
0
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);
}