diff options
Diffstat (limited to 'unotools/source/accessibility/accessiblestatesethelper.cxx')
-rw-r--r-- | unotools/source/accessibility/accessiblestatesethelper.cxx | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/unotools/source/accessibility/accessiblestatesethelper.cxx b/unotools/source/accessibility/accessiblestatesethelper.cxx index e0c21f06268f..9f33b80fbb38 100644 --- a/unotools/source/accessibility/accessiblestatesethelper.cxx +++ b/unotools/source/accessibility/accessiblestatesethelper.cxx @@ -2,9 +2,9 @@ * * $RCSfile: accessiblestatesethelper.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: sab $ $Date: 2002-02-22 14:44:40 $ + * last change: $Author: sab $ $Date: 2002-03-20 07:24:19 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -96,7 +96,7 @@ public: throw (uno::RuntimeException); void RemoveState(sal_Int16 aState) throw (uno::RuntimeException); - void Compare(const AccessibleStateSetHelperImpl* pComparativeValue, + sal_Bool Compare(const AccessibleStateSetHelperImpl* pComparativeValue, AccessibleStateSetHelperImpl* pOldStates, AccessibleStateSetHelperImpl* pNewStates) throw (uno::RuntimeException); @@ -168,24 +168,31 @@ void AccessibleStateSetHelperImpl::RemoveState(sal_Int16 aState) maStates &= aTempBitSet; } -void AccessibleStateSetHelperImpl::Compare( +sal_Bool AccessibleStateSetHelperImpl::Compare( const AccessibleStateSetHelperImpl* pComparativeValue, AccessibleStateSetHelperImpl* pOldStates, AccessibleStateSetHelperImpl* pNewStates) throw (uno::RuntimeException) { + sal_Bool bResult(sal_False); if (pComparativeValue && pOldStates && pNewStates) { + if (maStates == pComparativeValue->maStates) + bResult = sal_True; + else + { #if 0 - std::bitset<BITFIELDSIZE> aTempBitSet(maStates); + std::bitset<BITFIELDSIZE> aTempBitSet(maStates); #endif - sal_uInt64 aTempBitSet(maStates); - aTempBitSet ^= pComparativeValue->maStates; - pOldStates->maStates = aTempBitSet; - pOldStates->maStates &= maStates; - pNewStates->maStates = aTempBitSet; - pNewStates->maStates &= pComparativeValue->maStates; + sal_uInt64 aTempBitSet(maStates); + aTempBitSet ^= pComparativeValue->maStates; + pOldStates->maStates = aTempBitSet; + pOldStates->maStates &= maStates; + pNewStates->maStates = aTempBitSet; + pNewStates->maStates &= pComparativeValue->maStates; + } } + return bResult; } @@ -290,14 +297,14 @@ void AccessibleStateSetHelper::RemoveState(sal_Int16 aState) mpHelperImpl->RemoveState(aState); } -void AccessibleStateSetHelper::Compare( +sal_Bool AccessibleStateSetHelper::Compare( const AccessibleStateSetHelper& rComparativeValue, AccessibleStateSetHelper& rOldStates, AccessibleStateSetHelper& rNewStates) throw (uno::RuntimeException) { ::vos::OGuard aGuard (maMutex); - mpHelperImpl->Compare(rComparativeValue.mpHelperImpl, + return mpHelperImpl->Compare(rComparativeValue.mpHelperImpl, rOldStates.mpHelperImpl, rNewStates.mpHelperImpl); } |