summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Fischer <af@openoffice.org>2002-05-17 10:50:15 +0000
committerAndre Fischer <af@openoffice.org>2002-05-17 10:50:15 +0000
commite5b15706b677aa16bc0753f36e395b6b723f2343 (patch)
tree333873beaf0a8b1ada5c2cdc2c21789ed52e444a
parent63f7d0a6ffc1a835701a68b222bad75fe8f41b83 (diff)
#95585# Set/Reset/GetStatus return sal_Bool.
-rw-r--r--svx/source/accessibility/AccessibleContextBase.cxx38
1 files changed, 33 insertions, 5 deletions
diff --git a/svx/source/accessibility/AccessibleContextBase.cxx b/svx/source/accessibility/AccessibleContextBase.cxx
index f2a4b5ed37d5..efe1b42fc416 100644
--- a/svx/source/accessibility/AccessibleContextBase.cxx
+++ b/svx/source/accessibility/AccessibleContextBase.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: AccessibleContextBase.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: af $ $Date: 2002-05-13 12:17:16 $
+ * last change: $Author: af $ $Date: 2002-05-17 11:50:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -132,6 +132,8 @@ AccessibleContextBase::AccessibleContextBase (
pStateSet->AddState (AccessibleStateType::ENABLED);
pStateSet->AddState (AccessibleStateType::SHOWING);
pStateSet->AddState (AccessibleStateType::VISIBLE);
+ pStateSet->AddState (AccessibleStateType::FOCUSABLE);
+ pStateSet->AddState (AccessibleStateType::SELECTABLE);
}
// Create the relation set.
@@ -149,13 +151,16 @@ AccessibleContextBase::~AccessibleContextBase(void)
-void AccessibleContextBase::SetState (sal_Int16 aState)
+sal_Bool AccessibleContextBase::SetState (sal_Int16 aState)
{
+ ::osl::ClearableMutexGuard aGuard (maMutex);
::utl::AccessibleStateSetHelper* pStateSet =
static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
if ((pStateSet != NULL) && !pStateSet->contains(aState))
{
pStateSet->AddState (aState);
+ // Clear the mutex guard so that it is not locked during calls to listeners.
+ aGuard.clear();
uno::Any aNewValue;
aNewValue <<= aState;
@@ -163,19 +168,26 @@ void AccessibleContextBase::SetState (sal_Int16 aState)
AccessibleEventId::ACCESSIBLE_STATE_EVENT,
aNewValue,
uno::Any());
+ return sal_True;
}
+ else
+ return sal_False;
}
-void AccessibleContextBase::ResetState (sal_Int16 aState)
+sal_Bool AccessibleContextBase::ResetState (sal_Int16 aState)
{
+ ::osl::ClearableMutexGuard aGuard (maMutex);
::utl::AccessibleStateSetHelper* pStateSet =
static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
+ bool bStateChanged;
if ((pStateSet != NULL) && pStateSet->contains(aState))
{
pStateSet->RemoveState (aState);
+ // Clear the mutex guard so that it is not locked during calls to listeners.
+ aGuard.clear();
uno::Any aOldValue;
aOldValue <<= aState;
@@ -183,7 +195,10 @@ void AccessibleContextBase::ResetState (sal_Int16 aState)
AccessibleEventId::ACCESSIBLE_STATE_EVENT,
uno::Any(),
aOldValue);
+ return sal_True;
}
+ else
+ return sal_False;
}
@@ -191,6 +206,7 @@ void AccessibleContextBase::ResetState (sal_Int16 aState)
sal_Bool AccessibleContextBase::GetState (sal_Int16 aState)
{
+ ::osl::MutexGuard aGuard (maMutex);
::utl::AccessibleStateSetHelper* pStateSet =
static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
if (pStateSet != NULL)
@@ -389,7 +405,6 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL
/** Return a copy of the state set.
Possible states are:
- EDITABLE
ENABLED
SHOWING
VISIBLE
@@ -412,6 +427,19 @@ uno::Reference<XAccessibleStateSet> SAL_CALL
{
// Create a copy of the state set and return it.
pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
+
+ // Merge current focused state from edit engine.
+#if 0
+ if (aState == AccessibleStateType::FOCUSED
+ && pStateSet != NULL
+ && mpText != NULL)
+ {
+ if (mpText->GetFocusedState ())
+ pStateSet->AddState (aState);
+ else
+ pStateSet->RemoveState (aState);
+ }
+#endif
if (pStateSet != NULL)
pStateSet = new ::utl::AccessibleStateSetHelper (*pStateSet);
}