/** * \brief Parses the Net Parameter's Other Values(BA_). * \param[in] CStdioFile &fileInput,CList<CParameters,CParameters&>& m_listParam * \param[out] None * \return void * \authors Padmaja.A * \date 16.11.2004 */ void CParameters::Format_NetParam_Value(CStdioFile &fileInput,CList<CParameters,CParameters&>& m_listParam) { CParameterValues pVal; char acLine[defCON_MAX_LINE_LEN]; char *pcToken, *pcLine; char acTemp[defCON_CHAR_LEN],*pcTemp; pcTemp = acTemp; //parses the mesg pram other values. while(strcmp((fileInput.ReadString(acLine,defCON_MAX_LINE_LEN)),"[END_PARAM_NET_VAL]\n")!=0) { pcLine = acLine; //get other values. pcToken=strtok(pcLine,","); pcToken++; while(*pcToken && *pcToken!='"') { *pcTemp++=*pcToken++; } *pcTemp='\0'; //assigns other values to the matching param. POSITION posMsg = m_listParam.GetHeadPosition(); while(posMsg != NULL) { CParameters& rParam = m_listParam.GetNext(posMsg); // find matching Parameter from list if(strcmp(rParam.m_ParamName,acTemp)==0 ) { pVal.Format_Param_Value(rParam.m_ParamType,(pcLine+strlen(acTemp)+3),0); rParam.m_listParamValues[0].AddTail(pVal); pcTemp=acTemp; break; } } } }
//****************************************************************************** void CBCGPRibbonCommandsListBox::FillFromIDs (const CList<UINT,UINT>& lstCommands, BOOL bDeep) { ASSERT_VALID (this); ASSERT_VALID (m_pRibbonBar); CArray<CBCGPBaseRibbonElement*, CBCGPBaseRibbonElement*> arElements; for (POSITION pos = lstCommands.GetHeadPosition (); pos != NULL;) { UINT uiCmd = lstCommands.GetNext (pos); if (uiCmd == 0) { if (m_pSeparator != NULL) { arElements.Add (m_pSeparator); } continue; } CBCGPBaseRibbonElement* pElem = m_pRibbonBar->FindByID (uiCmd, FALSE); if (pElem == NULL) { continue; } ASSERT_VALID (pElem); arElements.Add (pElem); } FillFromArray (arElements, bDeep, FALSE); }
/** * \brief Write's the Value Descriptor in the CANoe format * \param[in] CStdioFile &fileOutput,char ,CList<CValueDescriptor,CValueDescriptor&> * \param[out] None * \return int * \authors Mahesh.B.S * \date 15.11.2002 */ void CValueDescriptor::writeValuDescToFile(CStdioFile &fileOutput,char m_ucType,CList<CValueDescriptor,CValueDescriptor&> &m_listValueDescriptor) { char acLine[defVDES_MAX_OUT_STR]; POSITION posValDesc = m_listValueDescriptor.GetHeadPosition(); while(posValDesc != NULL) { CValueDescriptor& rValDesc = m_listValueDescriptor.GetNext(posValDesc); switch(m_ucType) { case CSignal::SIG_TYPE_INT: case CSignal::SIG_TYPE_FLOAT: case CSignal::SIG_TYPE_DOUBLE: case CSignal::SIG_TYPE_INT64: sprintf(acLine,"%I64d \"%s\" ",rValDesc.m_value.i64Value,rValDesc.m_sDescriptor); break; case CSignal::SIG_TYPE_BOOL: case CSignal::SIG_TYPE_UINT: case CSignal::SIG_TYPE_UINT64: sprintf(acLine,"%I64u \"%s\" ",rValDesc.m_value.ui64Value,rValDesc.m_sDescriptor); break; default: break; } fileOutput.WriteString(acLine); } fileOutput.WriteString(";\n"); return; }
int CDlgParamSet::GetDelParamlst(vector<ZTreeParam*> &vecParams,int &nGroupCount) { int ncount =0; ZTreeParam* pParam = NULL; CBCGPGridItem*pItem = NULL; CZGridRow *pRow = NULL; CList <CBCGPGridItem*, CBCGPGridItem*> lstSelected; m_wndGridTree.GetSelectedItems (lstSelected); for (POSITION pos = lstSelected.GetHeadPosition(); pos != NULL; ) { pItem = lstSelected.GetAt(pos); lstSelected.GetNext(pos); pRow = (CZGridRow*)pItem->GetParentRow(); pParam = (ZTreeParam*)pRow->GetData(); if (pParam==NULL) continue; if (pParam->m_bIsGroup) nGroupCount++; ncount++; vecParams.push_back(pParam); } return ncount; }
CZGridRow* CDlgParamSet::GetNextRowAfterDel( CZGridRow*pCurItem) { CZGridRow* pParaentItem=NULL; CZGridRow* pNextItem=NULL; CList<CBCGPGridRow*, CBCGPGridRow*> lst; //要删除的pRow //pCurItem = (CZGridRow*)m_wndGridTree.GetRow(nIndex); //if (pCurItem==NULL) return n; pParaentItem = (CZGridRow*)pCurItem->GetParent(); pParaentItem->GetSubItems(lst); POSITION pos =lst.Find(pCurItem); lst.GetNext (pos); if (pos==NULL) pNextItem=pParaentItem; else pNextItem=(CZGridRow*)lst.GetAt(pos); return pNextItem; }
int CToolCervicales::FindInList(CList<CPoint, CPoint&>& i_List, const CPoint& i_Point) const { POSITION i_Pos = i_List.GetHeadPosition(); while (i_Pos != NULL) { if (i_List.GetNext(i_Pos) == i_Point) return (int) i_Pos; } return -1; }
void CMetaDlg::OnBnClickedOk() { typedef std::map<CString, char> StrCharMap; BOOL bRemain = TRUE; ChangeAclParams params; params.buckname = m_strBucket; params.objname = m_strObject; char acl_c, acl_a; bRemain &= GetCanonicalGroupAcl(&acl_c); params.acls.insert(StrCharMap::value_type(_T(CANONICAL_GROUP), acl_c)); bRemain &= GetAnonymouseGroupAcl(&acl_a); params.acls.insert(StrCharMap::value_type(_T(ANONYMOUSE_GROUP), acl_a)); CList<CString, CString> users; GetAllUser(users); POSITION pos = users.GetHeadPosition(); while (pos) { char acl; CString name = users.GetNext(pos); bRemain &= GetUserAcl(name, &acl); params.acls.insert(StrCharMap::value_type(name, acl)); } if (!bRemain) { AfxGetApp()->GetMainWnd()->SendMessage(WM_MAINDLG_ChangeAcl, (WPARAM)¶ms); } CDialogEx::OnOK(); }
//右键弹出处理 void CComputerListView::OnContextMenu(CWnd*, CPoint point) { m_SelectRows.RemoveAll(); CMenu menu; CBCGPGridRow* pRow = GetGridCtrl()->GetCurSel(); if (pRow != NULL)//存在选中的子行 { CList<CBCGPGridItem*, CBCGPGridItem*> lstSelected; GetGridCtrl()->GetSelectedItems(lstSelected);//多重选择队列 POSITION pos = lstSelected.GetHeadPosition();//第一个 while (pos != NULL) { CBCGPGridItem* pItem = lstSelected.GetNext(pos);//下一个 m_SelectRows.Add((UINT)pItem->GetParentRow()->GetData());//保存选中的序号 } SendMessage(WM_LBUTTONUP);//弹起 VERIFY(menu.LoadMenu(IDR_COMPUTER_MENU));//载入 CMenu* pPopup = menu.GetSubMenu(0);//第一个子菜单 ASSERT(pPopup != NULL); #ifndef __USING_INTER_RESOURCE HMENU hTmp = pPopup->GetSubMenu(6)->GetSafeHmenu(); pPopup->ModifyMenu((UINT_PTR)hTmp,MF_POPUP,(UINT_PTR)hTmp,LOAD_STRING(IDS_REMOTE_OPERATION)); #endif //弹出菜单 theApp.GetContextMenuManager()->ShowPopupMenu(pPopup->Detach(), point.x, point.y, this, TRUE); } else { //扫描鼠标位置,点击在列栏上,才弹出此菜单 CRect rect; m_pWndGridCtrl->GetClientRect(rect); rect.bottom = 21; //栏高度大概为21个像素 ClientToScreen(rect); if (rect.PtInRect(point))//点击在栏上 { VERIFY(menu.LoadMenu(IDR_MENU_COLUMN));//载入列菜单 CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); for (INT i = 0; i < GetGridCtrl()->GetColumnCount(); i++)//列枚举 {//动态插入与列项有关的菜单 pPopup->InsertMenu(i, MF_BYPOSITION, IDM_MINCOLUMNCMD + i, GetGridCtrl()->GetColumnName(i)); pPopup->CheckMenuItem(i, MF_BYPOSITION | (GetGridCtrl()->GetColumnVisible(i) ? MF_CHECKED : MF_UNCHECKED)); } theApp.GetContextMenuManager()->ShowPopupMenu(pPopup->Detach(), point.x, point.y, this, TRUE); } } }
/** * \brief Writes the parameter default values to the output file. * \param[in] CStdioFile& fileOutput,CList<CParameters,CParameters&> &m_listParameter * \param[out] None * \return bool * \authors Padmaja.A * \date 15.11.2004 */ bool Write_DefVal_ToFile(CStdioFile& fileOutput,CList<CParameters,CParameters&> &m_listParameter) { bool pResult=true; char acLine[defCON_MAX_LINE_LEN]; //gets the first param from the list. POSITION pos=m_listParameter .GetHeadPosition(); while(pos!=NULL) { CParameters& rParam=m_listParameter.GetNext(pos); //checks whether def val is with in the range or not. if(rParam.m_RangeError) pResult=false; //writes def val of type int to the o/p file. if(strcmp(rParam.m_ParamType,"INT")==0 ) sprintf(acLine,"BA_DEF_DEF_ \"%s\" %d;\n",rParam.m_ParamName,rParam.m_InitVal.iValue); //writes def val of type ex to the o/p file. else if(strcmp(rParam.m_ParamType,"HEX")==0) sprintf(acLine,"BA_DEF_DEF_ \"%s\" %u;\n",rParam.m_ParamName,rParam.m_InitVal.uiValue); //writes def val of type flaot to the o/p file. else if(strcmp(rParam.m_ParamType,"FLOAT")==0) sprintf(acLine,"BA_DEF_DEF_ \"%s\" %f;\n",rParam.m_ParamName,rParam.m_InitVal.fValue); //writes def val of type enum to the o/p file. else if(strcmp(rParam.m_ParamType,"ENUM")==0) sprintf(acLine,"BA_DEF_DEF_ \"%s\" \"%s\";\n",rParam.m_ParamName,rParam.m_InitVal.cValue); //writes def val of type string to the o/p file. else sprintf(acLine,"BA_DEF_DEF_ \"%s\" %s;\n",rParam.m_ParamName,rParam.m_InitVal.cValue); fileOutput.WriteString(acLine); } return pResult; }
YGroup::YGroup(CList<YObject*, YObject*>& list){ resizing = FALSE; // 그룹 리스트 초기화 YObject* tmp; POSITION pos = list.GetHeadPosition(); while (pos){ tmp = list.GetNext(pos); tmp->setSelect(FALSE); groupList.AddTail(tmp); } // 리젼 사각형을 위한 좌표값 생성 sPoint.SetPoint(10000, 10000); ePoint.SetPoint(0, 0); CRect rec; pos = groupList.GetHeadPosition(); while (pos){ tmp = groupList.GetNext(pos); rec = tmp->getORect(); if (sPoint.x > rec.TopLeft().x) sPoint.x = rec.TopLeft().x; if (sPoint.y > rec.TopLeft().y) sPoint.y = rec.TopLeft().y; if (ePoint.x < rec.BottomRight().x) ePoint.x = rec.BottomRight().x; if (ePoint.y < rec.BottomRight().y) ePoint.y = rec.BottomRight().y; } }
void CHttpRequest::AddHeaders(CList<CHttpHeader *, CHttpHeader *> &headers) { POSITION pos = headers.GetHeadPosition(); while (pos != NULL) { CHttpHeader *hdr = headers.GetNext(pos); Headers.AddTail(new CHttpHeader(hdr->Name, hdr->Value)); } }
void CPlayerPlaylistBar::DropItemOnList() { m_ptDropPoint.y += 10; m_nDropIndex = m_list.HitTest(CPoint(10, m_ptDropPoint.y)); TCHAR szLabel[_MAX_PATH]; LV_ITEM lvi; ZeroMemory(&lvi, sizeof(LV_ITEM)); lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE | LVIF_PARAM; lvi.stateMask = LVIS_DROPHILITED | LVIS_FOCUSED | LVIS_SELECTED; lvi.pszText = szLabel; lvi.iItem = m_nDragIndex; lvi.cchTextMax = _MAX_PATH; m_list.GetItem(&lvi); if (m_nDropIndex < 0) { m_nDropIndex = m_list.GetItemCount(); } lvi.iItem = m_nDropIndex; m_list.InsertItem(&lvi); CHeaderCtrl* pHeader = (CHeaderCtrl*)m_list.GetDlgItem(0); int nColumnCount = pHeader->GetItemCount(); lvi.mask = LVIF_TEXT; lvi.iItem = m_nDropIndex; //INDEX OF DRAGGED ITEM WILL CHANGE IF ITEM IS DROPPED ABOVE ITSELF if (m_nDropIndex < m_nDragIndex) { m_nDragIndex++; } for (int col = 1; col < nColumnCount; col++) { _tcscpy_s(lvi.pszText, _MAX_PATH, (LPCTSTR)(m_list.GetItemText(m_nDragIndex, col))); lvi.iSubItem = col; m_list.SetItem(&lvi); } m_list.DeleteItem(m_nDragIndex); CList<CPlaylistItem> tmp; UINT id = (UINT) - 1; for (int i = 0; i < m_list.GetItemCount(); i++) { POSITION pos = (POSITION)m_list.GetItemData(i); CPlaylistItem& pli = m_pl.GetAt(pos); tmp.AddTail(pli); if (pos == m_pl.GetPos()) { id = pli.m_id; } } m_pl.RemoveAll(); POSITION pos = tmp.GetHeadPosition(); for (int i = 0; pos; i++) { CPlaylistItem& pli = tmp.GetNext(pos); m_pl.AddTail(pli); if (pli.m_id == id) { m_pl.SetPos(m_pl.GetTailPosition()); } m_list.SetItemData(i, (DWORD_PTR)m_pl.GetTailPosition()); } ResizeListColumn(); }
/** * \brief Writes the parameter definition to the specified output file. * \param[in] OutputFileName,Parameters List. * \param[out] None * \return CParameters& * \authors Padmaja.A * \date 15.11.2004 */ bool WriteParamToFile(CStdioFile& fileOutput,CList<CParameters,CParameters&> &m_listParameter) { bool pResult=true; char acLine[defCON_MAX_LINE_LEN]; //gets the frst param in the list. POSITION pos=m_listParameter .GetHeadPosition(); while(pos!=NULL) { CParameters& rParam=m_listParameter.GetNext(pos); if(rParam.m_RangeError) pResult=false; //writes param def to the specified o/p file. if(strcmp(rParam.m_ParamType,"INT")==0 ) sprintf(acLine,"BA_DEF_ %s \"%s\" %s %d %d;\n",rParam.m_ObjectId,rParam.m_ParamName,rParam.m_ParamType, rParam.m_MinVal.iValue,rParam.m_MaxVal.iValue); else if(strcmp(rParam.m_ParamType,"HEX")==0) sprintf(acLine,"BA_DEF_ %s \"%s\" %s %u %u;\n",rParam.m_ObjectId,rParam.m_ParamName,rParam.m_ParamType,rParam.m_MinVal.uiValue,rParam.m_MaxVal.uiValue); else if(strcmp(rParam.m_ParamType,"FLOAT")==0) sprintf(acLine,"BA_DEF_ %s \"%s\" %s %f %f;\n",rParam.m_ObjectId,rParam.m_ParamName,rParam.m_ParamType,rParam.m_MinVal.fValue,rParam.m_MaxVal.fValue); else if(strcmp(rParam.m_ParamType,"ENUM")==0) sprintf(acLine,"BA_DEF_ %s \"%s\" %s%s;\n",rParam.m_ObjectId,rParam.m_ParamName,rParam.m_ParamType,rParam.m_ValRange); else sprintf(acLine,"BA_DEF_ %s \"%s\" %s ;\n",rParam.m_ObjectId,rParam.m_ParamName,rParam.m_ParamType); fileOutput.WriteString(acLine); } return pResult; }
//******************************************************************************** void CBCGPRibbonButtonsGroup::AddButtons ( const CList<CBCGPBaseRibbonElement*, CBCGPBaseRibbonElement*>& lstButtons) { ASSERT_VALID (this); for (POSITION pos = lstButtons.GetHeadPosition (); pos != NULL;) { AddButton (lstButtons.GetNext (pos)); } }
void CLibraryHeaderBar::OnLibraryView() { CMenu pMenu; pMenu.CreatePopupMenu(); CLibraryFrame* pFrame = (CLibraryFrame*)GetParent(); CList< CLibraryView* >* pViews = pFrame->GetViews(); for ( POSITION pos = pViews->GetHeadPosition() ; pos ; ) { CLibraryView* pView = (CLibraryView*)pViews->GetNext( pos ); if ( ! pView->m_bAvailable ) continue; CString strName; Skin.LoadString( strName, pView->m_nCommandID ); LPCTSTR pszName = _tcschr( strName, '\n' ); pszName = ( pszName ) ? ( pszName + 1 ) : (LPCTSTR)strName; pMenu.AppendMenu( MF_STRING | ( pView == m_pLastView ? MF_CHECKED : 0 ), pView->m_nCommandID, pszName ); } m_pCoolMenu = new CCoolMenu(); m_pCoolMenu->AddMenu( &pMenu, TRUE ); m_pCoolMenu->SetWatermark( Skin.GetWatermark( _T("CCoolMenu") ) ); if ( UINT nCmd = ThrowMenu( ID_LIBRARY_VIEW, &pMenu, this, TRUE, TRUE ) ) { for ( POSITION pos = pViews->GetHeadPosition() ; pos ; ) { CLibraryView* pView = (CLibraryView*)pViews->GetNext( pos ); if ( pView->m_nCommandID == nCmd ) { pFrame->SetView( pView ); } } } delete m_pCoolMenu; m_pCoolMenu = NULL; }
/** * \brief Parses the Signal Parameter's Other Values(BA_). * \param[in] CStdioFile &fileInput,CList<CParameters,CParameters&>& m_listParam * \param[out] None * \return void * \authors Padmaja.A * \date 16.11.2004 */ void CParameters::Format_SigParam_Value(CStdioFile &fileInput,CList<CParameters,CParameters&>& m_listParam) { CParameterValues pVal; char acLine[defCON_MAX_LINE_LEN]; char *pcToken, *pcLine; char acTemp[defCON_CHAR_LEN],*pcTemp; pcTemp = acTemp; //parses the signal pram other values. while(strcmp((fileInput.ReadString(acLine,defCON_MAX_LINE_LEN)),"[END_PARAM_SIG_VAL]\n")!=0) { char temp[defCON_CHAR_LEN],sname[defCON_CHAR_LEN]; pcLine = acLine; //get mesg id. pcToken=strtok(pcLine,","); UINT msgId=unsigned int(atoi(pcToken)); pcLine=pcLine+strlen(pcToken)+1; //get message type and validates the mtype. pcToken=strtok(pcLine,","); strcpy(temp,pcToken); if(strcmp(temp,"X")==0) msgId=msgId+2147483648; pcLine=pcLine+strlen(pcToken)+1; //get signal name. pcToken=strtok(pcLine,","); if(strlen(pcToken) > 32) Truncate_str("signal name",pcToken,false); strcpy(sname,pcToken); pcLine=pcLine+strlen(pcToken)+1; //get other values. pcToken=strtok(pcLine,","); pcLine=pcLine+strlen(pcToken)+1; pcToken++; while(*pcToken && *pcToken!='"') { *pcTemp++=*pcToken++; } *pcTemp='\0'; //assigns other values to the matching param. POSITION posMsg = m_listParam.GetHeadPosition(); while(posMsg != NULL) { CParameters& rParam = m_listParam.GetNext(posMsg); // find matching Parameter from list if(strcmp(rParam.m_ParamName,acTemp)==0 ) { pVal.Format_Param_Value(rParam.m_ParamType,pcLine,3,msgId,sname); rParam.m_listParamValues[3].AddTail(pVal); pcTemp=acTemp; break; } } } }
//**************************************************************************************** int CBCGPGridSerializeManager::InsertNewSelection (int nInsertPos, CList<CBCGPGridRow*, CBCGPGridRow*> & lst) { ASSERT (m_pOwnerGrid != NULL); int nCount = 0; for (POSITION pos = lst.GetHeadPosition (); pos != NULL; ) { POSITION posSave = pos; CBCGPGridRow* pRow = lst.GetNext (pos); if (pRow != NULL) { ASSERT_VALID (pRow); //----------------------------------------- // Insert new row at the specified position //----------------------------------------- int nRowIndex = -1; if (m_pOwnerGrid->GetRowCount () <= nInsertPos + nCount) { nRowIndex = m_pOwnerGrid->InsertRowAfter (nInsertPos + nCount, pRow, FALSE); } else { nRowIndex = m_pOwnerGrid->InsertRowBefore (nInsertPos + nCount, pRow, FALSE); } if (nRowIndex >= 0) { nCount++; lst.GetAt (posSave) = NULL; ASSERT (nRowIndex >= nInsertPos); ASSERT (nRowIndex <= nInsertPos + nCount); } } } if (nCount > 0) { // Save inserted range m_InsertRange.SetRows (nInsertPos, nCount, TRUE); // Shift marked ranges for (int j = 0; j < m_arrCutRanges.GetSize (); j++) { m_arrCutRanges [j].OnInsertRange (nInsertPos, nCount); } } return nCount; }
void CToolCervicales::Segmentation(CDib * m_Dib, CRxDoc * i_Document, POSITION c_Pos, POSITION l_Pos, CList<CPoint, CPoint&>& i_List, int Iteration, CList<CPoint, CPoint&>& Result) { if ((!c_Pos) || (!l_Pos) || (c_Pos == l_Pos)) return; POSITION first_Position = c_Pos; POSITION last_Position = l_Pos; CPoint l_FirstPoint = i_List.GetNext(c_Pos); CPoint l_LastPoint = i_List.GetNext(l_Pos); /* plot first and last points */ m_Dib->PutPixel(l_FirstPoint.x, l_FirstPoint.y, (COLORREF) 255); m_Dib->PutPixel(l_LastPoint.x, l_LastPoint.y, (COLORREF) 255); /* find the maximum error point */ CPoint l_MaxPoint = l_FirstPoint, l_Point; double l_Distance, max_Distance = -1; POSITION max_Position = NULL, p_Pos; while (c_Pos != NULL) { p_Pos = c_Pos; l_Point = i_List.GetNext(c_Pos); l_Distance = CAVector::Distance(l_FirstPoint, l_LastPoint, l_Point); if (l_Distance > max_Distance) { l_MaxPoint = l_Point; max_Distance = l_Distance; max_Position = p_Pos; } //m_Dib->PutPixel(l_Point.x, l_Point.y, 0); } if (max_Distance > 1) m_Dib->PutPixel(l_MaxPoint.x, l_MaxPoint.y, (COLORREF) 255); else return; /* CAVector FirstVector; FirstVector.Add(l_FirstPoint); FirstVector.Add(l_MaxPoint); FirstVector.Add(l_LastPoint); i_Document->Add(FirstVector); */ if (Iteration >= 4) { return; } else if (max_Distance > 0) { if ((l_MaxPoint != l_FirstPoint)&&(l_MaxPoint != l_LastPoint)) { Segmentation(m_Dib, i_Document, first_Position, max_Position, i_List, Iteration+1, Result); Result.AddTail(l_MaxPoint); Segmentation(m_Dib, i_Document, max_Position, last_Position, i_List, Iteration+1, Result); } } }
void CDownloadGroupDlg::OnCbnCloseupSchemas() { // Get filters CList< CString > oList; for ( int nItem = 0 ; nItem < m_wndFilterList.GetCount() ; nItem++ ) { CString strFilter; m_wndFilterList.GetLBText( nItem, strFilter ); if ( oList.Find( strFilter ) == NULL ) oList.AddTail( strFilter ); } // Remove old schema filters (preserve custom ones) if ( CSchemaPtr pOldSchema = SchemaCache.Get( m_sOldSchemaURI ) ) { for ( POSITION pos = pOldSchema->GetFilterIterator(); pos ; ) { CString strFilter; BOOL bResult; pOldSchema->GetNextFilter( pos, strFilter, bResult ); if ( bResult ) { strFilter.Insert( 0, _T('.') ); while ( POSITION pos = oList.Find( strFilter ) ) oList.RemoveAt( pos ); } } } // Add new schema filters if ( CSchemaPtr pNewSchema = SchemaCache.Get( m_wndSchemas.GetSelectedURI() ) ) { for ( POSITION pos = pNewSchema->GetFilterIterator(); pos ; ) { CString strFilter; BOOL bResult; pNewSchema->GetNextFilter( pos, strFilter, bResult ); if ( bResult ) { strFilter.Insert( 0, _T('.') ); oList.AddTail( strFilter ); } } } // Refill interface filters list m_wndFilterList.ResetContent(); for ( POSITION pos = oList.GetHeadPosition() ; pos ; ) m_wndFilterList.AddString( oList.GetNext( pos ) ); m_sOldSchemaURI = m_wndSchemas.GetSelectedURI(); }
/****************************************************************************** Function Name : vIDCopy Input(s) : omDestMap, omSrcMap of IDs Output : - Functionality : Copies the source ID map values into destination. Member of : CMessageAttrib Author(s) : Arunkumar K Date Created : 08-03-2011 Modifications : ******************************************************************************/ void CMessageAttrib::vIDCopy(CList <UINT, UINT&>& omDestMap, CList <UINT, UINT&>& omSrcMap) { UINT unMsgID; omDestMap.RemoveAll(); POSITION psCurrPos = omSrcMap.GetHeadPosition(); while (psCurrPos != NULL) { unMsgID = omSrcMap.GetNext(psCurrPos); omDestMap.AddTail(unMsgID); } }
//碰撞检测 void GameManager::CheckCollision() { for (int i = Index_Player; i <= Index_Tool; ++i)//Index_Bomb { if (i == Index_Explosion)continue; CList<GameObject*, GameObject*> *listA = GetList(i); POSITION posA = listA->GetHeadPosition(); while (posA != NULL) { FlyObject* objectA = static_cast<FlyObject*>(listA->GetAt(posA)); for (int j = Index_Player; j <= Index_Tool; ++j)//Index_Bomb { if (j == Index_Explosion)continue; CList<GameObject*, GameObject*> *listB = GetList(j); POSITION posB = listB->GetHeadPosition(); while (posB != NULL) { FlyObject* objectB = static_cast<FlyObject*>(listB->GetAt(posB)); //碰撞检测 if (objectA->Group() == objectB->Group()) { listB->GetNext(posB); continue; } CPoint leftTop = CPoint(objectA->X() - objectB->Width() / 2, objectA->Y() - objectB->Height() / 2); CPoint rightBottom = CPoint(objectA->X() + objectA->Width() + objectB->Width() / 2, objectA->Y() + objectA->Height() + objectB->Height() / 2); CPoint objectCenter = CPoint(objectB->X() + objectB->Width()/2, objectB->Position()->Y() + objectB->Height() / 2); if (objectCenter.x <= rightBottom.x && objectCenter.y <= rightBottom.y && objectCenter.x >= leftTop.x && objectCenter.y >= leftTop.y) { Collision(objectA, objectB); } listB->GetNext(posB); } } listA->GetNext(posA); } } }
void CPropertiesWnd::OnPropDownitem() { if (!IsComboType()) { return; } CMFCPropertyGridProperty *pProp = m_wndPropList.GetCurSel(); if (pProp && pProp->IsGroup()) { CString strName(pProp->GetName()); if (strName.CompareNoCase(_T("ITEM")) == 0) { CMFCPropertyGridProperty *pParentProp = pProp->GetParent(); if (pProp == pParentProp->GetSubItem(pParentProp->GetSubItemsCount() - 1)) { return; } int nEnd = 0; CList<CMFCPropertyGridProperty*, CMFCPropertyGridProperty*> lstSubItems; for (int i = pParentProp->GetSubItemsCount() - 1; i >= nEnd; i--) { CMFCPropertyGridProperty *pChildProp = pParentProp->GetSubItem(i); if (pChildProp) { if (pChildProp == pProp) { nEnd = i; lstSubItems.InsertAfter(lstSubItems.GetHeadPosition(), pChildProp); } else { lstSubItems.AddHead(pChildProp); } pParentProp->RemoveSubItem(pChildProp, FALSE); } } for (POSITION pos = lstSubItems.GetHeadPosition(); pos != NULL;) { CMFCPropertyGridProperty* pProp = lstSubItems.GetNext(pos); ASSERT_VALID(pProp); pParentProp->AddSubItem(pProp); } m_wndPropList.AdjustLayout(); } } }
void CLocalSearch::SendHits(const CList< T* >& oFiles) { CPacket* pPacket = NULL; CSchemaMap pSchemas; BYTE nHits = 0; for ( POSITION pos = oFiles.GetHeadPosition(); pos; ) { if ( ! pPacket ) pPacket = CreatePacket(); AddHit( pPacket, pSchemas, oFiles.GetNext( pos ), nHits ++ ); bool bSend = false; switch ( m_nProtocol ) { case PROTOCOL_G1: case PROTOCOL_G2: bSend = nHits >= Settings.Gnutella.HitsPerPacket || pPacket->m_nLength >= MAX_QUERY_PACKET_SIZE; break; case PROTOCOL_DC: // One hit per packet in DC++ protocol bSend = true; break; default: ASSERT( FALSE ); } // Send full packet if ( bSend ) { WriteTrailer( pPacket, pSchemas, nHits ); DispatchPacket( pPacket ); pPacket = NULL; nHits = 0; } } if ( nHits ) { WriteTrailer( pPacket, pSchemas, nHits ); DispatchPacket( pPacket ); pPacket = NULL; } ASSERT( pPacket == NULL ); ASSERT( pSchemas.IsEmpty() ); }
/*游戏物体控制*/ void GameManager::MoveIt() { for (int i = Index_Enemy; i <= Index_Angela; ++i)//Index_Bomb { if (i == Index_Explosion || i == Index_Tool || i == Index_Cloud) continue; CList<GameObject*, GameObject*> *now = GetList(i); POSITION pos = now->GetHeadPosition(); while (pos != NULL) { FlyObject* fly = static_cast<FlyObject*>(now->GetNext(pos)); fly->PerformFly(); } } }
CBCGPOleCntrFrameWnd::~CBCGPOleCntrFrameWnd() { POSITION pos = NULL; for (pos = m_dockManager.m_lstMiniFrames.GetHeadPosition (); pos != NULL;) { CBCGPMiniFrameWnd* pNextFrame = DYNAMIC_DOWNCAST (CBCGPMiniFrameWnd, m_dockManager.m_lstMiniFrames.GetNext (pos)); if (pNextFrame != NULL) { pNextFrame->DestroyWindow (); } } CList<HWND, HWND> lstChildren; CWnd* pNextWnd = GetTopWindow (); while (pNextWnd != NULL) { lstChildren.AddTail (pNextWnd->m_hWnd); pNextWnd = pNextWnd->GetNextWindow (); } for (pos = lstChildren.GetHeadPosition (); pos != NULL;) { HWND hwndNext = lstChildren.GetNext (pos); if (IsWindow (hwndNext) && ::GetParent (hwndNext) == m_hWnd) { ::DestroyWindow (hwndNext); } } const CObList& list = CBCGPToolBar::GetAllToolbars (); CObList& gAllToolbars = const_cast<CObList&>(list); for (pos = gAllToolbars.GetHeadPosition (); pos != NULL;) { POSITION posSave = pos; CBCGPToolBar* pToolBar = (CBCGPToolBar*) gAllToolbars.GetNext (pos); ASSERT (pToolBar != NULL); if (CWnd::FromHandlePermanent (pToolBar->m_hWnd) == NULL) { gAllToolbars.RemoveAt (posSave); } } }
~tScriptState() { int i; for (i = 0; i < Commands.GetCount(); ++i) { tCommand *pCmd = Commands.GetAt(i); delete pCmd; } POSITION pos = Labels.GetHeadPosition(); while (pos) { tLabel *pLabel = Labels.GetAt(pos); delete pLabel; Labels.GetNext(pos); } }
__int64 Extract(PBTNODE pNode) { __int64 res = 0; CList<PBTNODE,PBTNODE&> pNL; GetLeafList(pNode, pNL); __int64 ir = pNL.GetCount(); //底数 POSITION pos = pNL.GetHeadPosition(); while(pos){ PBTNODE c = pNL.GetNext(pos); PBTNODE n = GotoNext(c); DWORD lv = n==NULL?0:n->dwLevel; res += pow(ir,lv)*c->dwPre; } res += 62; return res; }
void GameManager::Fire() { for (int i = Index_Enemy; i <= Index_Angela; i++) { if (i == Index_Bomb || i == Index_Explosion || i == Index_Tool || i == Index_Cloud) continue; CList<GameObject*, GameObject*> *now = GetList(i); POSITION pos = now->GetHeadPosition(); while (pos != NULL) { Plane* plane_ = static_cast<Plane*>(now->GetNext(pos)); if (plane_->FireStatus()) { Produce(_T("Weapon"), Point(plane_->X() + plane_->Width() / 4 + 8, plane_->Y() + plane_->Height() / 4 + 8), plane_->WeaponID()); } } } }
void CActiveMemberView::OnRebilling() { CIBAString str; str.LoadString(IDS_ENSURE_REBILLING); if (theApp.IBAMsgBox(str,MB_OKCANCEL|MB_ICONQUESTION)!=IDOK) { return; } CList <CBCGPGridItem*,CBCGPGridItem*> arrMember; GetGridCtrl()->GetSelectedItems(arrMember); if( arrMember.GetCount() > 0) { CShortMsgDlg dlg; int nValid = 0; POSITION pos = arrMember.GetHeadPosition(); while(pos!=NULL) { const CBCGPGridItem* &pItem = arrMember.GetNext(pos); CBCGPGridRow *pRow = pItem->GetParentRow(); UINT nMemberId = pRow->GetData(); INT_PTR nIn = CLocalServer::GetInstance()->ComputerList.Find(nMemberId); if ( nIn!=-1 ) { CActiveMember Act; if (CLocalServer::GetInstance()->ActiveMemberList.GetActiveMember(nMemberId,Act)) { // 发送给指定客户端 CLocalServer::GetInstance()->LocalCheckOutUser(nIn, nMemberId, 3); CIBALog::GetInstance()->WriteFormat(_T("客户端重新计费->PC=%s, memberId=%d"),Act.GetTerminalID(),nMemberId); Act.SetActivationTime(COleDateTime::GetCurrentTime()); CLocalServer::GetInstance()->ActiveMemberList.UpdateActiveMember(Act,TRUE); Refresh(FALSE); } } } } }
CLibraryFolder* CLibraryFolderCtrl::GetNextSelectedFolder(POSITION& pos) const { CLibraryFolder* pFolder = NULL; do { if ( pos == NULL ) return NULL; HTREEITEM hItem = (HTREEITEM)pos; pos = (POSITION)GetNextSelectedItem( hItem ); if ( hItem == m_hRoot ) continue; CList< HTREEITEM > pTree; while ( hItem != m_hRoot ) { pTree.AddHead( hItem ); hItem = GetParentItem( hItem ); } CLibraryFolder* pLastFolder = NULL; for ( POSITION posTree = pTree.GetHeadPosition() ; posTree ; pLastFolder = pFolder ) { hItem = pTree.GetNext( posTree ); pFolder = (CLibraryFolder*)GetItemData( hItem ); if ( pLastFolder ) { if ( pLastFolder->CheckFolder( pFolder ) ) continue; } else { if ( LibraryFolders.CheckFolder( pFolder ) ) continue; } pFolder = NULL; break; } } while ( pFolder == NULL ); return pFolder; }