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; }
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; }
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; }
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; };