Beispiel #1
0
void Menu::HideStartMenu() {
    HideMenuItem(ID_BMP_MENU_SINGLE);
    HideMenuItem(ID_BMP_MENU_MULTI);
    HideMenuItem(ID_BMP_RULES);
    HideMenuItem(ID_BMP_OPTIONS);
    HideMenuItem(ID_BMP_EXIT);
    return;
}
static INT_PTR PreBuildContactMenu(WPARAM wParam, LPARAM lParam) 
{
	HideMenuItem(hCMCall);
	HideMenuItem(hCMAnswer);
	HideMenuItem(hCMHold);
	HideMenuItem(hCMDrop);
	for(unsigned int i = 0; i < hCMCalls.size(); ++i)
		HideMenuItem(hCMCalls[i]);

	HANDLE hContact = (HANDLE) wParam;
	if (hContact == NULL)
		return -1;

	hContact = ConvertMetacontact(hContact);

	// There is a current call already?
	VoiceCall *call = FindVoiceCall(hContact);
	if (call == NULL)
	{
		OBJLIST<CallingMethod> methods(10, sttCompareCallingMethods);
		BuildCallingMethodsList(&methods, hContact);

		if (methods.getCount() == 1)
		{
			CallingMethod *method = &methods[0];

			TCHAR name[128];
			if (!IsEmpty(method->number))
				mir_sntprintf(name, MAX_REGS(name), TranslateT("Call %s with %s"), 
													method->number, method->provider->description);
			else
				mir_sntprintf(name, MAX_REGS(name), TranslateT("Call with %s"), 
													method->provider->description);

			CLISTMENUITEM mi = {0};
			mi.cbSize = sizeof(mi);
			mi.flags = CMIM_FLAGS | CMIF_TCHAR | CMIM_NAME;
			mi.ptszName = name;
			CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hCMCall, (LPARAM) &mi);
		}
		else if (methods.getCount() > 1)
		{
			CLISTMENUITEM mi = {0};
			mi.cbSize = sizeof(mi);
			mi.flags = CMIM_FLAGS | CMIF_TCHAR | CMIM_NAME;
			mi.ptszName = _T("Call");
			CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hCMCall, (LPARAM) &mi);

			for(int i = 0; i < methods.getCount(); ++i)
			{
				CallingMethod *method = &methods[i];

				HICON hIcon = method->provider->GetIcon();

				TCHAR name[128];
				if (!IsEmpty(method->number))
					mir_sntprintf(name, MAX_REGS(name), TranslateT("%s with %s"), 
														method->number, method->provider->description);
				else
					mir_sntprintf(name, MAX_REGS(name), TranslateT("with %s"), 
														method->provider->description);

				char service[128];
				mir_snprintf(service, MAX_REGS(service), "VoiceService/ContactMenu/Call_%d", i);

				CLISTMENUITEM mi = {0};
				mi.cbSize = sizeof(mi);
				mi.position = i;
				mi.flags = CMIF_TCHAR | CMIF_ROOTHANDLE;
				mi.ptszName = name;
				mi.hIcon = hIcon;
				mi.pszService = service;
				mi.hParentMenu = (HGENMENU) hCMCall;

				if (i == hCMCalls.size())
				{
					CreateServiceFunctionParam(service, Service_CallItem, i);

					HANDLE hMenu = (HANDLE) CallService(MS_CLIST_ADDCONTACTMENUITEM, 0, (LPARAM) &mi);

					hCMCalls.push_back(hMenu);
				}
				else
				{
					HANDLE hMenu = hCMCalls[i];

					mi.flags = mi.flags | CMIM_ALL;

					CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM) hMenu, (LPARAM) &mi);
				}

				method->provider->ReleaseIcon(hIcon);
			}
		}
	}
	else
	{		
		switch (call->state)
		{
			case VOICE_STATE_CALLING:
			{
				ShowMenuItem(hCMDrop);
				break;
			}
			case VOICE_STATE_TALKING:
			{
				if (call->module->CanHold())
					ShowMenuItem(hCMHold);
				ShowMenuItem(hCMDrop);
				break;
			}
			case VOICE_STATE_RINGING:
			case VOICE_STATE_ON_HOLD:
			{
				ShowMenuItem(hCMAnswer);
				ShowMenuItem(hCMDrop);
				break;
			}
		}
	}

	return 0;
}
Beispiel #3
0
void Menu::HideGameMenu() {
    HideMenuItem(ID_BMP_PAUSE);
    return;
}
Beispiel #4
0
void Menu::HidePauseMenu() {
    HideMenuItem(ID_BMP_BACK);
    HideMenuItem(ID_BMP_PLAY);
    HideMenuItem(ID_BMP_RESTART);
    return;
}
Beispiel #5
0
void Menu::HideRulesMenu() {
    HideMenuItem(ID_BMP_BACK);
    return;
}
Beispiel #6
0
void Menu::HideOptionMenu() {
    HideMenuItem(ID_BMP_BACK);
    return;
}
Beispiel #7
0
void Menu::HidePositionMultiMenu() {
    HideMenuItem(ID_BMP_PLAY);
    HideMenuItem(ID_BMP_BACK);
    return;
}