Exemplo n.º 1
0
static int OnContactMenuBuild(WPARAM wParam, LPARAM)
{
	int i;
	OBJLIST<GroupItemSort> groups(10, GroupItemSort::compare);

	if (!hMoveToGroupItem) {
		CLISTMENUITEM mi = { sizeof(mi) };
		mi.position = 100000;
		mi.pszName = LPGEN("&Move to group");
		mi.flags = CMIF_ROOTHANDLE;
		mi.icolibItem = GetSkinIconHandle(SKINICON_OTHER_GROUP);

		hMoveToGroupItem = Menu_AddContactMenuItem(&mi);
	}

	for (i=0; i < lphGroupsItems.getCount(); i++)
		CallService(MS_CLIST_REMOVECONTACTMENUITEM, (WPARAM)lphGroupsItems[i], 0);
	lphGroupsItems.destroy();

	ptrT szContactGroup( db_get_tsa((HANDLE)wParam, "CList", "Group"));

	int pos = 1000;

	AddGroupItem(hMoveToGroupItem, TranslateT("<Root group>"), pos, -1, !szContactGroup);

	pos += 100000; // Separator

	for (i=0; ; i++) {
		char intname[20];
		_itoa(i, intname, 10);

		DBVARIANT dbv;
		if (db_get_ts(NULL, "CListGroups", intname, &dbv))
			break;

		if (dbv.ptszVal[0])
			groups.insert(new GroupItemSort(dbv.ptszVal + 1, i + 1));

		mir_free(dbv.ptszVal);
	}

	for (i=0; i < groups.getCount(); i++) {
		bool checked = szContactGroup && !_tcscmp(szContactGroup, groups[i].name);
		AddGroupItem(hMoveToGroupItem, groups[i].name, ++pos, groups[i].position, checked);
	}

	return 0;
}
Exemplo n.º 2
0
static int OnContactMenuBuild(WPARAM wParam, LPARAM)
{
	int i;
	OBJLIST<GroupItemSort> groups(10, GroupItemSort::compare);

	if (!hMoveToGroupItem) {
		CMenuItem mi;
		SET_UID(mi, 0x403c548, 0x4ac6, 0x4ced, 0xa7, 0x6c, 0x4e, 0xb9, 0xc8, 0xba, 0x94, 0x5);
		mi.position = 100000;
		mi.name.a = LPGEN("&Move to group");
		mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_GROUP);

		hMoveToGroupItem = Menu_AddContactMenuItem(&mi);
	}

	for (i=0; i < lphGroupsItems.getCount(); i++)
		Menu_RemoveItem((HGENMENU)lphGroupsItems[i]);
	lphGroupsItems.destroy();

	ptrT szContactGroup(db_get_tsa(wParam, "CList", "Group"));

	int pos = 1000;

	AddGroupItem(hMoveToGroupItem, TranslateT("<Root group>"), pos, -1, !szContactGroup);

	pos += 100000; // Separator

	for (i=0; ; i++) {
		char intname[20];
		_itoa(i, intname, 10);

		DBVARIANT dbv;
		if (db_get_ts(NULL, "CListGroups", intname, &dbv))
			break;

		if (dbv.ptszVal[0])
			groups.insert(new GroupItemSort(dbv.ptszVal + 1, i + 1));

		mir_free(dbv.ptszVal);
	}

	for (i=0; i < groups.getCount(); i++) {
		bool checked = szContactGroup && !mir_tstrcmp(szContactGroup, groups[i].name);
		AddGroupItem(hMoveToGroupItem, groups[i].name, ++pos, groups[i].position, checked);
	}

	return 0;
}
Exemplo n.º 3
0
static int OnContactMenuBuild(WPARAM wParam, LPARAM)
{
	OBJLIST<GroupItemSort> groups(10, GroupItemSort::compare);
	for (int i = 0; i < lphGroupsItems.getCount(); i++)
		Menu_RemoveItem((HGENMENU)lphGroupsItems[i]);
	lphGroupsItems.destroy();

	ptrT szContactGroup(db_get_tsa(wParam, "CList", "Group"));

	int pos = 1000;

	AddGroupItem(hMoveToGroupItem, TranslateT("<Root group>"), pos, -1, !szContactGroup);

	pos += 100000; // Separator

	for (int i = 0;; i++) {
		char intname[20];
		_itoa(i, intname, 10);

		DBVARIANT dbv;
		if (db_get_ts(NULL, "CListGroups", intname, &dbv))
			break;

		if (dbv.ptszVal[0])
			groups.insert(new GroupItemSort(dbv.ptszVal + 1, i + 1));

		mir_free(dbv.ptszVal);
	}

	for (int i = 0; i < groups.getCount(); i++) {
		bool checked = szContactGroup && !mir_tstrcmp(szContactGroup, groups[i].name);
		AddGroupItem(hMoveToGroupItem, groups[i].name, ++pos, groups[i].position, checked);
	}

	return 0;
}
Exemplo n.º 4
0
static int OnContactMenuBuild(WPARAM wParam,LPARAM lParam)
{
	
	CLISTMENUITEM mi;
	HANDLE menuid;
	int i,grpid;
	boolean grpexists;
	char *grpname;
	char intname[20];
	
	if (prevmenu!=0){
		CallService(MS_CLIST_REMOVECONTACTMENUITEM,(WPARAM)prevmenu,(LPARAM)0);
	};
	
	
	ZeroMemory(&mi,sizeof(mi));
	
	mi.cbSize=sizeof(mi);
	mi.hIcon=NULL;//LoadIcon(hInst,MAKEINTRESOURCEA(IDI_MIRANDA));
	mi.pszPopupName=(char *)-1;
	mi.position=100000;
	mi.pszName=Translate("&Move to Group");
	mi.flags=CMIF_ROOTPOPUP;
	mi.pszContactOwner=(char *)0;
	menuid=(HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,wParam,(LPARAM)&mi);
	
	prevmenu=menuid;

	grpexists=TRUE;
	i=0;
//	intname=(char *)malloc(20);
	grpid=1000;
	AddGroupItem((int)menuid,Translate("Root Group"),grpid++,-1,wParam);
	grpid+=100000;
	//AddGroupItem(menuid,"---------------------------------------------",grpid++,0);
while (TRUE) 
{
	itoa(i,intname,10);
	grpname=DBGetStringA(0,"CListGroups",intname);

	if (grpname==NULL ){break;};
	if (MyStrLen(grpname)==0)
	{
        
		break;
	};
	if (grpname[0]==0)
	{
        
		break;
	};
	AddGroupItem((int)menuid,&(grpname[1]),grpid++,i+1,wParam);
	/*
	mi.cbSize=sizeof(mi);
	mi.hIcon=NULL;//LoadIcon(hInst,MAKEINTRESOURCEA(IDI_MIRANDA));
	mi.pszPopupName=(char *)menuid;
	mi.popupPosition=i+1;
	mi.position=grpid++;
	mi.pszName=&(grpname[1]);
	mi.flags=CMIF_CHILDPOPUP;
	mi.pszContactOwner=(char *)0;
	mi.pszService=MTG_MOVE;
	CallService(MS_CLIST_ADDCONTACTMENUITEM,wParam,(LPARAM)&mi);
	*/
	i++;
	mir_free(grpname);
};
return 0;
};