diff options
Diffstat (limited to 'vcl/unx/gtk/a11y/atkselection.cxx')
-rw-r--r-- | vcl/unx/gtk/a11y/atkselection.cxx | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/vcl/unx/gtk/a11y/atkselection.cxx b/vcl/unx/gtk/a11y/atkselection.cxx index 50bd94fa69ca..3c75865c6689 100644 --- a/vcl/unx/gtk/a11y/atkselection.cxx +++ b/vcl/unx/gtk/a11y/atkselection.cxx @@ -23,23 +23,21 @@ using namespace ::com::sun::star; -static accessibility::XAccessibleSelection* +static css::uno::Reference<css::accessibility::XAccessibleSelection> getSelection( AtkSelection *pSelection ) throw (uno::RuntimeException) { AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pSelection ); if( pWrap ) { - if( !pWrap->mpSelection && pWrap->mpContext ) + if( !pWrap->mpSelection.is() ) { - uno::Any any = pWrap->mpContext->queryInterface( cppu::UnoType<accessibility::XAccessibleSelection>::get() ); - pWrap->mpSelection = static_cast< accessibility::XAccessibleSelection * > (any.pReserved); - pWrap->mpSelection->acquire(); + pWrap->mpSelection.set(pWrap->mpContext, css::uno::UNO_QUERY); } return pWrap->mpSelection; } - return NULL; + return css::uno::Reference<css::accessibility::XAccessibleSelection>(); } extern "C" { @@ -49,8 +47,9 @@ selection_add_selection( AtkSelection *selection, gint i ) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) { pSelection->selectAccessibleChild( i ); return TRUE; @@ -67,8 +66,9 @@ static gboolean selection_clear_selection( AtkSelection *selection ) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) { pSelection->clearAccessibleSelection(); return TRUE; @@ -86,8 +86,9 @@ selection_ref_selection( AtkSelection *selection, gint i ) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) return atk_object_wrapper_ref( pSelection->getSelectedAccessibleChild( i ) ); } catch(const uno::Exception&) { @@ -101,8 +102,9 @@ static gint selection_get_selection_count( AtkSelection *selection) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) return pSelection->getSelectedAccessibleChildCount(); } catch(const uno::Exception&) { @@ -117,8 +119,9 @@ selection_is_child_selected( AtkSelection *selection, gint i) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) return pSelection->isAccessibleChildSelected( i ); } catch(const uno::Exception&) { @@ -133,8 +136,9 @@ selection_remove_selection( AtkSelection *selection, gint i ) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) { pSelection->deselectAccessibleChild( i ); return TRUE; @@ -151,8 +155,9 @@ static gboolean selection_select_all_selection( AtkSelection *selection) { try { - accessibility::XAccessibleSelection* pSelection = getSelection( selection ); - if( pSelection ) + css::uno::Reference<css::accessibility::XAccessibleSelection> pSelection + = getSelection( selection ); + if( pSelection.is() ) { pSelection->selectAllAccessibleChildren(); return TRUE; |