//------------------------------------------------------------------------------ // Unassign code from any key definition existing in the set // NOTE: The key is unassigned from the current set only //------------------------------------------------------------------------------ CKeyDefinition *CKeyMap::UnAssign(int cde,CKeyDefinition *kdf) { CKeySet *set = FindKeySetById(kdf->GetSet()); CKeyDefinition *kpv = set->GetKeyByCode(cde); if (0 == kpv) return 0; kdf->SetCode(0); // remove code from actual kpv->SetCode(0); // remove code from previous set->ClearCode(cde); return kpv; }
//------------------------------------------------------------------------------ // Swap key code //------------------------------------------------------------------------------ void CKeyMap::SwapCode(CKeyDefinition *kdf,int nc) { Tag ks = kdf->GetSet(); int cd = kdf->GetCode(); kdf->SetCode(0); std::map<Tag,CKeySet*>::iterator it = kset.find(ks); if (it != kset.end()) return; // No set CKeySet *set = (*it).second; set->ClearCode(cd); //---Set the new code ---------------------------- kdf->SetCode(nc); set->StoreKeyDef(kdf); return; }