Update ooo320-m1
[ooovba.git] / vcl / aqua / source / a11y / aqua11yselectionwrapper.mm
blob3f53087746f88043c86460adffe72546106aea36
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  * 
5  * Copyright 2008 by Sun Microsystems, Inc.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * $RCSfile: aqua11yselectionwrapper.mm,v $
10  *
11  * $Revision: 1.2 $
12  *
13  * This file is part of OpenOffice.org.
14  *
15  * OpenOffice.org is free software: you can redistribute it and/or modify
16  * it under the terms of the GNU Lesser General Public License version 3
17  * only, as published by the Free Software Foundation.
18  *
19  * OpenOffice.org is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU Lesser General Public License version 3 for more details
23  * (a copy is included in the LICENSE file that accompanied this code).
24  *
25  * You should have received a copy of the GNU Lesser General Public License
26  * version 3 along with OpenOffice.org.  If not, see
27  * <http://www.openoffice.org/license.html>
28  * for a copy of the LGPLv3 License.
29  *
30  ************************************************************************/
32 // MARKER(update_precomp.py): autogen include statement, do not remove
33 #include "precompiled_vcl.hxx"
35 #include "salinst.h"
36 #include "aqua11yfactory.h"
37 #include "aqua11yselectionwrapper.h"
39 using namespace ::com::sun::star::accessibility;
40 using namespace ::com::sun::star::uno;
42 @implementation AquaA11ySelectionWrapper : NSObject
44 +(id)selectedChildrenAttributeForElement:(AquaA11yWrapper *)wrapper
46     Reference< XAccessibleSelection > xAccessibleSelection = [ wrapper accessibleSelection ];
47     NSMutableArray * children = [ [ NSMutableArray alloc ] init ];
48     
49     try {
50         sal_Int32 n = xAccessibleSelection -> getSelectedAccessibleChildCount();
51         for ( sal_Int32 i=0 ; i < n ; ++i ) {
52             [ children addObject: [ AquaA11yFactory wrapperForAccessible: xAccessibleSelection -> getSelectedAccessibleChild( i ) ] ];
53         }
54         
55         return children;
56         
57     } catch ( Exception& e) {
58         return nil;
59     }
60     
64 +(void)addAttributeNamesTo:(NSMutableArray *)attributeNames
66     [ attributeNames addObject: NSAccessibilitySelectedChildrenAttribute ];
69 +(MacOSBOOL)isAttributeSettable:(NSString *)attribute forElement:(AquaA11yWrapper *)wrapper
71     if ( [ attribute isEqualToString: NSAccessibilitySelectedChildrenAttribute ] )
72     {
73         return YES;
74     }
75     else
76     {
77         return NO;
78     }
81 +(void)setSelectedChildrenAttributeForElement:(AquaA11yWrapper *)wrapper to:(id)value
83     Reference< XAccessibleSelection > xAccessibleSelection = [ wrapper accessibleSelection ];
84     try {
85         xAccessibleSelection -> clearAccessibleSelection();
86         
87         unsigned c = [ value count ];
88         for ( unsigned i = 0 ; i < c ; ++i ) {
89             xAccessibleSelection -> selectAccessibleChild( [ [ value objectAtIndex: i ] accessibleContext ] -> getAccessibleIndexInParent() );
90         }
91     } catch ( Exception& e) {
92     }            
95 @end