summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
authorChristian Lippka <christian.lippka@sun.com>2010-04-27 13:30:46 +0200
committerChristian Lippka <christian.lippka@sun.com>2010-04-27 13:30:46 +0200
commit7cc5bffc276a7706f387c827bf0addc6018e49bf (patch)
tree8c26a527c75293d2db6971fcdcfd7cd31cfc8ffb /accessibility
parent1b192bd38a3695cc2965ece438d47d6f74958289 (diff)
#i107213# notify a11y api if a toolbar popup window is opened
Diffstat (limited to 'accessibility')
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx1
-rw-r--r--accessibility/source/standard/vclxaccessibletoolbox.cxx28
2 files changed, 29 insertions, 0 deletions
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx
index 168938d50a6c..7283cec6a95c 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx
@@ -57,6 +57,7 @@ private:
void UpdateAllItems_Impl();
void UpdateItemName_Impl( sal_Int32 _nPos );
void UpdateItemEnabled_Impl( sal_Int32 _nPos );
+ void UpdateCustomPopupItemp_Impl( Window* pWindow, bool bOpen );
void HandleSubToolBarEvent( const VclWindowEvent& rVclWindowEvent, bool _bShow );
void ReleaseSubToolBox( ToolBox* _pSubToolBox );
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx
index 52b7a7f83cab..c63e0cbe49c7 100644
--- a/accessibility/source/standard/vclxaccessibletoolbox.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx
@@ -441,6 +441,27 @@ void VCLXAccessibleToolBox::UpdateAllItems_Impl()
}
}
}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleToolBox::UpdateCustomPopupItemp_Impl( Window* pWindow, bool bOpen )
+{
+ if( pWindow )
+ {
+ Reference< XAccessible > xChild( pWindow->GetAccessible() );
+ if( xChild.is() )
+ {
+ Any aOld, aNew;
+ if( bOpen )
+ aNew <<= xChild;
+ else
+ aOld <<= xChild;
+
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOld, aNew );
+ }
+ }
+}
+
// -----------------------------------------------------------------------------
void VCLXAccessibleToolBox::UpdateItemName_Impl( sal_Int32 _nPos )
{
@@ -582,6 +603,13 @@ void VCLXAccessibleToolBox::ProcessWindowEvent( const VclWindowEvent& rVclWindow
break;
}
+ case VCLEVENT_DROPDOWN_OPEN:
+ case VCLEVENT_DROPDOWN_CLOSE:
+ {
+ UpdateCustomPopupItemp_Impl( static_cast< Window* >( rVclWindowEvent.GetData() ), rVclWindowEvent.GetId() == VCLEVENT_DROPDOWN_OPEN );
+ break;
+ }
+
case VCLEVENT_OBJECT_DYING :
{
// if this toolbox is a subtoolbox, we have to relese it from its parent