merge the formfield patch from ooo-build
[ooovba.git] / vcl / aqua / source / a11y / aqua11ywrapperscrollarea.mm
blobac62eb31377cbb8cf0229bb0ffc1e829ce3ac595
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: aqua11ywrapperscrollarea.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 "aqua11ywrapperscrollarea.h"
37 #include "aqua11ywrapperscrollbar.h"
38 #include "aqua11yrolehelper.h"
40 // Wrapper for AXScrollArea role
42 @implementation AquaA11yWrapperScrollArea : AquaA11yWrapper
44 -(id)scrollBarWithOrientation:(NSString *)orientation {
45     AquaA11yWrapper * theScrollBar = nil;
46     NSAutoreleasePool * pool = [ [ NSAutoreleasePool alloc ] init ];
47     NSArray * elementChildren = [ self accessibilityAttributeValue: NSAccessibilityChildrenAttribute ];
48     if ( [ elementChildren count ] > 0 ) {
49         NSEnumerator * enumerator = [ elementChildren objectEnumerator ];
50         id child;
51         while ( ( child = [ enumerator nextObject ] ) ) {
52             AquaA11yWrapper * element = ( AquaA11yWrapper * ) child;
53             if ( [ element isKindOfClass: [ AquaA11yWrapperScrollBar class ] ] ) { 
54                 AquaA11yWrapperScrollBar * scrollBar = (AquaA11yWrapperScrollBar *) element;
55                 if ( [ [ scrollBar orientationAttribute ] isEqualToString: orientation ] ) {
56                     theScrollBar = scrollBar;
57                     break;
58                 }
59             }
60         }
61     }
62     [ pool release ];
63     return theScrollBar;
66 -(id)verticalScrollBarAttribute {
67     return [ self scrollBarWithOrientation: NSAccessibilityVerticalOrientationValue ];
70 -(id)horizontalScrollBarAttribute {
71     return [ self scrollBarWithOrientation: NSAccessibilityHorizontalOrientationValue ];
74 -(NSArray *)accessibilityAttributeNames {
75     // Default Attributes
76     NSMutableArray * attributeNames = [ NSMutableArray arrayWithArray: [ super accessibilityAttributeNames ] ];
77     // Special Attributes and removing unwanted attributes depending on role
78     [ attributeNames removeObject: NSAccessibilityEnabledAttribute ];
79     [ attributeNames addObjectsFromArray: [ NSArray arrayWithObjects:
80             NSAccessibilityContentsAttribute, 
81             NSAccessibilityVerticalScrollBarAttribute, 
82             NSAccessibilityHorizontalScrollBarAttribute, 
83             nil ]
84     ];
85     return attributeNames;
88 @end