diff options
Diffstat (limited to 'accessibility/source/extended/accessiblelistbox.cxx')
-rw-r--r-- | accessibility/source/extended/accessiblelistbox.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/accessibility/source/extended/accessiblelistbox.cxx b/accessibility/source/extended/accessiblelistbox.cxx index f75f9a1b265f..2db3debe33a4 100644 --- a/accessibility/source/extended/accessiblelistbox.cxx +++ b/accessibility/source/extended/accessiblelistbox.cxx @@ -132,6 +132,32 @@ namespace accessibility } } break; + + // --> OD 2009-04-01 #i92103# + case VCLEVENT_LISTBOX_ENTRY_EXPANDED : + case VCLEVENT_LISTBOX_ENTRY_COLLAPSED : + { + SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() ); + if ( pEntry ) + { + AccessibleListBoxEntry* pAccListBoxEntry = + new AccessibleListBoxEntry( *getListBox(), pEntry, this ); + Reference< XAccessible > xChild = pAccListBoxEntry; + const short nAccEvent = + ( rVclWindowEvent.GetId() == VCLEVENT_LISTBOX_ENTRY_EXPANDED ) + ? AccessibleEventId::LISTBOX_ENTRY_EXPANDED + : AccessibleEventId::LISTBOX_ENTRY_COLLAPSED; + uno::Any aListBoxEntry; + aListBoxEntry <<= xChild; + NotifyAccessibleEvent( nAccEvent, Any(), aListBoxEntry ); + if ( getListBox() && getListBox()->HasFocus() ) + { + NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), aListBoxEntry ); + } + } + break; + } + // <-- } default: VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent); |